import { Observable } from 'rxjs/Observable';
import { LoginRequest } from '@documment/mmp.core';
import { User } from '@documment/mmp.core';
import { Api } from '@documment/mmp.ui.data';
import { ApiOptions } from '@documment/mmp.ui.data';
import { OAuthCredentials } from '@documment/mmp.ui.data';
import { Logger } from '@documment/mmp.ui.data';
import { InstitutionListBuilder } from '../filtering/builders/institution-list.builder';
import { UserStrategizer } from '../strategy/user/user.strategizer';
import { InstitutionSelector } from '../strategy/selectors/institution.selector';
export declare class Authorizer {
    private api;
    private oAuthCredentials;
    private userStrategizer;
    private institutionListBuilder;
    private institutionSelector;
    private logger;
    constructor(api: Api, oAuthCredentials: OAuthCredentials, userStrategizer: UserStrategizer, institutionListBuilder: InstitutionListBuilder, institutionSelector: InstitutionSelector, logger: Logger);
    run(): Observable<User>;
    login(login: LoginRequest, options?: ApiOptions): Observable<User>;
    logout(): Observable<void>;
    private refreshUserStratgey(oAuthResponse, user, institutions);
}
