/** * Options for cache operations */ export interface CacheOptions { /** Time-to-live in seconds */ ttl?: number /** Namespace for the cache key */ namespace?: string } /** * Core caching interface that all implementations must follow */ export interface CacheInterface { /** * Get a value from cache */ get(key: string): Promise /** * Set a value in cache */ set(key: string, value: T, options?: CacheOptions): Promise /** * Delete a value from cache */ delete(key: string): Promise /** * Check if a key exists in cache */ has(key: string): Promise /** * Clear all values in cache */ clear(): Promise /** * Get multiple values from cache */ mget(keys: string[]): Promise<(T | null)[]> /** * Set multiple values in cache */ mset(entries: [string, T][], options?: CacheOptions): Promise }