import { EventMap } from '../utils/eventMapper';
export interface SignalRHubOptions {
    debug?: boolean;
    reconnectOnDisconnect?: boolean;
}
export declare enum ConnectionState {
    Connecting = 0,
    Connected = 1,
    Reconnecting = 2,
    Disconnected = 4,
}
export interface DeferredObjectInfo {
    done: (...params: any[]) => DeferredObjectInfo;
    fail: (...params: any[]) => DeferredObjectInfo;
    isRejected: (...params: any[]) => DeferredObjectInfo;
    isResolved: (...params: any[]) => DeferredObjectInfo;
    reject: (...params: any[]) => DeferredObjectInfo;
    rejectWith: (...params: any[]) => DeferredObjectInfo;
    resolve: (...params: any[]) => DeferredObjectInfo;
    resolveWith: (...params: any[]) => DeferredObjectInfo;
    then: (...params: any[]) => DeferredObjectInfo;
}
export declare class SignalRHub {
    private hubName;
    private eventMaps;
    private hub;
    private signalRHost;
    private debug;
    private conn;
    reconnectOnDisconnect: boolean;
    private wantStop;
    private tryingToReconnect;
    connectionState: ConnectionState;
    onConnected: (hub: SignalRHub) => void;
    onStarting: (hub: SignalRHub) => void;
    onReceived: (hub: SignalRHub, data: any) => void;
    onConnectionSlow: (hub: SignalRHub) => void;
    onReconnecting: (hub: SignalRHub) => void;
    onReconnected: (hub: SignalRHub) => void;
    onStateChanged: (hub: SignalRHub, state: {
        oldState: ConnectionState;
        newState: ConnectionState;
    }) => void;
    onDisconnected: (hub: SignalRHub) => void;
    onError: (hub: SignalRHub, error: string) => void;
    constructor(hubName: string, eventMaps: EventMap[], options?: SignalRHubOptions, signalRHost?: string);
    start(onStart?: (hub: SignalRHub) => void, options?: {
        host: string;
    }): void;
    stop(): void;
    invoke(method: string, ...params: any[]): DeferredObjectInfo;
    private internalOnStarting;
    private internalOnReceived;
    private internalOnConnectionSlow;
    private internalOnReconnecting;
    private internalOnReconnected;
    private internalOnStateChanged;
    private internalOnDisconnected;
    private internalOnError;
    private registerEvents();
    private unregisterEvents();
}
