import { CacheConfig, CacheKey, CacheEntry, CacheStats } from '../types/cache'; export declare abstract class CacheBackend { abstract get(key: string): Promise; abstract set(key: string, value: CacheEntry, ttl: number): Promise; abstract delete(key: string): Promise; abstract clear(): Promise; abstract getStats(): Promise; abstract disconnect?(): Promise; } export declare class MemoryCacheBackend extends CacheBackend { private cache; private stats; get(key: string): Promise; set(key: string, value: CacheEntry, ttl: number): Promise; delete(key: string): Promise; clear(): Promise; getStats(): Promise; disconnect(): Promise; } export declare class FilesystemCacheBackend extends CacheBackend { private path; constructor(path: string); private getFilePath; get(key: string): Promise; set(key: string, value: CacheEntry, ttl: number): Promise; delete(key: string): Promise; clear(): Promise; getStats(): Promise; disconnect(): Promise; } export declare class RedisCacheBackend extends CacheBackend { private redis; private connected; constructor(config: CacheConfig['redis']); get(key: string): Promise; set(key: string, value: CacheEntry, ttl: number): Promise; delete(key: string): Promise; clear(): Promise; getStats(): Promise; disconnect(): Promise; } export declare class CacheService { private backend; private config; private static instance; constructor(config: CacheConfig); static getInstance(config?: CacheConfig): CacheService; private createBackend; private generateKey; get(cacheKey: CacheKey): Promise; set(cacheKey: CacheKey, value: CacheEntry['value']): Promise; delete(cacheKey: CacheKey): Promise; clear(): Promise; getStats(): Promise; disconnect(): Promise; static cleanup(): Promise; } //# sourceMappingURL=cache.d.ts.map