/**
 * Loop statement converters (while, for, for-of, for-in)
 *
 * Phase 5 Step 4: Uses ProgramContext instead of Binding.
 */
import * as ts from "typescript";
import { IrWhileStatement, IrForStatement, IrForOfStatement, IrForInStatement, IrType } from "../../../types.js";
import type { ProgramContext } from "../../../program-context.js";
/**
 * Convert while statement
 *
 * @param expectedReturnType - Return type from enclosing function for contextual typing.
 */
export declare const convertWhileStatement: (node: ts.WhileStatement, ctx: ProgramContext, expectedReturnType?: IrType) => IrWhileStatement;
/**
 * Convert for statement
 *
 * @param expectedReturnType - Return type from enclosing function for contextual typing.
 */
export declare const convertForStatement: (node: ts.ForStatement, ctx: ProgramContext, expectedReturnType?: IrType) => IrForStatement;
/**
 * Convert for-of statement
 *
 * @param expectedReturnType - Return type from enclosing function for contextual typing.
 */
export declare const convertForOfStatement: (node: ts.ForOfStatement, ctx: ProgramContext, expectedReturnType?: IrType) => IrForOfStatement;
/**
 * Convert for-in statement
 *
 * @param expectedReturnType - Return type from enclosing function for contextual typing.
 */
export declare const convertForInStatement: (node: ts.ForInStatement, ctx: ProgramContext, expectedReturnType?: IrType) => IrForInStatement;
//# sourceMappingURL=loops.d.ts.map