UNPKG

amesu

Version:
89 lines (88 loc) 2.92 kB
/// <reference types="node" /> import type { Token } from '../bot/token'; import { EventEmitter } from 'node:events'; import { ClientConfig } from '../bot/client'; /** 事件类型 */ declare enum Intent { GUILDS = 1, GUILD_MEMBERS = 2, GUILD_MESSAGES = 512, GUILD_MESSAGE_REACTIONS = 1024, DIRECT_MESSAGE = 4096, GROUP_AND_C2C_EVENT = 33554432, INTERACTION = 67108864, MESSAGE_AUDIT = 134217728, FORUMS_EVENT = 268435456, AUDIO_ACTION = 536870912, PUBLIC_GUILD_MESSAGES = 1073741824 } export interface ReadyData { version: number; session_id: string; user: { id: string; username: string; bot: boolean; status: number; }; shard: number[]; } export type ResumedData = ''; export type IntentEvent = keyof typeof Intent; export interface DispatchData { t: string; d: any; } interface SessionEvent { dispatch: (data: DispatchData) => void; } export interface Session extends EventEmitter { addListener<T extends keyof SessionEvent>(event: T, listener: SessionEvent[T]): this; on<T extends keyof SessionEvent>(event: T, listener: SessionEvent[T]): this; once<T extends keyof SessionEvent>(event: T, listener: SessionEvent[T]): this; removeListener<T extends keyof SessionEvent>(event: T, listener: SessionEvent[T]): this; off<T extends keyof SessionEvent>(event: T, listener: SessionEvent[T]): this; removeAllListeners<T extends keyof SessionEvent>(event?: T): this; listeners<T extends keyof SessionEvent>(event: T): Function[]; rawListeners<T extends keyof SessionEvent>(event: T): Function[]; emit<T extends keyof SessionEvent>(event: T, ...args: Parameters<SessionEvent[T]>): boolean; listenerCount<T extends keyof SessionEvent>(event: T, listener?: SessionEvent[T]): number; prependListener<T extends keyof SessionEvent>(event: T, listener: SessionEvent[T]): this; prependOnceListener<T extends keyof SessionEvent>(event: T, listener: SessionEvent[T]): this; eventNames<T extends keyof SessionEvent>(): T[]; } export declare class Session extends EventEmitter { private config; private token; private ackTimeout; /** 心跳间隔 */ private heartbeat_interval; /** 是否重连 */ private is_reconnect; /** 记录器 */ private logger; /** 重连计数 */ private retry; /** 最大重连数 */ private max_retry; /** 消息序列号 */ private seq; /** 会话 id */ private session_id; private ws; constructor(config: ClientConfig, token: Token); private onOpen; private onClose; private onError; private onMessage; private onDispatch; private heartbeat; private sendPayload; private getIntents; private sendAuthPayload; private sendResumePayload; private reconnect; connect(url: string): void; disconnect(): void; } export {};