/**
 * Adapter Provider
 *
 * Factory that creates appropriate adapters based on configuration and
 * Redis availability. Supports both Redis-backed and in-memory implementations.
 *
 * Features:
 * - Automatic Redis availability detection
 * - Singleton pattern for adapter instances
 * - Health check support
 * - Graceful fallback to memory when Redis is unavailable
 *
 * @packageDocumentation
 */
import type { AdapterProvider, IQueueAdapter, ICacheAdapter, ILockAdapter, ISessionStoreAdapter, IRateLimitAdapter } from './types.js';
/**
 * Provider configuration
 */
export interface AdapterProviderConfig {
    /** Force memory mode even if Redis is available */
    forceMemoryMode?: boolean;
    /** Redis connection timeout in milliseconds */
    redisConnectionTimeoutMs?: number;
}
/**
 * Get the adapter provider singleton
 */
export declare function getAdapterProvider(config?: AdapterProviderConfig): AdapterProvider;
/**
 * Create a new adapter provider instance (for testing)
 */
export declare function createAdapterProvider(config?: AdapterProviderConfig): AdapterProvider & {
    shutdown(): Promise<void>;
};
/**
 * Reset the singleton provider (for testing)
 */
export declare function resetAdapterProvider(): Promise<void>;
/**
 * Convenience function to get adapters directly
 */
export declare function getQueueAdapter(name: string): IQueueAdapter;
export declare function getCacheAdapter(): ICacheAdapter;
export declare function getLockAdapter(): ILockAdapter;
export declare function getSessionStoreAdapter(): ISessionStoreAdapter;
export declare function getRateLimitAdapter(): IRateLimitAdapter;
//# sourceMappingURL=provider.d.ts.map