import { IAsyncStorage, IEventEmitter, ILogger, IStorage, ISyncStorage, StorageInitStatus, StorageType, UniversalStorageConfig } from '../../core'; export interface UseSynapseStorageOptions { /** * Автоматически инициализировать при монтировании */ autoInitialize?: boolean; /** * Уничтожать storage при размонтировании */ destroyOnUnmount?: boolean; } export type UseSynapseStorageReturn = { storage: S; status: StorageInitStatus; initialize: () => Promise; destroy: () => Promise; isReady: true; isLoading: false; hasError: false; } | { storage: null; status: StorageInitStatus; initialize: () => Promise; destroy: () => Promise; isReady: false; isLoading: boolean; hasError: boolean; }; export declare function useCreateStorage>(config: UniversalStorageConfig & { type: 'memory'; }, options?: UseSynapseStorageOptions, eventEmitter?: IEventEmitter, logger?: ILogger): UseSynapseStorageReturn>; export declare function useCreateStorage>(config: UniversalStorageConfig & { type: 'localStorage'; }, options?: UseSynapseStorageOptions, eventEmitter?: IEventEmitter, logger?: ILogger): UseSynapseStorageReturn>; export declare function useCreateStorage>(config: UniversalStorageConfig & { type: 'indexedDB'; }, options?: UseSynapseStorageOptions, eventEmitter?: IEventEmitter, logger?: ILogger): UseSynapseStorageReturn>; export declare function useCreateStorage>(config: UniversalStorageConfig & { type: Exclude; }, options?: UseSynapseStorageOptions, eventEmitter?: IEventEmitter, logger?: ILogger): UseSynapseStorageReturn>;