import { ClusterManager, evalOptions } from 'discord-hybrid-sharding'; import { ClientReadyEvent, Client as NetIPCClient, ClientOptions as NetIPCClientOptions } from 'net-ipc'; import { RawMessage } from '../Structures/IPCMessage'; import { CrossHostMessage } from '../types/shared'; export interface ClientOptions extends NetIPCClientOptions { authToken: string; agent: string; rollingRestarts?: boolean; shardList?: number[]; totalShards?: number; } export declare class Client extends NetIPCClient { authToken: string; agent: string; rollingRestarts: boolean; shardList: number[]; totalShards: number; manager?: ClusterManager & { netipc?: Client; }; clusterList: never[]; constructor(options: ClientOptions); connect(args?: object): Promise; private _handleReady; private _handleMessage; private _handleRequest; requestShardData(options?: { maxClusters?: number; timeout?: number; }): Promise; listen(manager: ClusterManager): ClusterManager & { netipc?: Client; }; broadcastEval(script: string, options?: evalOptions & { script?: string; }): Promise; send(message: RawMessage, options?: CrossHostMessage): Promise; request(message: RawMessage, options?: CrossHostMessage): Promise; requestToGuild(message: RawMessage & { guildId: string; }, options?: evalOptions): Promise; requestToClient(message: RawMessage & { clientId: string; }, options?: evalOptions): Promise; private rollingRestart; private _debug; } export interface NetIpcClientEvents { ready: [listener: (data: ClientReadyEvent) => void]; error: [listener: (error: any) => void]; close: [listener: (reason: any) => void]; status: [listener: (status: number) => void]; message: [listener: (data: any) => void]; request: [listener: (request: any, response: (data: any) => Promise) => void]; } export interface Client extends NetIPCClient { on(event: T, listener: (...args: NetIpcClientEvents[T]) => any): this; } //# sourceMappingURL=Client.d.ts.map