/// <reference types="node" />
/// <reference types="node" />
import websocket, { IStringified } from 'websocket';
import EventEmitter from 'events';
/**
 * Handle WS connection level logic
 */
declare class WSConnector {
    #private;
    /**
     * constructor
     */
    constructor({ serverBaseUrl, afterConnected }: {
        serverBaseUrl: string;
        afterConnected: () => Promise<void>;
    });
    get event(): EventEmitter;
    get connected(): boolean;
    get connection(): websocket.connection | null;
    /**
     * connect to server
     */
    connect(): Promise<boolean>;
    /**
     * do reconnect
     */
    reconnect(): Promise<void>;
    /**
     * send message to server
     *
     * @param data
     * @returns
     */
    send(data: Buffer | IStringified): Promise<void>;
    /**
     * close connection
     */
    close: () => void;
}
export { WSConnector };
