import { Location } from '@angular/common';
import { Injector } from '@angular/core';
import { Http } from '@angular/http';
import { ActivatedRoute, Router } from '@angular/router';
import { Observable, Subject } from 'rxjs';
import { DataStoreService } from '../data-store.service';
import { OAuthService } from './oauth2.service';
export declare class CommsService {
    private route;
    private router;
    private http_service;
    private oAuthService;
    private store;
    private loc;
    private injector;
    private trust;
    private sub;
    private refresh;
    private login_promise;
    private retry;
    private debug;
    private http;
    private simple;
    private valid_params;
    constructor(route: ActivatedRoute, router: Router, http_service: Http, oAuthService: OAuthService, store: DataStoreService, loc: Location, injector: Injector);
    setupOAuth(options: any): void;
    mock(enable?: boolean): void;
    tryLogin(): void;
    needsLogin(): Subject<boolean>;
    get(url: string, options?: any): Observable<{}>;
    post(url: string, body?: any, options?: any): Observable<{}>;
    put(url: string, body?: any, options?: any): Observable<{}>;
    delete(url: string, options?: any): Observable<{}>;
    hash(str: string): string;
    login(): Promise<any>;
    logout(): void;
    readonly token: Promise<any>;
    readonly hasToken: any;
    isLoggedIn(): boolean;
    refreshToken(resolve: any, reject: any, retries?: number): void;
    setLoginStatus(status: boolean): void;
    clearStore(): void;
    checkAuth(cb_fn: any): void;
    private performLogin(resolve, reject);
    private loginDone();
    private processLoginError(err, reject);
    private storeError(type, error);
    private updateToken(data, resolve);
    private cleanUrl();
    private processOptions(url, body?, options?);
    private error(err, req, obs);
}
