/**
 * Numeric Statement Processing
 *
 * Statement-level coercion processing and module-level pass orchestration:
 * - processStatement: Process statement for coercion checks
 * - processStatementWithReturnType: Process statement with return type context
 * - processModule: Run numeric coercion pass on a single module
 * - runNumericCoercionPass: Run numeric coercion validation on all modules
 */
import { Diagnostic } from "../../types/diagnostic.js";
import { IrModule, IrStatement, IrType } from "../types.js";
import { type CoercionContext } from "./numeric-classification.js";
/**
 * Result of numeric coercion validation
 */
export type NumericCoercionResult = {
    readonly ok: boolean;
    readonly module: IrModule;
    readonly diagnostics: readonly Diagnostic[];
};
/**
 * Process a statement, checking for int→double coercion at intent sites.
 */
export declare const processStatement: (stmt: IrStatement, ctx: CoercionContext) => void;
/**
 * Process a statement with return type context for checking return statements
 */
export declare const processStatementWithReturnType: (stmt: IrStatement, returnType: IrType | undefined, ctx: CoercionContext) => void;
/**
 * Run numeric coercion validation on all modules.
 *
 * HARD GATE: If any diagnostics are returned, the emitter MUST NOT run.
 */
export declare const runNumericCoercionPass: (modules: readonly IrModule[]) => {
    readonly ok: boolean;
    readonly modules: readonly IrModule[];
    readonly diagnostics: readonly Diagnostic[];
};
//# sourceMappingURL=numeric-statement-processing.d.ts.map