export interface OidcMetadata { readonly issuer: string; readonly authorizationEndpoint: string; readonly tokenEndpoint: string; readonly jwksUri: string; } export interface FetchOidcMetadataOptions { readonly issuer: string; readonly trustedEndpointOrigins?: readonly string[]; readonly allowInsecureLoopback?: boolean; readonly timeoutMs?: number; } export interface OidcMetadataCacheOptions { readonly ttlSeconds?: number; readonly maxEntries?: number; readonly now?: () => number; } export interface OidcMetadataCache { get(options: FetchOidcMetadataOptions, cacheTtlSeconds?: number): Promise; } type JsonObject = { readonly [key: string]: unknown; }; export declare function fetchOidcMetadata(options: FetchOidcMetadataOptions): Promise; export declare function createOidcMetadataCache(options?: OidcMetadataCacheOptions): OidcMetadataCache; export interface FetchJsonObjectOptions { readonly url: URL; readonly maxBytes: number; readonly timeoutMs: number; readonly allowExactHttpLoopbackEgress?: boolean; readonly authorizeUrl: (url: URL) => void; readonly kind: string; } export declare function fetchJsonObject(options: FetchJsonObjectOptions): Promise; export declare function parseStrictJsonObject(text: string, kind: string): JsonObject; export declare function isPlainObject(value: unknown): value is JsonObject; export {}; //# sourceMappingURL=oidc-metadata.d.ts.map