export interface ICacheEntry<T> {
    data: T;
    timestamp: number;
}
export declare class MetricsCache {
    private cache;
    private readonly defaultTTL;
    constructor(defaultTTL?: number);
    /**
     * Get cached data or compute and cache it
     */
    get<T>(key: string, computeFn: () => T | Promise<T>, ttl?: number): T | Promise<T>;
    /**
     * 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;
}
