import { IndexedDBStorage } from '../adapters/indexed-DB.service'; import { LocalStorage } from '../adapters/local-storage.service'; import { MemoryStorage } from '../adapters/memory-storage.service'; import { IAsyncStorage, IEventEmitter, ILogger, IndexedDBStorageConfig, IStorage, ISyncStorage, LocalStorageConfig, MemoryStorageConfig, StorageType, UniversalStorageConfig } from '../storage.interface'; export declare class StorageFactory { static createMemory>(config: MemoryStorageConfig, eventEmitter?: IEventEmitter, logger?: ILogger): MemoryStorage; static createLocal>(config: LocalStorageConfig, eventEmitter?: IEventEmitter, logger?: ILogger): LocalStorage; static createIndexedDB>(config: IndexedDBStorageConfig, eventEmitter?: IEventEmitter, logger?: ILogger): IndexedDBStorage; static create>(config: UniversalStorageConfig & { type: 'memory'; }, eventEmitter?: IEventEmitter, logger?: ILogger): ISyncStorage; static create>(config: UniversalStorageConfig & { type: 'localStorage'; }, eventEmitter?: IEventEmitter, logger?: ILogger): ISyncStorage; static create>(config: UniversalStorageConfig & { type: 'indexedDB'; }, eventEmitter?: IEventEmitter, logger?: ILogger): IAsyncStorage; /** * Общая перегрузка для динамического `type`. Принимает ТОЛЬКО типы, которые фабрика * реально создаёт (`memory`/`localStorage`/`indexedDB`). `'worker'` сюда НЕ входит * намеренно: `WorkerCacheStorage` не создаётся лениво фабрикой (нужны воркер-опции), * поэтому `create({ type: 'worker' })` не должен типизироваться, а не падать в рантайме (R5). */ static create>(config: UniversalStorageConfig & { type: Exclude; }, eventEmitter?: IEventEmitter, logger?: ILogger): IStorage; }