import { SocketOptions, SocketStatus } from "./types";
import { SocketMonitor, SocketMonitorOptions } from "./monitor";
/**
 * Socket主类
 * 负责管理WebSocket连接、消息收发、事件处理、心跳检测和断线重连
 */
export declare class Socket {
    private ws;
    private url;
    private options;
    private status;
    private eventHandlers;
    private heartbeatManager;
    private reconnectManager;
    private monitor;
    private messageIdCounter;
    /**
     * 创建Socket实例
     * @param options Socket配置选项
     */
    constructor(options: SocketOptions);
    /**
     * 建立WebSocket连接
     */
    connect(): Promise<void>;
    /**
     * 关闭WebSocket连接
     */
    disconnect(): void;
    /**
     * 发送消息到服务器
     * @param event 事件名称
     * @param data 消息数据
     * @param id 消息ID（可选，默认自动生成）
     */
    send(type: string, data?: any, id?: string): void;
    /**
     * 发送原始消息
     * @param message 消息对象
     */
    private sendRaw;
    /**
     * 注册事件监听器
     * @param event 事件名称
     * @param handler 事件处理函数
     */
    on(event: string, handler: (...args: any[]) => void): void;
    /**
     * 移除事件监听器
     * @param event 事件名称
     * @param handler 事件处理函数（可选，不提供则移除所有该事件的处理函数）
     */
    off(event: string, handler?: (...args: any[]) => void): void;
    /**
     * 触发事件
     * @param event 事件名称
     * @param args 事件参数
     */
    private emit;
    /**
     * 获取当前连接状态
     */
    getStatus(): SocketStatus;
    /**
     * 获取当前状态描述
     */
    getStatusText(): string;
    /**
     * 检查是否已连接
     */
    isConnected(): boolean;
    /**
     * 设置连接状态
     */
    private setStatus;
    /**
     * 设置WebSocket事件监听器
     */
    private setupWebSocketListeners;
    /**
     * 处理接收到的消息
     */
    private handleMessage;
    /**
     * 处理连接关闭
     */
    private handleConnectionClosed;
    /**
     * 处理连接失败
     */
    private handleConnectionFailure;
    /**
     * 处理心跳响应
     */
    private handleHeartbeatResponse;
    /**
     * 初始化心跳检测
     */
    private initHeartbeat;
    /**
     * 初始化重连管理
     */
    private initReconnect;
    /**
     * 开始重连过程
     */
    private startReconnection;
    /**
     * 生成消息ID
     */
    private generateMessageId;
    /**
     * 启用监控功能
     * @param options 监控配置选项
     */
    enableMonitoring(options?: SocketMonitorOptions): SocketMonitor;
    /**
     * 禁用监控功能
     */
    disableMonitoring(): void;
    /**
     * 获取监控器实例
     */
    getMonitor(): SocketMonitor | null;
    /**
     * 释放资源
     */
    destroy(): void;
}
