detritus-client
Version:
A Typescript NodeJS library to interact with Discord's API, both Rest and Gateway.
68 lines (67 loc) • 2.72 kB
TypeScript
import { Client as DetritusRestClient } from 'detritus-client-rest';
import { EventSpewer, EventSubscription } from 'detritus-utils';
import { Bucket } from './bucket';
import { ClusterProcess } from './cluster/process';
import { BaseCollection } from './collections/basecollection';
import { ClientEvents } from './constants';
export interface ClusterManagerOptions {
isAbsolute?: boolean;
maxConcurrency?: number;
respawn?: boolean;
shardCount?: number;
shards?: [number, number];
shardsPerCluster?: number;
}
export interface ClusterManagerRunOptions {
delay?: number;
maxConcurrency?: number;
shardCount?: number;
url?: string;
}
export interface ClusterManagerRestCachePayload {
promise?: Promise<any>;
result?: any;
}
export declare class ClusterManager extends EventSpewer {
buckets: BaseCollection<number, Bucket>;
file: string;
maxConcurrency: number;
processes: BaseCollection<number, ClusterProcess>;
ran: boolean;
respawn: boolean;
rest: DetritusRestClient;
restCache: BaseCollection<string | number, ClusterManagerRestCachePayload>;
shardCount: number;
shardEnd: number;
shardStart: number;
shardsPerCluster: number;
token: string;
constructor(file: string, token: string, options?: ClusterManagerOptions);
get clusterCount(): number;
run(options?: ClusterManagerRunOptions): Promise<ClusterManager>;
broadcast(message: any): Promise<Array<any>>;
broadcastEvalRaw(code: Function | string, nonce?: string): Promise<Array<[any, boolean]>>;
broadcastEval(code: Function | string, nonce?: string): Promise<Array<any>>;
getRatelimitKey(shardId: number): number;
on(event: string | symbol, listener: (...args: any[]) => void): this;
on(event: ClientEvents.CLUSTER_PROCESS, listener: (payload: {
clusterProcess: ClusterProcess;
}) => any): this;
on(event: 'clusterProcess', listener: (payload: {
clusterProcess: ClusterProcess;
}) => any): this;
once(event: string | symbol, listener: (...args: any[]) => void): this;
once(event: ClientEvents.CLUSTER_PROCESS, listener: (payload: {
clusterProcess: ClusterProcess;
}) => any): this;
once(event: 'clusterProcess', listener: (payload: {
clusterProcess: ClusterProcess;
}) => any): this;
subscribe(event: string | symbol, listener: (...args: any[]) => void): EventSubscription;
subscribe(event: ClientEvents.CLUSTER_PROCESS, listener: (payload: {
clusterProcess: ClusterProcess;
}) => any): EventSubscription;
subscribe(event: 'clusterProcess', listener: (payload: {
clusterProcess: ClusterProcess;
}) => any): EventSubscription;
}