import { Observable } from 'rxjs/Rx'; import { LoggerService } from '../logger.service'; import { Subject } from 'rxjs/Subject'; export declare class Url { private protocol; private baseUrl; private endPoint; constructor(protocol: string, baseUrl: string, endPoint: string); readonly url: string; getHttpUrl(): Url; getUrlWith(queryParameters: QueryParams): string; } export declare abstract class Protocol { protected loggerService: LoggerService; private protocolConfig; protected _open: Subject; protected _close: Subject; protected _message: Subject; protected _error: Subject; constructor(loggerService: LoggerService, protocolConfig?: ProtocolConfig); abstract start(queryParameters?: QueryParams): void; abstract destroy(): void; message$(): Observable; open$(): Observable; close$(): Observable; error$(): Observable; protected reconnect(): void; protected getBackoffDelay(attempt: any): number; } export interface ProtocolConfig { initialTimeout?: number; maxTimeout?: number; timeWaitToReconnect?: number; } export interface QueryParams { [key: string]: any; }