import { RedisClientType } from 'redis';

interface RedisConfig {
    url: string;
}
declare class RedisDatabase {
    private static instance;
    private client;
    private isConnecting;
    private isConnected;
    private initializationAttempted;
    private redisUrl;
    private constructor();
    static getInstance(): RedisDatabase;
    initialize(config: RedisConfig): Promise<void>;
    getClient(): RedisClientType | null;
    private connect;
    disconnect(): Promise<void>;
    isClientConnected(): boolean;
    safeExecute<T>(operation: (client: RedisClientType) => Promise<T>): Promise<T | null>;
    getStatus(): {
        isConnected: boolean;
        isConnecting: boolean;
        initializationAttempted: boolean;
    };
}
declare const redisBase: RedisDatabase;

export { type RedisConfig, redisBase };
