import { ChzzkChatOptionsWithClient, Events, Profile } from "./types";
import { ChzzkClient } from "../client";
import { ChzzkAPIBaseUrls } from "../types";
export declare class ChzzkChat {
    private readonly client;
    private ws;
    private options;
    private uid?;
    private sid?;
    private handlers;
    private defaults;
    private pingTimeoutId;
    private pollIntervalId;
    private isReconnect;
    constructor(options: ChzzkChatOptionsWithClient);
    private _connected;
    get connected(): boolean;
    get chatChannelId(): string;
    static fromClient(chatChannelId: string, client: ChzzkClient): ChzzkChat;
    static fromAccessToken(chatChannelId: string, accessToken: string, uid?: string, baseUrls?: ChzzkAPIBaseUrls): ChzzkChat;
    connect(): Promise<void>;
    disconnect(): Promise<void>;
    reconnect(): Promise<void>;
    requestRecentChat(count?: number): void;
    sendChat(message: string, emojis?: Record<string, string>): void;
    selfProfile(): Promise<Profile>;
    profile(uid: string): Promise<Profile>;
    emit(event: string, data: any): void;
    on<T extends keyof Events>(event: T, handler: (data: Events[typeof event]) => void): void;
    private handleMessage;
    private parseChat;
    private startPolling;
    private stopPolling;
    private startPingTimer;
    private stopPingTimer;
    private sendPing;
}
