import type { OAuthClientInformationFull } from '@modelcontextprotocol/sdk/shared/auth.js'; export declare const CLIENT_ID_DYNAMIC_PREFIX = "mcp-client-"; export declare const CLIENT_STORE_DEFAULTS: { readonly maxClients: 1000; readonly maxRedirectUris: 10; readonly maxRedirectUriLength: 256; readonly idleGraceMs: 0; }; export declare const CLIENT_STORE_ENV: { readonly maxClients: "MCP4_OAUTH_CLIENT_STORE_MAX_CLIENTS"; readonly maxRedirectUris: "MCP4_OAUTH_CLIENT_STORE_MAX_REDIRECT_URIS"; readonly maxRedirectUriLength: "MCP4_OAUTH_CLIENT_STORE_MAX_REDIRECT_URI_LENGTH"; readonly idleGraceMs: "MCP4_OAUTH_CLIENT_STORE_IDLE_GRACE_MS"; }; export type OAuthClientStoreClientKind = 'dynamic' | 'static'; export interface InMemoryClientsStoreOptions { maxClients?: number; maxRedirectUris?: number; maxRedirectUriLength?: number; idleGraceMs?: number; } export interface ClientStoreLimits { maxClients: number; maxRedirectUris: number; maxRedirectUriLength: number; idleGraceMs: number; } export interface OAuthClientRuntimeMeta { clientId: string; kind: OAuthClientStoreClientKind; createdAt: number; lastUsedAt?: number; activeSessionCount: number; pendingStateCount: number; pendingAuthCodeCount: number; } export interface EvictionCandidateRecord { clientId: string; kind: OAuthClientStoreClientKind; createdAt: number; lastUsedAt?: number; activeSessionCount: number; pendingStateCount: number; pendingAuthCodeCount: number; isIdle: boolean; isNeverUsed: boolean; ageMs: number; } export type EvictionTierId = 'tier_a_dynamic_idle_never_used' | 'tier_b_dynamic_idle' | 'tier_c_any_idle'; export interface EvictionDecisionEvict { decision: 'evict'; clientId: string; tier: EvictionTierId; } export interface EvictionDecisionNoCandidate { decision: 'no_candidate'; reason: 'no_idle_candidates'; } export type EvictionDecision = EvictionDecisionEvict | EvictionDecisionNoCandidate; export interface OAuthClientStoreStats { totalClients: number; dynamicClients: number; staticClients: number; activeSessionClients: number; pendingStateClients: number; pendingAuthCodeClients: number; idleClients: number; } export interface StoredOAuthClient { client: OAuthClientInformationFull; meta: OAuthClientRuntimeMeta; } //# sourceMappingURL=types.d.ts.map