export type SanitizeMemoStats = { hits: number; misses: number; evictions: number; entries: number; cacheBytes: number; computeMsTotal: number; }; /** * Generic byte-bounded LRU memo for a pure `(key: string) => string` function. * - Hit: move-to-end (true LRU recency). * - Miss: compute (timed), insert, then evict oldest until total bytes <= budget. * - Oversize (single entry > budget): compute but do not cache (no thrash). * - Disabled: bypass the cache; still record misses/computeMs (measurable baseline). * Byte size is approximated by UTF-16 length (key.length + value.length). */ export declare function makeByteBoundedMemo(fn: (key: string) => string, opts: { maxBytes: number; enabled: () => boolean; }): { call: (key: string) => string; stats: () => SanitizeMemoStats; };