/**
 * IR Builder orchestration - Main module building logic
 *
 * Phase 5 Step 4: Uses ProgramContext instead of global singletons.
 */
import * as ts from "typescript";
import { IrModule } from "../types.js";
import { TsonicProgram } from "../../program.js";
import { Result } from "../../types/result.js";
import { Diagnostic } from "../../types/diagnostic.js";
import { type ProgramContext } from "../program-context.js";
import { IrBuildOptions } from "./types.js";
/**
 * Build IR module from TypeScript source file
 *
 * @param sourceFile - The TypeScript source file to convert
 * @param program - The Tsonic program with type checker and bindings
 * @param options - Build options (sourceRoot, rootNamespace)
 * @param ctx - ProgramContext for TypeSystem and other shared resources.
 *              Required - no global state fallback.
 */
export declare const buildIrModule: (sourceFile: ts.SourceFile, _program: TsonicProgram, options: IrBuildOptions, ctx: ProgramContext) => Result<IrModule, Diagnostic>;
/**
 * Build IR for all source files in the program
 */
export declare const buildIr: (program: TsonicProgram, options: IrBuildOptions) => Result<readonly IrModule[], readonly Diagnostic[]>;
//# sourceMappingURL=orchestrator.d.ts.map