import { IStorage, IStorageBase } from '../../core'; export type ExtractPromiseType = T extends Promise ? U : T; export type ExtractStorageType = T extends IStorageBase ? U : never; export type StorageCreatorFunction> = () => Promise>; export type SynapseDependency = { storage: IStorageBase; }; /** * Всё, что можно передать в `dependencies[]`: raw storage, обёртка `{ storage }`, * или Promise/Handle другого synapse (любой объект с `.storage: IStorageBase`). */ export type DependencyInput = IStorageBase | SynapseDependency | PromiseLike<{ storage: IStorageBase; }>;