import NodeCache from "node-cache"; interface CacheConfig { stdTTL: number; checkperiod: number; maxKeys?: number; } declare class PerformanceCache { private cache; constructor(config: CacheConfig); get(key: string, fetcher: () => Promise, ttl?: number): Promise; set(key: string, value: any, ttl?: number): boolean; del(key: string): number; flush(): void; getStats(): NodeCache.Stats; } export declare const systemMetricsCache: PerformanceCache; export declare const processListCache: PerformanceCache; export declare const searchIndexCache: PerformanceCache; export declare const fileTagsCache: PerformanceCache; export declare function createCacheKey(prefix: string, params: Record): string; export declare function debounce any>(func: T, wait: number): (...args: Parameters) => void; export declare class RateLimiter { private requests; private readonly maxRequests; private readonly windowMs; constructor(maxRequests: number, windowMs: number); checkLimit(): Promise; waitForSlot(): Promise; } export {}; //# sourceMappingURL=cache.d.ts.map