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.

34 lines (33 loc) 1.52 kB
import { Serializable, SerializableInput } from '../types'; import { ClusterManager } from '../core/clusterManager'; import { ClusterClient } from '../core/clusterClient'; /** Type of the broker message sent. */ export type BrokerMessage = { _data: unknown; broker: string; }; /** Type of the broker message handler. */ export type BrokerMessageHandler<T = unknown> = (message: T) => void; /** The IPC Broker Abstract class. */ declare abstract class IPCBrokerAbstract { readonly instance: ClusterManager | ClusterClient; /** The listeners of the IPC Broker. */ private listeners; /** Creates an instance of IPCBrokerAbstract. */ constructor(instance: ClusterManager | ClusterClient); /** Listens to a specific channel. */ listen<T>(channelName: string, callback: BrokerMessageHandler<T>): void; /** Handles the message received, and executes the callback. (Not meant to be used by the user.) */ handleMessage(message: BrokerMessage): void; } /** IPC Broker Manager class. */ export declare class IPCBrokerManager extends IPCBrokerAbstract { /** Sends a message to a specific channel. */ send<T extends Serializable>(channelName: string, message: SerializableInput<T>, clusterId?: number): Promise<void>; } /** IPC Broker Client class. */ export declare class IPCBrokerClient extends IPCBrokerAbstract { /** Sends a message to a specific channel. */ send<T extends Serializable>(channelName: string, message: SerializableInput<T>): Promise<void>; } export {};