import { Context } from 'koishi';
import { IIROSE_Bot } from '../../bot/bot';
import { LoginObj } from './types';
export declare class WsClient {
    private event;
    private ctx;
    private bot;
    private isStarting;
    private isStarted;
    private disposed;
    live: (() => void) | null;
    private reconnectTimer;
    private retryCount;
    loginObj: LoginObj;
    firstLogin: boolean;
    loginSuccess: boolean;
    isReconnecting: boolean;
    constructor(ctx: Context, bot: IIROSE_Bot);
    setDisposing(disposing: boolean): void;
    /**
     * 准备ws通信
     */
    prepare(): Promise<WebSocket>;
    /**
     * 接受ws通信
     */
    accept(): void;
    /**
     * 开始ws通信
     */
    start(): Promise<void>;
    /**
     * 清理连接和定时器
     */
    private cleanup;
    /**
     * 设置WebSocket事件监听器
     */
    private setupEventListeners;
    /**
     * 启动心跳保活机制
     */
    private startHeartbeat;
    /**
     * 处理连接丢失，执行重连逻辑
     */
    private handleConnectionLoss;
    /**
     * 计算重试延迟
     */
    private calculateRetryDelay;
    /**
     * 关闭ws通信
     */
    stop(): Promise<void>;
    /**
     * 切换房间
     */
    switchRoom(): Promise<void>;
}
