/**
 * Conditional statement converters (if, switch)
 *
 * Phase 5 Step 4: Uses ProgramContext instead of Binding.
 */
import * as ts from "typescript";
import { IrIfStatement, IrSwitchStatement, IrSwitchCase, IrType } from "../../../types.js";
import type { ProgramContext } from "../../../program-context.js";
/**
 * Convert if statement
 *
 * @param expectedReturnType - Return type from enclosing function for contextual typing.
 *                             Passed through to nested statements for return expressions.
 */
export declare const convertIfStatement: (node: ts.IfStatement, ctx: ProgramContext, expectedReturnType?: IrType) => IrIfStatement;
/**
 * Convert switch statement
 *
 * @param expectedReturnType - Return type from enclosing function for contextual typing.
 */
export declare const convertSwitchStatement: (node: ts.SwitchStatement, ctx: ProgramContext, expectedReturnType?: IrType) => IrSwitchStatement;
/**
 * Convert switch case
 *
 * @param expectedReturnType - Return type from enclosing function for contextual typing.
 */
export declare const convertSwitchCase: (node: ts.CaseOrDefaultClause, ctx: ProgramContext, expectedReturnType?: IrType) => IrSwitchCase;
//# sourceMappingURL=conditionals.d.ts.map