import type TypedEmitter from 'typed-emitter'; import type { ChatEvents } from '../types/chat/events.ts'; import type { Client } from '../client/index.ts'; import { ChatCmd } from '../types/chat/cmd.ts'; import { type ChatPayloadMap } from '../types/chat/payload.ts'; import { Message } from '../structures/message.ts'; import { Donation } from '../structures/donation.ts'; import type { SendMessageOptions } from '../types/chat/message.ts'; import type { Channel } from '../structures/channel.ts'; declare const Chat_base: new () => TypedEmitter; export declare class Chat extends Chat_base { readonly client: Client; chatID: string; channelID?: string; private ws?; private connected; private count; private readonly svcid; private readonly ver; private sid?; private readonly pingInterval; private readonly pingTimeout; private pingTimer?; private retryCount; private willDisconnect; private uid?; private accessToken?; private readonlyMode; constructor(client: Client, chatID: string, options?: { svcid?: string; channelID?: string; }); waitFor(event: K, checkFunction?: (...args: Parameters) => boolean, timeout?: number): Promise | []>; connect({ uid, accessToken }?: { uid?: string; accessToken?: string; }): Promise; disconnect(): Promise; private onopen; private onmessage; private onclose; private onerror; ping(): Promise; startPingInterval(): void; send(cmd: Cmd, data?: ChatPayloadMap[Cmd]): void; auth({ uid, accessToken }: { uid?: string; accessToken: string; }): Promise; getRecentMessages(count?: number): Promise>; sendMessage(content: string, // {:emoji:} is an emoji options?: SendMessageOptions): Promise; getChannel(): Promise; } export {};