import { Http, Response } from '@angular/http';
import { Observable } from 'rxjs';
import { Broadcaster } from 'ngo-base';
import { Token } from '../user/token';
export interface ProcessTokenResponse {
    (response: Response): Token;
}
export declare class AuthenticationService {
    private broadcaster;
    private http;
    readonly google: string;
    readonly microsoft: string;
    private refreshInterval;
    private apiUrl;
    private ssoUrl;
    private realm;
    private clearTimeoutId;
    private refreshTokens;
    constructor(broadcaster: Broadcaster, apiUrl: string, ssoUrl: string, realm: string, http: Http);
    logIn(tokenParameter: string): boolean;
    onLogIn(): void;
    logout(): void;
    isLoggedIn(): boolean;
    getToken(): string;
    /**
     * Return Google token
     */
    getGoogleToken(): Observable<string>;
    /**
     * Return Microsoft token
     */
    getMicrosoftToken(): Observable<string>;
    setupRefreshTimer(refreshInSeconds: number): void;
    refreshToken(): void;
    processTokenResponse(response: any): Token;
    private createFederatedToken(broker, processToken);
    private queryAsToken(query);
    private clearSessionData();
}
