import { EventEmitter } from '@angular/core';
import { LoginProvider } from './login-provider';
import { LfLoginService } from './lf-login.service';
import { SelfHostedTokenClient } from '@laserfiche/lf-api-client-core';
import { AuthorizationCredentials } from './lf-login-types';
import { RedirectUriQueryParams } from './lf-login-internal-types';
import { LoginState } from '@laserfiche/lf-ui-components/shared';
import * as i0 from "@angular/core";
/** @internal */
export declare class SelfHostedLoginProvider implements LoginProvider {
    private lfLoginService;
    private readonly repositoryId;
    constructor(lfLoginService: LfLoginService, repositoryId: string);
    getTokenClient(): SelfHostedTokenClient;
    getBaseAuthorizeUrl(): string;
    storeInLocalStorage(accessTokenCredentials: AuthorizationCredentials, _accountId: string, _regionalDomain: string): void;
    exchangeRedirectUriQueryParams(url: URL): RedirectUriQueryParams | undefined;
    determineCurrentState(callBackURIParams: RedirectUriQueryParams | undefined, loginCompleted: EventEmitter<void>, logoutCompleted: EventEmitter<void>): LoginState;
    logoutInitiatedViaUrl(url: string | undefined, logoutInitiated: {
        emit: (url?: string) => void;
    }): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SelfHostedLoginProvider, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SelfHostedLoginProvider>;
}
