import type { RedisClient, RedisClientOptions } from "veryfront/extensions/distributed"; export type { RedisClient, RedisClientOptions } from "veryfront/extensions/distributed"; /** Minimal `@redis/client` factory options used by this extension. */ export interface RedisClientFactoryOptions { url?: string; socket?: { tls?: boolean; connectTimeout?: number; reconnectStrategy?: false; }; password?: string; username?: string; } export type RedisClientFactory = (options: RedisClientFactoryOptions) => RedisClient; export interface RedisClientManagerDependencies { getEnv?: (key: string) => string | undefined; loadFactory?: () => Promise; now?: () => number; } export interface RedisClientOpenLifecycle { signal?: AbortSignal; onClientCreated?(client: RedisClient): (() => Promise) | void; } export interface RedisClientManager { getClient(options?: RedisClientOptions): Promise; disconnect(): Promise; isConfigured(options?: RedisClientOptions): boolean; } /** Internal handoff of a provisional client that still requires cleanup. */ export declare function takeRedisClientSetupCleanupClient(error: unknown): RedisClient | undefined; /** Open one independently owned Redis connection. */ export declare function openRedisClient(options?: RedisClientOptions, dependencies?: RedisClientManagerDependencies, lifecycle?: RedisClientOpenLifecycle): Promise; /** Create an isolated, concurrency-safe Redis client manager. */ export declare function createRedisClientManager(dependencies?: RedisClientManagerDependencies): RedisClientManager; /** Acquire a connection from the extension-owned shared manager. */ export declare function getRedisClient(options?: RedisClientOptions): Promise; /** Disconnect the shared manager so the next call reconnects from a clean state. */ export declare function disconnectRedisClient(): Promise; /** Report whether the shared manager has an explicit Redis endpoint. */ export declare function isRedisConfigured(options?: RedisClientOptions): boolean; //# sourceMappingURL=redis-client-manager.d.ts.map