import { ISignalRConnection } from './i.signalr.connection';
import { Observable } from 'rxjs';
import { BroadcastEventListener } from '../eventing/broadcast.event.listener';
import { ConnectionStatus } from './connection.status';
import { NgZone } from '@angular/core';
import { SignalRConfiguration } from '../signalr.configuration';
export declare type CallbackFn = (...args: any[]) => void;
export declare class SignalRConnection implements ISignalRConnection {
    private _currentStatus;
    private _status;
    private _errors;
    private _jConnection;
    private _jProxy;
    private _zone;
    private _configuration;
    private _listeners;
    constructor(jConnection: any, jProxy: any, zone: NgZone, configuration: SignalRConfiguration);
    setQueryString(qs: any): void;
    readonly errors: Observable<any>;
    readonly status: Observable<ConnectionStatus>;
    readonly currentStatus: ConnectionStatus;
    start(): Promise<ISignalRConnection>;
    stop(): void;
    readonly id: string;
    invoke(method: string, ...parameters: any[]): Promise<any>;
    listen<T>(listener: BroadcastEventListener<T>): void;
    stopListening<T>(listener: BroadcastEventListener<T>): void;
    listenFor<T>(event: string): BroadcastEventListener<T>;
    listenForRaw(event: string): BroadcastEventListener<any[]>;
    private setListener<T>(callback, listener);
    private convertTransports(transports);
    private wireUpErrorsAsObservable();
    private wireUpStatusEventsAsObservable();
    private onBroadcastEventReceived<T>(listener, ...args);
    private log(...args);
    private run(func, inZone);
}
