/// <reference types="node" />
import * as url from 'url';
import { EventEmitter } from 'events';
import * as WebSocketClient from 'ws';
import { WebSocketOptions } from './interfaces';
declare const _default: {
    new (address: string, options?: WebSocketOptions): {
        ws: WebSocketClient;
        address: string;
        protocols?: string | string[];
        options?: WebSocketClient.ClientOptions;
        beforeConnect: (connectionAttempts?: number) => Promise<void>;
        url: url.Url;
        reconnecting: boolean;
        reconnectInterval: number;
        pingInterval: number;
        pingTimeout: number;
        pingFailureLimit: number;
        pong: any;
        ping: any;
        connectionAttempt: number;
        closed: boolean;
        init(): void | Promise<void>;
        connect(): void;
        reconnect(): void;
        send(msg: any, callback?: (err: Error) => void): void;
        sendJson(msg: any, callback?: (err: Error) => void): void;
        close(code?: number, reason?: string): void;
        addListener(event: string | symbol, listener: (...args: any[]) => void): any;
        on(event: string | symbol, listener: (...args: any[]) => void): any;
        once(event: string | symbol, listener: (...args: any[]) => void): any;
        prependListener(event: string | symbol, listener: (...args: any[]) => void): any;
        prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): any;
        removeListener(event: string | symbol, listener: (...args: any[]) => void): any;
        off(event: string | symbol, listener: (...args: any[]) => void): any;
        removeAllListeners(event?: string | symbol): any;
        setMaxListeners(n: number): any;
        getMaxListeners(): number;
        listeners(event: string | symbol): Function[];
        rawListeners(event: string | symbol): Function[];
        emit(event: string | symbol, ...args: any[]): boolean;
        eventNames(): (string | symbol)[];
        listenerCount(type: string | symbol): number;
    };
    listenerCount(emitter: EventEmitter, event: string | symbol): number;
    defaultMaxListeners: number;
    once(emitter: EventEmitter, event: string | symbol): Promise<any[]>;
    EventEmitter: typeof EventEmitter;
};
export = _default;
