/**
 * Export extraction from TypeScript source
 *
 * Phase 5 Step 4: Uses ProgramContext for statement/expression conversion.
 */
import * as ts from "typescript";
import { IrExport, IrStatement } from "../types.js";
import type { Binding } from "../binding/index.js";
import type { ProgramContext } from "../program-context.js";
/**
 * Extract export declarations from source file.
 *
 * This function has two signatures:
 * - With just Binding: Used when only export metadata is needed (no statement conversion)
 * - With ProgramContext: Used when exported declarations need to be converted
 *
 * @param sourceFile - The TypeScript source file
 * @param binding - The binding layer (for simple export extraction without conversion)
 */
export declare const extractExports: (sourceFile: ts.SourceFile, _binding: Binding) => readonly IrExport[];
/**
 * Extract export declarations from source file with full conversion.
 *
 * @param sourceFile - The TypeScript source file
 * @param ctx - ProgramContext for full statement/expression conversion
 */
export declare const extractExportsWithContext: (sourceFile: ts.SourceFile, topLevelStatementGroups: ReadonlyMap<number, readonly IrStatement[]>, ctx: ProgramContext) => readonly IrExport[];
//# sourceMappingURL=exports.d.ts.map