import { Result } from "@adviser/cement"; import type { SuperThis } from "../types/sthis.js"; import type { FPApiToken, VerifiedClaimsResult } from "../types/wire.js"; import { ClerkApiToken } from "./clerk-token.js"; export declare const USERINFO_TIMEOUT_MS = 2000; export declare const WALK_TIMEOUT_FACTOR = 2; export declare const WALK_TIMEOUT_MS: number; export declare const NEGATIVE_CACHE_TTL_MS = 60000; export declare const NEGATIVE_CACHE_MAX = 512; export declare const INSTANCE_AFFINITY_TTL_MS = 600000; export declare const INSTANCE_AFFINITY_MAX = 512; export interface ClerkOauthFallbackOptions { readonly clockTolerance?: number; readonly userinfoUrl?: string; readonly fetch?: typeof fetch; readonly userinfoTimeoutMs?: number; readonly walkTimeoutMs?: number; readonly now?: () => number; } export declare class BoundedTokenMemo { readonly ttlMs: number; readonly max: number; readonly now: () => number; readonly entries: Map; constructor(opts: { readonly ttlMs: number; readonly max: number; readonly now: () => number; }); get size(): number; recall(key: string): V | undefined; has(key: string): boolean; forget(key: string): void; remember(key: string, value: V): void; } export declare class ClerkOauthFallbackToken implements FPApiToken { readonly sthis: SuperThis; readonly jwt: ClerkApiToken; readonly clockTolerance?: number; readonly explicitUserinfoUrl?: string; readonly fetchImpl: typeof fetch; readonly userinfoTimeoutMs: number; readonly walkTimeoutMs: number; readonly now: () => number; readonly negativeCache: BoundedTokenMemo; readonly instanceAffinity: BoundedTokenMemo; constructor(sthis: SuperThis, opts?: ClerkOauthFallbackOptions); readonly userinfoUrls: () => Result; verify(token: string): Promise>; decode(token: string): Promise>; private rememberRejection; private introspectionOrder; private introspect; private onVerdict; private introspectAt; private claimsFrom; }