/**
 * New expression converter
 *
 * Phase 15 (Alice's spec): Two-pass resolution for deterministic constructor typing.
 */
import * as ts from "typescript";
import { IrNewExpression } from "../../../types.js";
import { IrType } from "../../../types.js";
import type { ProgramContext } from "../../../program-context.js";
/**
 * Convert new expression
 *
 * Phase 15 (Alice's spec): Two-pass resolution for deterministic constructor typing.
 * 1) Resolve once (without argTypes) to get parameter types for expected-type threading.
 * 2) Convert non-lambda arguments first, collecting argTypes for inference.
 * 3) Re-resolve with argTypes to infer constructor type parameters.
 * 4) Convert lambda arguments using instantiated parameter types.
 * 5) Final resolve with full argTypes.
 * 6) inferredType MUST be finalResolved.returnType.
 */
export declare const convertNewExpression: (node: ts.NewExpression, ctx: ProgramContext, expectedType: IrType | undefined) => IrNewExpression;
//# sourceMappingURL=new-converter.d.ts.map