/**
 * Numeric Proof Walk — Statement processing, module processing, and proof pass entry
 *
 * This module handles:
 * - Processing all statements, tracking proven variables
 * - Running the proof pass on modules and aggregating diagnostics
 *
 * CRITICAL: If this pass emits ANY errors, the emitter MUST NOT run.
 */
import { Diagnostic } from "../../types/diagnostic.js";
import { IrModule, IrStatement } from "../types.js";
import { type ProofContext } from "./numeric-proof-analysis.js";
/**
 * Result of numeric proof validation
 */
export type NumericProofResult = {
    readonly ok: boolean;
    readonly module: IrModule;
    readonly diagnostics: readonly Diagnostic[];
};
/**
 * Callback type for statement processing, used to break the mutual
 * recursion between expression and statement walkers.
 */
export type StatementProcessor = <T extends IrStatement>(stmt: T, ctx: ProofContext) => T;
/**
 * Run numeric proof validation on all modules.
 *
 * HARD GATE: If any diagnostics are returned, the emitter MUST NOT run.
 * This is not a warning system - unprovable narrowings are compilation errors.
 */
export declare const runNumericProofPass: (modules: readonly IrModule[]) => {
    readonly ok: boolean;
    readonly modules: readonly IrModule[];
    readonly diagnostics: readonly Diagnostic[];
};
//# sourceMappingURL=numeric-proof-statement-walk.d.ts.map