/** * LRU cache with max entries and max bytes limits. * Entry: { kind, version, expiresAt, value } per SPEC 12.3. * * Recency is a doubly linked list (head = most recent) indexed by a Map, so * hits and evictions are O(1) and never churn the Map's insertion order. * Cached values are replaced, never mutated, so each node stores its size. */ export interface LRUOptions { maxEntries?: number; maxBytes?: number; } export declare function createLRU(opts?: LRUOptions): { get: (key: string) => E | null; set: (key: string, entry: E) => void; del: (key: string) => void; clear: () => void; readonly stats: { entries: number; bytes: number; hits: number; misses: number; hitRatio: number; }; };