/**
 * mapBodies — apply a transform to every `body: AgencyNode[]` field reachable
 * from a node, returning a structurally-fresh copy with bodies replaced.
 *
 * Useful for AST passes that need to recurse into every block-bearing node
 * uniformly (lowering passes, instrumenting, scope analysis, …) without
 * hand-listing every body-bearing node type at every call site.
 *
 * Coverage: function definitions, graph nodes, if/else (then + else),
 * while/for loops, match block arm bodies, handle blocks (incl. inline
 * handler body), parallel/seq blocks, block arguments (including the inline
 * `block:` field on function calls).
 *
 * Class methods are intentionally NOT recursed into — classes are being
 * removed from the language. Add them here if that decision is reversed.
 */
import type { AgencyNode } from "../types.js";
export type BodyTransform = (body: AgencyNode[]) => AgencyNode[];
/** Return a shallow copy of `node` with every body field transformed by `fn`. */
export declare function mapBodies(node: AgencyNode, fn: BodyTransform): AgencyNode;
