import ts from 'typescript';
import { CompilerContext } from '../compilerContext.js';
import type { InlinableHelper, InlineBinding } from '../analysis/asyncHelperAnalyzer.js';
import type { ControlFlowGraph } from './types.js';
/**
 * Result of building a CFG, including any inline bindings from helper
 * function inlining.
 */
export interface BuildCFGResult {
    readonly cfg: ControlFlowGraph;
    readonly inlineBindings: readonly InlineBinding[];
}
/**
 * Build a control flow graph from a function body block.
 *
 * Takes a `ts.Block` (the factory function body), not a full
 * `StepFunctionCallSite` — keeps CFG construction decoupled from discovery.
 *
 * When `helperRegistry` is provided, awaited calls to functions in the
 * registry are inlined: the helper's body statements are spliced into the
 * CFG at the call site, and parameter-to-argument bindings are returned
 * so the variable resolver can map helper parameters to caller values.
 */
export declare function buildCFG(context: CompilerContext, body: ts.Block, helperRegistry?: ReadonlyMap<ts.Symbol, InlinableHelper>): BuildCFGResult;
//# sourceMappingURL=cfgBuilder.d.ts.map