export interface PersistentCacheOptions { max?: number; ttl?: number; persistence?: boolean; directory?: string; maxFileBytes?: number; } /** * Bounded in-memory TTL/LRU cache for browser and workerd builds. * * This adapter intentionally has no persistence, process hooks, timers, or * shared global registry. Its public surface matches the Node persistent * cache so the email engine can select it at bundle time without changing * callers. */ export declare class PersistentCache { private readonly cache; private readonly expirations; private readonly max; private readonly ttl; constructor(name: string, options?: PersistentCacheOptions); /** Get a value and promote it to the most-recently-used position. */ get(key: string): T | undefined; /** Set a value with the default TTL or a per-entry override. */ set(key: string, value: T, ttlMs?: number): void; /** Check existence without changing LRU order. */ has(key: string): boolean; delete(key: string): boolean; clear(): void; get size(): number; /** There is no backing store to flush in a web runtime. */ flush(): boolean; /** Detaches no lifecycle hooks; the in-memory cache remains usable. */ dispose(): boolean; private purgeExpired; private pushExpiry; private popExpiry; /** Bound stale heap tokens left behind by overwrites and LRU eviction. */ private compactExpirationsIfNeeded; }