export = WebSocketProvider;
/**
 * Websocket protocol json rpc provider.
 */
declare class WebSocketProvider extends BaseProvider {
    /**
     * @param {object} [options] - See [W3CWebSocket](https://github.com/theturtle32/WebSocket-Node/blob/c91a6cb8f0cf896edf0d2d49faa0c9e0a9985172/docs/W3CWebSocket.md)
     * @param {string} options.url - Full json rpc http url
     * @param {number} [options.timeout=30*1000] - Request time out in ms
     * @param {object} [options.logger] - Logger with `info` and `error`
     * @param {string[]} [options.protocols] - See [w3](https://www.w3.org/TR/websockets/)
     * @param {string} [options.origin]
     * @param {object} [options.headers]
     * @param {object} [options.requestOptions]
     * @param {object} [options.clientConfig] - See [websocket/lib/WebSocketClient](https://github.com/theturtle32/WebSocket-Node/blob/c91a6cb8f0cf896edf0d2d49faa0c9e0a9985172/docs/WebSocketClient.md)
     * @param {number} [options.clientConfig.maxReceivedFrameSize=0x100000] - 1MiB max frame size.
     * @param {number} [options.clientConfig.maxReceivedMessageSize=0x800000] - 8MiB max message size, only applicable if assembleFragments is true
     * @param {number} [options.clientConfig.closeTimeout=5000] - The number of milliseconds to wait after sending a close frame for an acknowledgement to come back before giving up and just closing the socket.
     * @return {WebSocketProvider}
     */
    constructor(options?: {
        url: string;
        timeout?: number;
        logger?: object;
        protocols?: string[];
        origin?: string;
        headers?: object;
        requestOptions?: object;
        clientConfig?: {
            maxReceivedFrameSize?: number;
            maxReceivedMessageSize?: number;
            closeTimeout?: number;
        };
    });
    websocketOptions: {
        url: string;
        timeout?: number;
        logger?: object;
        protocols?: string[];
        origin?: string;
        headers?: object;
        requestOptions?: object;
        clientConfig?: {
            maxReceivedFrameSize?: number;
            maxReceivedMessageSize?: number;
            closeTimeout?: number;
        };
    };
    client: any;
    _connect({ url, protocols, origin, headers, requestOptions, clientConfig }: {
        url: any;
        protocols: any;
        origin: any;
        headers: any;
        requestOptions: any;
        clientConfig: any;
    }): Promise<any>;
    _onData(data?: {}): void;
    _awaitId(id: any): Promise<any>;
    _send(data: any): Promise<any>;
    _request(data: any): Promise<any>;
    _requestBatch(dataArray: any): Promise<any[]>;
    close(): Promise<void>;
}
import BaseProvider = require("./BaseProvider");
//# sourceMappingURL=WebSocketProvider.d.ts.map