seyfert
Version:
The most advanced framework for discord bots
52 lines (51 loc) • 1.88 kB
TypeScript
import { Logger, type MakeRequired } from '../../common';
import { type GatewayReceivePayload, type GatewaySendPayload } from '../../types';
import { DynamicBucket } from '../structures';
import { ConnectTimeout } from '../structures/timeout';
import { BaseSocket } from './basesocket';
import type { ShardData, ShardOptions } from './shared';
export interface ShardHeart {
interval: number;
nodeInterval?: NodeJS.Timeout;
lastAck?: number;
lastBeat?: number;
ack: boolean;
}
export declare class Shard {
id: number;
logger: Logger;
debugger?: Logger;
data: Partial<ShardData> | ShardData;
websocket: BaseSocket | null;
connectTimeout: ConnectTimeout;
heart: ShardHeart;
bucket: DynamicBucket;
offlineSendQueue: ((_?: unknown) => void)[];
pendingGuilds: Set<string>;
options: MakeRequired<ShardOptions, 'properties' | 'ratelimitOptions'>;
isReady: boolean;
constructor(id: number, options: ShardOptions);
get latency(): number;
get isOpen(): boolean;
get gatewayURL(): string;
get resumeGatewayURL(): string | undefined;
get currentGatewayURL(): string;
ping(): Promise<number>;
connect(): Promise<void>;
send<T extends GatewaySendPayload = GatewaySendPayload>(force: boolean, message: T): Promise<void>;
identify(): Promise<void>;
get resumable(): boolean;
resume(): Promise<void>;
heartbeat(requested: boolean): void;
disconnect(): void;
reconnect(): Promise<void>;
onpacket(packet: GatewayReceivePayload): void | Promise<void>;
protected handleClosed(close: {
code: number;
reason: string;
}): Promise<void>;
close(code: number, reason: string): void;
protected handleMessage(data: string | Buffer): void | Promise<void>;
checkOffline(force: boolean): Promise<unknown>;
calculateSafeRequests(): number;
}