seyfert
Version:
The most advanced framework for discord bots
61 lines (60 loc) • 2.58 kB
TypeScript
import { Logger, type MakeRequired } from '../../common';
import { type APIGuildMember, type GatewayGuildMembersChunkPresence, type GatewayReceivePayload, type GatewaySendPayload } from '../../types';
import type { GatewayRequestGuildMembersDataWithQuery, GatewayRequestGuildMembersDataWithUserIds } from '../../types/gateway';
import { DynamicBucket } from '../structures';
import { ConnectTimeout } from '../structures/timeout';
import { BaseSocket } from './basesocket';
import type { ShardData, ShardOptions } from './shared';
import { ShardSocketCloseCodes } from './shared';
export interface ShardHeart {
interval: number;
nodeInterval?: NodeJS.Timeout;
ackTimeout?: 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' | 'reconnectTimeout' | 'connectionTimeout'>;
isReady: boolean;
connectionTimeout?: NodeJS.Timeout;
private requestGuildMembersChunk;
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(code?: ShardSocketCloseCodes): void;
reconnect(code?: ShardSocketCloseCodes): Promise<void>;
onpacket(packet: GatewayReceivePayload): void | Promise<void>;
requestGuildMember(options: Omit<GatewayRequestGuildMembersDataWithQuery, 'nonce'> | Omit<GatewayRequestGuildMembersDataWithUserIds, 'nonce'>): Promise<{
members: APIGuildMember[];
presences: GatewayGuildMembersChunkPresence[];
}>;
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;
}