export interface ICacheEntry { data: T; timestamp: number; ttl: number; } export declare class MetricsCache { private cache; private inFlight; private readonly defaultTTL; constructor(defaultTTL?: number); /** * Get cached data or compute and cache it */ get(key: string, computeFn: () => T | Promise, ttl?: number): T | Promise; /** * Invalidate a specific cache entry */ invalidate(key: string): void; /** * Clear all cache entries */ clear(): void; /** * Get cache statistics */ getStats(): { size: number; keys: string[]; }; /** * Clean up expired entries */ cleanup(): void; }