import * as i0 from '@angular/core'; import { OnChanges, OnInit, OnDestroy, AfterViewInit, EventEmitter, SimpleChanges } from '@angular/core'; import { Observable } from 'rxjs'; import { LoginMode, RedirectBehavior, LoginType, LoginState } from '@laserfiche/lf-ui-components/shared'; /** @internal */ interface RedirectUriQueryParams { error?: { name: string; description: string; }; authorizationCode?: string; cloudSubDomain?: string; customerId?: string; } interface AuthorizationCredentials { accessToken: string; refreshToken: string; expiresIn: string; tokenType: string; } interface AccountEndpoints { webClientUrl: string; wsignoutUrl: string; regionalDomain: string; oauthAuthorizeUrl: string; } interface AbortedLoginError { ErrorType: string; ErrorMessage: string; } /** * Interface defined by Laserfiche API providing * return type of beforeFetchRequestAsync */ interface LfBeforeFetchResult { regionalDomain: string; } /** * This object handles obtaining the accessToken and * setting the authorization header */ interface LfHttpRequestHandler { /** * Called to prepare the request to the API service. * @param url The HTTP url * @param request The HTTP request */ beforeFetchRequestAsync: (url: string, request: RequestInit) => Promise; /** * Called to handle the response from the API service. * @param url The HTTP url * @param response The HTTP response * @param request The HTTP request * @returns true if the request should be retried. */ afterFetchResponseAsync: (url: string, response: Response, request: RequestInit) => Promise; } declare class LfLoginComponent implements OnChanges, OnInit, OnDestroy, AfterViewInit { /**@internal */ private ref; /**@internal */ private loginService; /**@internal */ private localizationService; mode: LoginMode; /** * @return {LfHttpRequestHandler} * Returns the LfHttpRequestHandler that can be used * to instantiate a repository API client. */ get authorizationRequestHandler(): LfHttpRequestHandler; /** @internal */ get isMenuMode(): boolean; /** @internal */ _sign_in_text: Observable; /** @internal */ _sign_out_text: Observable; /** @internal */ _signing_in_text: Observable; /** @internal */ _signing_out_text: Observable; set sign_in_text(text: string); set sign_out_text(text: string); set signing_in_text(text: string); set signing_out_text(text: string); /** @internal */ buttonText: Observable; set client_id(val: string); get client_id(): string | undefined; set redirect_uri(val: string); get redirect_uri(): string; set scope(val: string); get scope(): string | undefined; set redirect_behavior(val: RedirectBehavior); get redirect_behavior(): RedirectBehavior; set authorize_url_host_name(val: string); get authorize_url_host_name(): string; set login_type(val: LoginType); get login_type(): LoginType; set login_identifier(val: string); get login_identifier(): string; get authorization_credentials(): AuthorizationCredentials | undefined; get account_endpoints(): AccountEndpoints | undefined; get account_id(): string | undefined; get trustee_id(): string | undefined; get state(): LoginState; private set _state(value); loginInitiated: EventEmitter; logoutInitiated: EventEmitter; loginCompleted: EventEmitter; logoutCompleted: EventEmitter; /** * Refreshes and returns the access token * @param initiateLoginFlowOnRefreshFailure * Indicates whether an attempt should be made to login using OAuth flow upon encountering an inability to refresh the access token. * @returns {Promise} */ refreshTokenAsync: (initiateLoginFlowOnRefreshFailure: boolean) => Promise; /** @internal */ private loginFlowHandler; /** @internal */ private startCloudLoginFlowAsync; initLoginFlowAsync: () => Promise; /** @internal */ private startSelfHostedLoginFlow; initSelfHostedLoginFlowAsync: (accountEndpoints: AccountEndpoints, repositoryId: string) => Promise; handleRedirectURICallbackAsync: (url: string) => Promise; /** @internal */ private logoutCompleteSub?; /** @internal */ private loginCompleteSub?; /** @internal */ private code_challenge?; /** @internal */ private hasLoginError; /** @internal */ constructor(); /** @internal */ ngAfterViewInit(): Promise; /** @internal */ ngOnChanges(changes: SimpleChanges): Promise; /** @internal */ private setButtonText; /** @internal */ private onStorageChanged; /** @internal */ private onAccessTokenLocalStorageChange; /** @internal */ get isLoggedIn(): boolean; /** @internal */ get isIntermediateState(): boolean; /** @internal */ ngOnInit(): Promise; /** @internal */ ngOnDestroy(): void; /** @internal */ private initializeLoginAsync; /** @internal */ parseCallbackURI(urlString: string): RedirectUriQueryParams | undefined; /** @internal */ createRefreshTokenRequest(): RequestInit; /** @internal */ onLoginButtonClickAsync(): Promise; /** @internal */ startLoginAsync(): Promise; /** @internal */ private startOAuthLoginFlowAsync; private startSelfHostedLoginFlowAsync; /** @internal */ getAuthorizeUrl(): string; /** @internal */ startLogout(): void; /** @internal */ getFullLogoutUrl(): string | undefined; /** @internal */ private handleRedirectBehavior; /** @internal */ concatStrings(firstString: string | undefined, secondString: string): string; /** @internal */ private beforeFetchRequestAsync; /** @internal */ private afterFetchResponseAsync; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } export { LfLoginComponent }; export type { AbortedLoginError, AccountEndpoints, AuthorizationCredentials, LfBeforeFetchResult, LfHttpRequestHandler };