import { Context } from 'koishi';
import { IIROSE_Bot } from '../bot/bot';
export declare class WsClient {
    private event;
    private ctx;
    private bot;
    private isStarting;
    private isStarted;
    private disposed;
    live: (() => void) | null;
    private reconnectTimer;
    loginObj: {
        r?: string;
        n?: string;
        p?: string;
        st?: string;
        mo?: string;
        mb?: string;
        mu?: string;
        lr?: string;
        rp?: string;
        fp?: string;
        i?: string;
        nc?: string;
        s?: string;
        uid?: string;
        li?: string;
        la?: string;
        vc?: string;
    };
    firstLogin: boolean;
    loginSuccess: boolean;
    isReconnecting: boolean;
    constructor(ctx: Context, bot: IIROSE_Bot);
    setDisposing(disposing: boolean): void;
    /**
     * 准备ws通信
     * @returns
     */
    prepare(): Promise<any>;
    /**
     * 接受ws通信
     */
    accept(): void;
    /**
     * 开始ws通信
     */
    start(): Promise<void>;
    /**
     * 清理连接和定时器
     */
    private cleanup;
    /**
     * 设置WebSocket事件监听器
     */
    private setupEventListeners;
    /**
     * 启动心跳保活机制
     */
    private startHeartbeat;
    /**
     * 处理连接丢失，执行重连逻辑
     */
    private handleConnectionLoss;
    /**
     * 关闭ws通信
     */
    stop(): Promise<void>;
    /**
     * 获取延迟
     * @param url
     * @returns
     */
    private getLatency;
    /**
     * 切换房间
     * 重新连接到新房间
     */
    switchRoom(): Promise<void>;
}
export declare function IIROSE_WSsend(bot: IIROSE_Bot, data: string): Promise<void>;
