import { Application } from './Application';
export type WebSocketClientOptions = {
    reconnectInterval?: number;
    reconnectAttempts?: number;
    pingInterval?: number;
    url?: string;
    basename?: string;
    protocols?: string | string[];
    onServerDown?: any;
};
export declare class WebSocketClient {
    private app;
    protected _ws: WebSocket;
    protected _reconnectTimes: number;
    protected events: any[];
    protected options: WebSocketClientOptions;
    enabled: boolean;
    connected: boolean;
    serverDown: boolean;
    lastMessage: {};
    constructor(options: WebSocketClientOptions | boolean, app: Application);
    getURL(): string;
    get reconnectAttempts(): number;
    get reconnectInterval(): number;
    get pingInterval(): number;
    get readyState(): number;
    connect(): void;
    reconnect(): void;
    close(): void;
    send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void;
    on(type: string, listener: any, options?: boolean | AddEventListenerOptions): void;
    emit(type: string, args: any): void;
    off(type: string, listener: any, options?: boolean | EventListenerOptions): void;
    removeAllListeners(): void;
}
