import { RakunMono, Void } from "rakun"; import { Get, Set, RakunFlowState, RakunFlowSnapshotState, RakunFlowValue } from "../types"; export type RakunFlowSelectorBuildConfigReadOnly = { path: string; get: Get; }; export type RakunFlowSelectorBuildConfig = { set: Set; } & RakunFlowSelectorBuildConfigReadOnly; export interface RakunFlowSelectorStatic { (path: RakunFlowSelectorBuildConfigReadOnly): RakunFlowValue; (path: RakunFlowSelectorBuildConfig): RakunFlowState; } export interface RakunFlowSelectorManager { reset(path: string): RakunMono; subscribe(path: string, callback: (value: RakunFlowSnapshotState) => void): RakunMono<() => RakunMono>; getState(path: string, get: () => RakunMono): RakunMono>; }