import * as Hapi from '@hapi/hapi'; declare module '@hapi/hapi' { interface AuthCredentials { token: string; userId: string; } interface PluginProperties { ['@boundstate/hapi-oidc-auth']: { client: OidcClient; }; } } export interface HapiOidcClientMetadata { client_id: string; client_secret: string; } export interface HapiOidcAuthOptions { issuer: string; allowQueryToken?: boolean; clientMetadata?: HapiOidcClientMetadata; dynamicRegistration?: { clientMetadata: object; initialAccessToken: string; verify?: boolean; onRegistered(metadata: HapiOidcClientMetadata): void; }; } export interface OidcIssuer { registration_endpoint?: string; } export interface OidcClient { [key: string]: any; client_id: string; metadata: { client_id: string; client_secret: string; [key: string]: any; }; issuer: OidcIssuer; introspect(token: string, hint?: string): Promise; } export declare type OidcTokenDetails = { active: false; } | { active: true; token_type: string; sub: string; client_id: string; exp: number; iat: number; sid: string; iss: string; jti: string; scope: string; }; export declare const hapiOidcAuth: Hapi.Plugin; /** * @deprecated */ export declare function getOidcClient(server: Hapi.Server): OidcClient;