import { Logger, type MakePresent, type MakeRequired } from '../../common'; import type { MakeDeepPartial } from '../../common/types/util'; import { type GatewaySendPayload, type GatewayUpdatePresence, type GatewayVoiceStateUpdate } from '../../types'; import { ShardManagerDefaults } from '../constants'; import { ConnectQueue } from '../structures/timeout'; import { Shard } from './shard'; import { type ShardData, type ShardManagerOptions, ShardSocketCloseCodes } from './shared'; export declare class ShardManager extends Map { connectQueue: ConnectQueue; options: MakePresent; debugger?: Logger; constructor(options: MakeDeepPartial); get totalShards(): number; get shardStart(): number; get shardEnd(): number; get remaining(): number; get concurrency(): number; get latency(): number; calculateShardId(guildId: string): number; create(shardId: number): Shard; spawnShards(): Promise; startResharder(): Promise; spawnBuckets(): Shard[][]; forceIdentify(shardId: number): Promise; disconnect(shardId: number, code?: ShardSocketCloseCodes): void | undefined; disconnectAll(code?: ShardSocketCloseCodes): void; setShardPresence(shardId: number, payload: GatewayUpdatePresence['d']): Promise; setPresence(payload: GatewayUpdatePresence['d']): void; joinVoice(guild_id: string, channel_id: string, options: Pick): Promise; leaveVoice(guild_id: string): Promise; requestChannelInfo(guild_id: string, fields: ('status' | 'voice_start_time')[]): Promise; send(shardId: number, payload: T): Promise; private resolveSendPayload; resume(shardId: number, shardData: MakeRequired): unknown; }