import { resetOidcDiscoveryCacheForTests } from "./oidcIdToken"; import type { OAuthProfile, OAuthProvider } from "./types"; interface OidcProviderOptions { name: string; issuer: string; clientId: string; clientSecret: string; redirectUri: string; scopes?: string[]; } interface OidcHandshake { state: string; nonce: string; codeVerifier: string; } declare function createOidcHandshake(): OidcHandshake; declare class OidcProvider implements OAuthProvider { private readonly options; readonly name: string; constructor(options: OidcProviderOptions); getAuthorizationUrl(_state: string, _redirectUri?: string): string; createAuthorization(state?: string, redirectUri?: string): Promise<{ url: string; handshake: OidcHandshake; }>; private buildAuthorizationUrl; exchangeCode(code: string, redirectUri?: string, handshake?: Pick): Promise; } export type { OidcHandshake, OidcProviderOptions }; export { createOidcHandshake, OidcProvider, resetOidcDiscoveryCacheForTests };