import type { GatewayIdentifyCoordinator } from "./gateway-identify-coordinator.js"; import type { GatewayErrorCategory } from "./gateway-events.js"; import { type GatewayCommandSendOutcome } from "./gateway-outbound-budget.js"; export interface GatewaySocket { readonly readyState: number; onclose: ((event: { code: number; }) => void) | null; onerror: (() => void) | null; onmessage: ((event: { data: unknown; }) => void) | null; onopen: (() => void) | null; close(code?: number, reason?: string): void; send(data: string): void; } export interface GatewayScheduler { clearTimeout(handle: unknown): void; setTimeout(handler: () => void, milliseconds: number): unknown; } export type GatewayShardState = "authenticating" | "connecting" | "failed" | "ready" | "reconnecting" | "stopped"; export interface GatewayShardDispatch { data: unknown; name: string; sequence: number; shardId: number; } export interface GatewayShardSessionOptions { applicationId: string; botId: string; clock?: () => number; gatewayUrl: string; identifyCoordinator: GatewayIdentifyCoordinator; intents: number; onContinuityGap: (shardId: number) => void; onDispatch: (dispatch: GatewayShardDispatch) => void; onFatal: (shardId: number, category: GatewayErrorCategory) => void; onReconnect: (shardId: number) => void; onResume: (shardId: number) => void; onState: (shardId: number, state: GatewayShardState, errorCategory?: GatewayErrorCategory) => void; random?: () => number; scheduler?: GatewayScheduler; shardCount: number; shardId: number; token: string; webSocketFactory?: (url: string) => GatewaySocket; } export declare class GatewayShardSession { #private; constructor(options: GatewayShardSessionOptions); get shardId(): number; get state(): GatewayShardState; start(): void; stop(): void; sendCommand(payload: object, options?: { signal?: AbortSignal; }): Promise; } //# sourceMappingURL=gateway-shard-session.d.ts.map