import { Observable } from 'rxjs'; import { IStorageBase } from '../../../core'; /** * Конвертирует хранилище (IStorageBase) в Observable потока состояния. * * Без `selector` поток эмитит всё состояние `T` на каждое изменение хранилища. * С `selector` поток эмитит только выбранный срез и через `distinctUntilChanged` * пропускает повторы (по умолчанию сравнение по `Object.is`, либо переданным * `equals`) — компонент/эффект получает значение только когда срез реально менялся. * * @example * ```ts * import { toObservable } from 'synapse-storage/reactive' * * const auth$ = toObservable(authStorage) * * // Использование в createEffectConfig * createEffectConfig: () => ({ * externalStates: { auth: auth$ }, * }) * * // Поток только по срезу (эмитит лишь при изменении user.id): * const userId$ = toObservable(authStorage, (s) => s.user.id) * ``` */ export declare function toObservable>(storage: IStorageBase): Observable; export declare function toObservable, R>(storage: IStorageBase, selector: (state: T) => R, equals?: (a: R, b: R) => boolean): Observable; /** * Проверяет, является ли значение хранилищем (IStorageBase) */ export declare function isStorage(value: any): value is IStorageBase;