import { LRUCache } from 'lru-cache'; export interface CacheMetrics { hits: number; misses: number; evictions: number; sets: number; deletes: number; clears: number; size: number; maxSize: number; avgHitRate: number; createdAt: Date; lastResetAt: Date; } export interface CacheConfig { max: number; ttlMinutes: number; } declare class CacheMetricsTracker { private metrics; private startTime; constructor(); reset(): void; recordHit(): void; recordMiss(): void; recordEviction(): void; recordSet(): void; recordDelete(): void; recordClear(): void; updateSize(current: number, max: number): void; private updateHitRate; getMetrics(): CacheMetrics; getFormattedMetrics(): string; } export declare const cacheMetrics: CacheMetricsTracker; export declare function getCacheConfig(): CacheConfig; export declare function createCacheKey(input: string): string; export declare function createInstanceCache(onDispose?: (value: T, key: string) => void): LRUCache; export declare class CacheMutex { private locks; private lockTimeouts; private readonly timeout; acquire(key: string): Promise<() => void>; isLocked(key: string): boolean; clearAll(): void; } export interface RetryConfig { maxAttempts: number; baseDelayMs: number; maxDelayMs: number; jitterFactor: number; } export declare const DEFAULT_RETRY_CONFIG: RetryConfig; export declare function calculateBackoffDelay(attempt: number, config?: RetryConfig): number; export declare function withRetry(fn: () => Promise, config?: RetryConfig, context?: string): Promise; export declare function getCacheStatistics(): string; export {}; //# sourceMappingURL=cache-utils.d.ts.map