1/**
2 * `Sfn` — a typed Step Functions program DSL that compiles to ASL.
3 *
4 * Mirrors Effect's names and semantics (`Sfn.gen`, `Sfn.retry`,
5 * `Sfn.catchTag`, `Sfn.all`, `Sfn.forEach`, `Sfn.sleep`, …) over a
6 * shallow-embedded AST. Compile with `StateMachine.fromProgram` /
7 * {@link compileProgram}; run locally with {@link simulate}. The raw
8 * `StateMachine({ definition })` ASL path remains first-class underneath —
9 * the compiler is sugar that produces a plain definition object.
10 */
11export {
12 and,
13 eq,
14 gt,
15 gte,
16 isExpr,
17 jsonata,
18 literal,
19 lt,
20 lte,
21 ne,
22 not,
23 or,
24 taskToken,
25 type Expr,
26 type ExprInput,
27 type UnwrapExpr,
28} from "./Jsonata.ts";
29export type {
30 AslNode,
31 ErrorOutput,
32 ForEachOptions,
33 IntegrationOptions,
34 InvokableFunction,
35 RetryOptions,
36} from "./Node.ts";
37export {
38 gen,
39 isSfnEffect,
40 make,
41 SfnTypeId,
42 type Error,
43 type SfnEffect,
44 type Success,
45} from "./Program.ts";
46export {
47 all,
48 catchAll,
49 catchTag,
50 Errors,
51 fail,
52 forEach,
53 integrate,
54 invoke,
55 match,
56 retry,
57 sleep,
58 succeed,
59 waitForTaskToken,
60 when,
61} from "./combinators.ts";
62export {
63 compileProgram,
64 SfnCompileError,
65 type CompiledProgram,
66} from "./compile.ts";
67export {
68 simulate,
69 SimulateError,
70 type SimulateHandlers,
71 type SimulateOptions,
72} from "./simulate.ts";