/** * Cache Service - Redis-based caching layer for performance optimization */ /** * Cache configuration */ export interface CacheConfig { redis: { host: string; port: number; password?: string; db?: number; }; ttl: { default: number; context: number; task: number; project: number; terminal: number; metrics: number; }; compression: { enabled: boolean; minSize: number; }; eviction: { policy: 'lru' | 'lfu' | 'ttl'; maxMemory: string; }; } /** * Cache statistics */ export interface CacheStatistics { hits: number; misses: number; sets: number; deletes: number; evictions: number; hitRatio: number; avgResponseTime: number; memoryUsage: { used: number; peak: number; rss: number; }; keyspaceStats: { keys: number; expires: number; avgTtl: number; }; } /** * Cache Service */ export declare class CacheService { private client; private subscriber; private publisher; private logger; private config; private stats; private warmupCache; private isConnected; constructor(config: CacheConfig); /** * Setup event handlers */ private setupEventHandlers; /** * Configure Redis */ private configureRedis; /** * Connect to cache */ connect(): Promise; /** * Disconnect from cache */ disconnect(): Promise; /** * Get value from cache */ get(key: string): Promise; /** * Set value in cache */ set(key: string, value: T, ttl?: number): Promise; /** * Delete value from cache */ delete(key: string): Promise; /** * Delete multiple values */ deleteMany(pattern: string): Promise; /** * Check if key exists */ exists(key: string): Promise; /** * Get TTL for key */ ttl(key: string): Promise; /** * Extend TTL for key */ expire(key: string, ttl: number): Promise; /** * Flush all cache */ flush(): Promise; /** * Get or set value (cache-aside pattern) */ getOrSet(key: string, factory: () => Promise, ttl?: number): Promise; /** * Invalidate cache by tags */ invalidateByTags(tags: string[]): Promise; /** * Warm up cache with frequently accessed data */ private warmUp; /** * Add to warmup cache */ addToWarmup(key: string, value: any): void; /** * Batch get operations */ mget(keys: string[]): Promise>; /** * Batch set operations */ mset(entries: Map, ttl?: number): Promise; /** * Create cache key */ createKey(...parts: string[]): string; /** * Prefix key with namespace */ private prefixKey; /** * Serialize value */ private serialize; /** * Deserialize value */ private deserialize; /** * Compress data */ private compress; /** * Decompress data */ private decompress; /** * Update hit ratio */ private updateHitRatio; /** * Update response time */ private updateResponseTime; /** * Reset statistics */ private resetStats; /** * Get cache statistics */ getStatistics(): Promise; /** * Parse Redis info */ private parseRedisInfo; /** * Parse keyspace info */ private parseKeyspaceInfo; /** * Generate cache key hash */ hash(input: string): string; /** * Lock for distributed operations */ acquireLock(key: string, ttl?: number): Promise; /** * Release lock */ releaseLock(key: string, lockValue: string): Promise; } //# sourceMappingURL=cache.service.d.ts.map