/** * Redis Connection Pool Manager * * Provides a shared Redis connection pool for all services. * Avoids connection overhead and prevents connection leaks. * * @package @memo-labs/database */ import { Redis } from "ioredis"; interface RedisConfig { host?: string; port?: number; password?: string; db?: number; url?: string; } /** * Redis Connection Pool Manager (Singleton) */ export declare class RedisPoolManager { private static instance; private connections; private defaultConnection; private constructor(); /** * Get the singleton instance */ static getInstance(): RedisPoolManager; /** * Get or create a Redis connection * * @param config - Redis configuration * @param key - Optional connection key for multiple connections * @returns Redis client instance */ getConnection(config?: RedisConfig, key?: string): Redis; /** * Get the default Redis connection * * @param config - Redis configuration (used only if creating new connection) * @returns Redis client instance */ getDefaultConnection(config?: RedisConfig): Redis; /** * Parse Redis configuration from multiple formats * * @param config - Configuration in various formats * @returns Parsed Redis options */ private parseConfig; /** * Close a specific connection * * @param key - Connection key */ closeConnection(key?: string): Promise; /** * Close all connections */ closeAll(): Promise; /** * Get connection pool statistics */ getStats(): { totalConnections: number; keys: string[]; }; } /** * Get a Redis connection (convenience function) * * @param config - Redis configuration * @param key - Optional connection key * @returns Redis client instance */ export declare function getRedisConnection(config?: RedisConfig, key?: string): Redis; /** * Get the default Redis connection (convenience function) * * @param config - Redis configuration * @returns Redis client instance */ export declare function getDefaultRedisConnection(config?: RedisConfig): Redis; /** * Close all Redis connections (convenience function) */ export declare function closeAllRedisConnections(): Promise; export {}; //# sourceMappingURL=redis-pool.d.ts.map