import { OnModuleDestroy } from '@nestjs/common'; export interface CacheOptions { url?: string; prefix?: string; ttl?: number; memory?: boolean; memoryTTL?: number; memorySize?: number; } export interface CacheStats { hits: number; misses: number; hitRate: number; } export declare class SmartCache implements OnModuleDestroy { private redis; private memory?; private keyBuilder; private stampede; private serializer; private defaultTTL; private hits; private misses; constructor(options?: CacheOptions); private getRedis; private getMemory; get(key: string): Promise; set(key: string, value: T, ttl?: number): Promise; del(key: string): Promise; clear(): Promise; invalidate(tag: string): Promise; has(key: string): Promise; remember(key: string | number, fn: () => Promise, ttl?: number): Promise; key(...args: (string | number | Record)[]): string; stats(): CacheStats; onModuleDestroy(): Promise; }