import type Redis from 'ioredis'; import { BaseCacheProvider } from './base-cache.provider'; /** * Token for injecting Redis client */ export declare const REDIS_CLIENT: unique symbol; /** * Redis cache provider using ioredis * * This is the L3 cache layer - distributed caching using Redis. * Data is persisted in Redis and shared across all processes/servers. * * Slowest but most persistent and widely shared cache layer. */ export declare class RedisCacheProvider extends BaseCacheProvider { private readonly redis?; private readonly logger; private readonly keyPrefix; constructor(redis?: Redis); getName(): string; get(key: string): Promise; set(key: string, value: T, ttl?: number): Promise; delete(key: string | string[]): Promise; deletePattern(pattern: string): Promise; clear(): Promise; has(key: string): Promise; /** * Batch get using Redis MGET */ mget(keys: string[]): Promise<(T | null)[]>; /** * Batch set using Redis pipeline */ mset(items: Array<{ key: string; value: any; }>, ttl?: number): Promise; /** * Check if Redis client is available */ isAvailable(): boolean; /** * Get Redis client (for advanced usage) */ getClient(): Redis | undefined; /** * Get full key with prefix */ private getFullKey; }