import { ICacheProvider } from '../../domains/cache/domain/ICacheProvider';
import { RedisCacheOptions } from '../../core/types/cacheTypes';
export declare class RedisCache implements ICacheProvider {
    private client;
    private isConnecting;
    private compression;
    private options;
    private reconnectAttempts;
    constructor(options: RedisCacheOptions);
    private initializeClient;
    private buildRedisUrl;
    private setupEventHandlers;
    private handleError;
    connect(): Promise<void>;
    disconnect(): Promise<void>;
    private ensureConnection;
    get<T>(key: string): Promise<T | null>;
    set<T>(key: string, value: T, ttl?: number): Promise<void>;
    delete(key: string): Promise<void>;
    clear(): Promise<void>;
    mget<T>(keys: string[]): Promise<(T | null)[]>;
    exists(key: string): Promise<boolean>;
    updateTTL(key: string, ttl: number): Promise<boolean>;
    getTTL(key: string): Promise<number | null>;
    private maybeCompress;
    private maybeDecompress;
}
//# sourceMappingURL=redis.d.ts.map