import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/timer';
import 'rxjs/add/observable/of';
import 'rxjs/add/observable/throw';
import 'rxjs/add/operator/multicast';
import 'rxjs/add/operator/retryWhen';
import 'rxjs/add/operator/scan';
import 'rxjs/add/operator/do';
import 'rxjs/add/operator/catch';
import { ConnectedClient } from './connectedClient';
import { ConnectionHeaders } from './headers';
import { WsOptions, IWebSocket } from './types';
export interface ClientOptions extends WsOptions {
    maxConnectAttempt: number;
    ttlConnectAttempt: number;
}
declare class Client {
    private stompWebSockerHandler;
    private observableConnection;
    private maxConnectAttempt;
    private ttlConnectAttempt;
    private isConnected;
    constructor(createWsConnection: () => IWebSocket, options: ClientOptions);
    connect: (headers: ConnectionHeaders) => Observable<ConnectedClient>;
    private __connect;
    private __initConnectedClient;
}
export default Client;
