import { RakunMono, Void } from "rakun"; export declare abstract class RakunFlowValue { abstract path: string; abstract get(): RakunMono; abstract getState(): RakunMono>; abstract reset(): RakunMono; abstract subscribe(callback: (value: RakunFlowSnapshotState) => void): RakunMono<() => RakunMono>; } export declare abstract class RakunFlowState extends RakunFlowValue { abstract set(value: T): RakunMono; } export type RakunFlowSnapshotStateType = 'atom' | 'selector'; export type RakunFlowSnapshotState = { type: RakunFlowSnapshotStateType; value: T; state: "hasValue" | "loading"; dependencies: string[]; }; export type Default = RakunMono; export type DefaultFamily = (params: P) => RakunMono; export type Get = RakunMono; export type Set = (value: T) => RakunMono; export type GetFamily = (params: P) => RakunMono; export type SetFamily = (params: P, value: T) => RakunMono;