type RootNode = {
    type: "root";
    body: ASTNode[];
};
type StepNode = {
    type: "step";
    label: string;
};
type IfNode = {
    type: "if";
    condition: string;
    thenBranch?: ASTNode;
    elseBranch?: ASTNode;
};
type ThenNode = {
    type: "then";
    body: ASTNode[];
};
type ElseNode = {
    type: "else";
    body: ASTNode[];
};
type LoopNode = {
    type: "loop";
    label: string;
    body: ASTNode[];
};
type ParallelNode = {
    type: "parallel";
    label: string;
    body: ASTNode[];
};
type BodyNode = RootNode | ThenNode | ElseNode | LoopNode | ParallelNode;
type ASTNode = BodyNode | StepNode | IfNode;

export type { ASTNode, BodyNode, ElseNode, IfNode, LoopNode, ParallelNode, RootNode, StepNode, ThenNode };
