/** A cached value and when it expires. */ export interface CacheEntry { /** The value. */ value: T; /** Epoch milliseconds when it expires. */ expiresAt: number; } /** * A bounded in-memory cache with per-entry expiry, evicting the least recently used entry when * full. Holds 500 entries by default. */ export declare class MemoryCache { private maxEntries; private entries; constructor(maxEntries?: number); /** Returns a value, or `undefined` for a miss or an expired entry. A hit counts as recent use. */ get(key: string): T | undefined; /** * Like `get()`, also saying whether an entry was there but had expired, which a caller can report * as stale rather than missing. The expired entry is removed either way. */ lookup(key: string): { value?: T; stale: boolean; }; /** Stores a value. Defaults to 5 minutes. */ set(key: string, value: T, ttlSeconds?: number): void; /** Removes every entry. */ clear(): void; /** Removes an entry. Returns true when one was removed. */ delete(key: string): boolean; /** Removes expired entries, returning how many went. */ clearExpired(): number; /** Size, capacity, and expired entries not yet removed. */ stats(): { size: number; maxEntries: number; expiredEntries: number; }; } /** A cache key for any value, with object keys sorted so equal values give equal keys. */ export declare function createCacheKey(value: unknown): string;