/**
 * Expression Type Inference — inferExpressionType
 *
 * Deterministically infer an expression's type using only:
 * - local lambda parameter environment
 * - declaration types (typeOfDecl)
 * - numeric literal lexeme rules
 *
 * DAG position: depends on inference-utilities, inference-member-resolution,
 *               inference-initializers, inference-declarations
 */
import type { IrType } from "../types/index.js";
import * as ts from "typescript";
import type { TypeSystemState } from "./type-system-state.js";
/**
 * Deterministically infer an expression's type using only:
 * - local lambda parameter environment
 * - declaration types (typeOfDecl)
 * - numeric literal lexeme rules
 *
 * This is intentionally small: it's used only to type lambda bodies for
 * initializer-driven generic inference (e.g., `Enumerable.select(..., x => x * 2)`).
 */
export declare const inferExpressionType: (state: TypeSystemState, expr: ts.Expression, env: ReadonlyMap<string, IrType>) => IrType | undefined;
//# sourceMappingURL=inference-expressions-infer.d.ts.map