import type { RequestFunction } from "../../platform/types/types"; import type { IURLRouter } from "../../domain/navigation/URLRouter"; import type { SegmentType } from "../../domain/navigation"; type BearerToken = { token_type: "Bearer"; access_token: string; refresh_token?: string; expires_in?: number; id_token?: string; }; type AuthorizationParams = { state: string; scope: string; redirectUri: string; nonce?: string; codeVerifier?: string; }; /** * @see https://openid.net/specs/openid-connect-rpinitiated-1_0.html */ type LogoutParams = { /** * Maps to the `id_token_hint` parameter. */ idTokenHint?: string; /** * Maps to the `state` parameter. */ state?: string; /** * Maps to the `post_logout_redirect_uri` parameter. */ redirectUri?: string; /** * Maps to the `logout_hint` parameter. */ logoutHint?: string; }; export type IssuerUri = string; export interface OidcClientConfig { client_id: string; } export type StaticOidcClientsConfig = Record; export declare class OidcApi { _issuer: IssuerUri; _requestFn: RequestFunction; _encoding: any; _crypto: any; _urlRouter: IURLRouter; _metadataPromise: Promise; _registrationPromise: Promise; _staticClients: StaticOidcClientsConfig; constructor({ issuer, request, encoding, crypto, urlRouter, clientId, staticClients }: { issuer: IssuerUri; request: RequestFunction; encoding: any; crypto: any; urlRouter: IURLRouter; clientId?: string; staticClients?: StaticOidcClientsConfig; }); get clientMetadata(): { client_name: string; logo_uri: string; client_uri: string; tos_uri: string; policy_uri: string; response_types: string[]; grant_types: string[]; redirect_uris: string[]; id_token_signed_response_alg: string; token_endpoint_auth_method: string; post_logout_redirect_uris: string[]; }; get metadataUrl(): string; get issuer(): string; clientId(): Promise; registration(): Promise; metadata(): Promise; validate(): Promise; _generateCodeChallenge(codeVerifier: string): Promise; authorizationEndpoint({ state, redirectUri, scope, nonce, codeVerifier, }: AuthorizationParams): Promise; tokenEndpoint(): Promise; registrationEndpoint(): Promise; revocationEndpoint(): Promise; endSessionEndpoint({ idTokenHint, logoutHint, redirectUri, state }: LogoutParams): Promise; isGuestAvailable(): Promise; generateDeviceScope(): String; generateParams({ scope, redirectUri }: { scope: string; redirectUri: string; }): AuthorizationParams; completeAuthorizationCodeGrant({ codeVerifier, code, redirectUri, }: { codeVerifier: string; code: string; redirectUri: string; }): Promise; refreshToken({ refreshToken, }: { refreshToken: string; }): Promise; revokeToken({ token, type, }: { token: string; type: "refresh" | "access"; }): Promise; } export {};