/** * The single statement of the rule that decides an exhausted failure's * terminal status. * * Previously each terminal-failure write site restated the rule and only two * of them implemented it, so `control.optional` meant different things per * node kind. Every such site now routes through here. * * @docLink packages/flow-engine/concepts#optional-failure */ import type { FlowNode } from "./types.js"; /** * Terminal status for a node whose execution failed with no retry budget left. * * Invariant: an optional node never ends terminally `failed`. Only `complete` * and `skipped` satisfy a hard `flow` edge (see `isBlocking`), so leaving one * `failed` stalls every dependent at the node the author called expendable. * * A router is the deliberate exception: a `skipped` router leaves the gated * set (`unsettledRouterBranchIds`) while satisfying every outgoing hard edge, * so skipping it admits *all* of its branches instead of selecting one. */ export declare function resolveTerminalFailureStatus(node: FlowNode): "failed" | "skipped"; //# sourceMappingURL=optional-failure.d.ts.map