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;
}
