import type { WorkflowDefinition } from "../flow/types.ts"; import type { Outline, OutlineNode } from "./types.ts"; /** Build a workflow's static tree (progress §1, §3.4). Total: every node kind has a case. */ export declare function buildOutline(definition: WorkflowDefinition): Outline; /** * The static path of one live foreach item (progress §3.4): the foreach's own path with its leaf * segment indexed — `review-each` + 3 → `review-each@3`. Built through the node-path grammar rather * than by string concatenation so the `@` separator stays declared in exactly one place (node-path.ts). */ export declare function foreachItemPath(foreach: OutlineNode, index: number): string; /** * A foreach's body template re-pathed for one live item: every descendant's path gains the item's index * at the foreach's own segment (`review-each/review` → `review-each@3/review`). * * Prefix substitution is exact, not heuristic: every descendant of a foreach body — including a branch * arm inside it, whose path is a peer of its branch's but still sits under the foreach — is addressed * beneath the foreach's own segment, so `${foreach.path}/` is a genuine prefix of all of them. It is * asserted rather than assumed: a mismatch would silently produce a path no event can ever match, and * the item would render as an empty todo subtree with no indication anything was wrong. */ export declare function foreachItemChildren(foreach: OutlineNode, itemPath: string): OutlineNode[]; //# sourceMappingURL=outline.d.ts.map