/**
 * Socket配置选项
 */
export interface SocketOptions {
    /** 是否自动连接 */
    autoConnect?: boolean;
    /** 是否启用重连功能 */
    reconnection?: boolean;
    /** 最大重连尝试次数，默认无限 */
    reconnectionAttempts?: number;
    /** 重连延迟时间（毫秒） */
    reconnectionDelay?: number;
    /** 最大重连延迟时间（毫秒） */
    reconnectionDelayMax?: number;
    /** 是否启用心跳检测 */
    heartbeat?: boolean;
    /** 心跳间隔时间（毫秒） */
    heartbeatInterval?: number;
    /** 请求超时时间（毫秒） */
    timeout?: number;
    /** 心跳超时时间（毫秒） */
    heartbeatTimeout?: number;
    /** 自定义协议 */
    protocols?: string | string[];
    /** 连接URL */
    url: string;
}
/**
 * Socket连接状态
 */
export declare enum SocketStatus {
    CONNECTING = 0,
    OPEN = 1,
    CLOSING = 2,
    CLOSED = 3,
    RECONNECTING = 4
}
/**
 * Socket消息格式
 */
export interface SocketMessage<T = any> {
    /** 事件类型 */
    type: string;
    /** 消息数据 */
    data?: T;
    /** 消息ID */
    id?: string;
    event?: any;
}
/**
 * 心跳配置选项
 */
export interface HeartbeatOptions {
    /** 心跳间隔时间（毫秒） */
    interval: number;
    /** 心跳超时时间（毫秒） */
    timeout: number;
    /** 心跳探测消息 */
    message?: SocketMessage;
}
/**
 * 重连配置选项
 */
export interface ReconnectOptions {
    /** 是否启用重连 */
    enabled: boolean;
    /** 最大重连尝试次数 */
    attempts?: number;
    /** 重连延迟时间（毫秒） */
    delay: number;
    /** 最大重连延迟时间（毫秒） */
    delayMax?: number;
    /** 是否使用指数退避算法 */
    jitter?: boolean;
}
/**
 * 事件处理函数类型
 */
export type EventHandler = (...args: any[]) => void;
/**
 * 事件处理函数映射
 */
export interface EventHandlerMap {
    [event: string]: EventHandler[];
}
