/**
 * Numeric Expression Validation
 *
 * Expression-level coercion checks:
 * - emitCoercionError: Emit diagnostic for implicit narrowing
 * - validateExpression: Validate expression against expected type
 * - scanExpressionForCalls: Scan expression tree for call argument validation
 */
import { IrExpression, IrType } from "../types.js";
import { type CoercionContext } from "./numeric-classification.js";
/**
 * Emit an error diagnostic for implicit narrowing conversion.
 * Only called when a narrowing conversion is attempted without explicit intent.
 */
export declare const emitCoercionError: (expr: IrExpression, expectedType: IrType | undefined, ctx: CoercionContext, context: string) => void;
/**
 * Validate an expression in a context where a specific type is expected.
 * This is the core of the strict coercion check.
 */
export declare const validateExpression: (expr: IrExpression, expectedType: IrType | undefined, ctx: CoercionContext, context: string) => void;
/**
 * Scan an expression tree for call expressions and validate their arguments.
 * This is used for expressions without an explicit type context.
 */
export declare const scanExpressionForCalls: (expr: IrExpression, ctx: CoercionContext) => void;
//# sourceMappingURL=numeric-expression-validation.d.ts.map