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