import type { OnNext, OnBack, GetState, SetState } from "../render"; export type Flow = ListFlow; export type ItemFlow = ScopeFlow | FormFlow | VariablesFlow | YieldFlow | ReturnFlow; export type ScopeFlow = ListFlow | ConditionFlow | LoopFlow | SwitchFlow | JumpFlow; export type ListFlow = ItemFlow[]; export type ConditionFlow = { condition: { if: (inputs: Record) => boolean; then: ListFlow; else: ListFlow; }; }; export type LoopFlow = { loop: { while: (inputs: Record) => boolean; do: ListFlow; }; }; export type SwitchFlow = { switch: { branches: { case: (inputs: Record) => boolean; then: ListFlow; }[]; default: ListFlow; }; }; export type JumpFlow = { jump: { id: string; item: ItemFlow; }; }; export type FormFlow = { form: { values: (inputs: Record) => Record; render: (args: { inputs: Record; values: Record; params: Record; onNext: OnNext>; onBack: OnBack>; getState: GetState>; setState: SetState; }) => Render; }; }; export type VariablesFlow = { variables: (inputs: Record) => Record; }; export type YieldFlow = { yield: { next: (inputs: Record) => unknown[]; back: (inputs: Record) => unknown[]; }; }; export type ReturnFlow = { return: (inputs: Record) => unknown; }; //# sourceMappingURL=model.d.ts.map