import { commandHandler } from "./handler.js"; import { LiveInfo, LoginInfo } from "./types/index.js"; import { MessageData } from "./types/message.js"; import Long from "long"; export interface ClientTokens extends LoginInfo, LiveInfo { } export declare class AcClient extends EventTarget { ws: WebSocket; userId: number; st: string; security: string; liveId: string; availableTickets: string[]; enterRoomAttach: string; seqId: number; instanceId: Long; sessionKey: string; headerSeqId: number; heartbeatSeqId: number; ticketIndex: number; retryCount: number; timer: any; handleCommand: typeof commandHandler; constructor({ userId, st, security, liveId, availableTickets, enterRoomAttach, }: ClientTokens); send(data: Uint8Array): void; close(code?: number, data?: string): void; /** 数据解码 */ decodeProcess(buffer: Uint8Array): Promise; wsClose(): void; } export interface AcClient { addEventListener(type: K, listener: (ev: LiveEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: (ev: DataEvent) => any, options?: boolean | AddEventListenerOptions): void; dispatchEvent(event: LiveEventMap[K]): boolean; dispatchEvent(event: DataEvent): boolean; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } interface LiveEventMap extends WebSocketEventMap { EnterRoomAck: DataEvent; ActionSignal: DataEvent; Comment: DataEvent; Like: DataEvent; Gift: DataEvent; UserFollowAuthor: DataEvent; UserEnterRoom: DataEvent; JoinClub: DataEvent; StateSignal: DataEvent; DisplayInfo: DataEvent; RecentComment: DataEvent; TopUsers: DataEvent; NotifySignal: DataEvent; StatusChanged: DataEvent; LiveClosed: DataEvent; LiveBanned: DataEvent; NewLiveOpened: DataEvent; LiveUrlChanged: DataEvent; "error:decode": ErrorEvent; } export declare class DataEvent extends Event { data: T; signalType?: string; messageType?: string; cmdAckType?: string; command: string; constructor(type: string, { data, signalType, messageType, cmdAckType, command }: DataEventInitDict); } export interface DataEventInitDict { command: string; messageType?: string; cmdAckType?: string; signalType?: string; data: T; } export {};