UNPKG

status-sharding

Version:

Welcome to Status Sharding! This package is designed to provide an efficient and flexible solution for sharding Discord bots, allowing you to scale your bot across multiple processes or workers.

35 lines (34 loc) 2.33 kB
import { Client as DiscordCoreClient, MappedEvents } from '@discordjs/core'; import { CreateWebSocketManagerOptions, WebSocketManager } from '@discordjs/ws'; import { RefClusterManager } from './clusterManager'; import { REST, RESTOptions } from '@discordjs/rest'; import { ClusterClient } from './clusterClient'; export type ShardingCoreClientOptions = { gateway: Omit<CreateWebSocketManagerOptions, 'token' | 'rest' | 'shardCount' | 'shardIds'>; rest?: Partial<RESTOptions>; token: string; }; /** Modified DiscordClient with bunch of new methods. */ export declare class ShardingCoreClient<InternalManager extends RefClusterManager = RefClusterManager> extends DiscordCoreClient { /** Cluster associated with this client. */ cluster: ClusterClient<this, InternalManager>; gateway: WebSocketManager; /** The REST manager of this client. */ rest: REST; private shardsReady; /** Creates an instance of ShardingCoreClient. */ constructor(options: ShardingCoreClientOptions); } export type RefShardingCoreClient = ShardingCoreClient; export declare interface ShardingCoreClient { /** Emit an event. */ emit: (<K extends keyof MappedEvents>(event: K, ...args: MappedEvents[K]) => boolean) & (<S extends string | symbol>(event: Exclude<S, keyof MappedEvents>, ...args: unknown[]) => boolean); /** Remove an event listener. */ off: (<K extends keyof MappedEvents>(event: K, listener: (...args: MappedEvents[K]) => void) => this) & (<S extends string | symbol>(event: Exclude<S, keyof MappedEvents>, listener: (...args: unknown[]) => void) => this); /** Listen for an event. */ on: (<K extends keyof MappedEvents>(event: K, listener: (...args: MappedEvents[K]) => void) => this) & (<S extends string | symbol>(event: Exclude<S, keyof MappedEvents>, listener: (...args: unknown[]) => void) => this); /** Listen for an event once. */ once: (<K extends keyof MappedEvents>(event: K, listener: (...args: MappedEvents[K]) => void) => this) & (<S extends string | symbol>(event: Exclude<S, keyof MappedEvents>, listener: (...args: unknown[]) => void) => this); /** Remove all listeners for an event. */ removeAllListeners: (<K extends keyof MappedEvents>(event?: K) => this) & (<S extends string | symbol>(event?: Exclude<S, keyof MappedEvents>) => this); }