import { OnDestroy } from '@angular/core';
import { TokenUrlService, TokenRequestResult } from 'angular-simple-oidc/core';
import { Subject, Observable } from 'rxjs';
import { EventsService } from 'angular-simple-oidc/events';
import { ConfigService } from 'angular-simple-oidc/config';
import { AuthConfig } from '../config/models';
import { OidcCodeFlowClient } from '../oidc-code-flow-client.service';
import { TokenStorageService } from '../token-storage.service';
import { PopupAuthorizationConfig } from './models';
export declare class AuthorizeEndpointPopupClientService implements OnDestroy {
    protected readonly window: Window;
    protected readonly tokenStorage: TokenStorageService;
    protected readonly authConfig: ConfigService<AuthConfig>;
    protected readonly popupConfig: ConfigService<PopupAuthorizationConfig>;
    protected readonly events: EventsService;
    protected readonly oidcClient: OidcCodeFlowClient;
    protected readonly tokenUrl: TokenUrlService;
    protected destroyedSubject: Subject<unknown>;
    constructor(window: Window, tokenStorage: TokenStorageService, authConfig: ConfigService<AuthConfig>, popupConfig: ConfigService<PopupAuthorizationConfig>, events: EventsService, oidcClient: OidcCodeFlowClient, tokenUrl: TokenUrlService);
    startCodeFlowInPopup(options?: {
        height?: number;
        width?: number;
    }): Observable<TokenRequestResult>;
    ngOnDestroy(): void;
    protected calculatePopupFeatures(options: {
        height?: number;
        width?: number;
    }): string;
}
