/** * Storage Factory * * Factory function to create storage adapters with auto-detection. */ import type { StorageConfig, StorageType, RootStorage } from './types'; /** * Create a storage instance. * * @param config - Storage configuration * @returns Promise - Namespaced storage instance * * @example Basic usage with auto-detection * ```typescript * const store = await createStorage(); * await store.set('key', 'value'); * ``` * * @example Explicit type * ```typescript * const store = await createStorage({ type: 'redis', redis: { url: 'redis://localhost:6379' } }); * await store.connect(); * ``` * * @example With namespaces * ```typescript * const store = await createStorage({ type: 'memory' }); * const session = store.namespace('session', sessionId); * await session.set('user', JSON.stringify(user)); * // Key: session:{sessionId}:user * ``` * * @example With root prefix * ```typescript * const store = await createStorage({ * type: 'redis', * prefix: 'myapp:', * redis: { host: 'localhost' } * }); * // All keys will be prefixed with 'myapp:' * ``` */ export declare function createStorage(config?: StorageConfig): Promise; /** * Create a storage instance synchronously (memory only). * * Use this when you need synchronous creation and are okay with memory storage. * For distributed storage, use the async `createStorage` function instead. * * @param config - Memory adapter options * @returns RootStorage - Namespaced storage instance * * @example * ```typescript * const store = createMemoryStorage({ maxEntries: 1000 }); * store.connect().then(() => { * store.set('key', 'value'); * }); * ``` */ export declare function createMemoryStorage(config?: import('./types').MemoryAdapterOptions & { prefix?: string; }): RootStorage; /** * Get the detected storage type without creating an adapter. * Useful for logging or conditional logic. * * @returns The detected storage type */ export declare function getDetectedStorageType(): StorageType;