export interface KWebSocketOptions {
    /** 是否启用调试模式，默认值：false */
    debug?: boolean;
    /** 连接地址，格式一般为：ws[s]://SERVER_HOST[/path][?query] */
    url: string;
    /** 最大重连次数，默认值：5 */
    maxReconnectTimes?: number;
    /** 重连间隔，单位（毫秒），默认值：10 * 1000 */
    reconnectInterval?: number;
    /** 心跳间隔，单位（毫秒），默认值：10 * 1000 */
    heartInterval?: number;
    /** 心跳描述字符串，默认值：heartbeat */
    heartString?: string;
    /** 连接成功回调/触发时机：首次连接成功和断线重新连接后，（防止断线期间对方发送消息未接收到）一般用于请求历史消息列表 */
    onConnected: () => void;
    /** 收到服务器消息回调 */
    onMessage: (message: string) => void;
}
export interface KWebSocketProps {
    send: <T>(data: T) => void;
    close: () => void;
}
export default class KWebSocket {
    private options;
    private socket;
    private normalCloseFlag;
    private reconnectTimes;
    private reconnectTimer;
    private heartbeatTimer;
    constructor(options: KWebSocketOptions);
    /**
     * 初始化 & 监听
     */
    private init;
    private watch;
    /**
     * 外部调用：关闭连接
     */
    close(): void;
    /**
     * 发送消息
     * @param data
     */
    send<T = any>(data: T): void;
    /**
     * 发送心跳
     */
    private sendHeartbeat;
    /**
     * 断开重连
     */
    private reconnect;
}
