/**
 * Yield Statement Lowering -- Loop and Complex Statement Forms
 *
 * Handles yield lowering for for/forOf/forIn/switch/try/return/throw
 * statements.
 */
import { IrStatement } from "../types.js";
import { type LoweringContext } from "./yield-lowering-helpers.js";
/**
 * Process a for statement containing yield.
 */
export declare const processForStatement: (stmt: Extract<IrStatement, {
    kind: "forStatement";
}>, ctx: LoweringContext, processStatement: (s: IrStatement, c: LoweringContext) => IrStatement | readonly IrStatement[]) => IrStatement | readonly IrStatement[];
/**
 * Process a for-of statement containing yield.
 */
export declare const processForOfStatement: (stmt: Extract<IrStatement, {
    kind: "forOfStatement";
}>, ctx: LoweringContext, processStatement: (s: IrStatement, c: LoweringContext) => IrStatement | readonly IrStatement[]) => IrStatement | readonly IrStatement[];
/**
 * Process a for-in statement containing yield.
 */
export declare const processForInStatement: (stmt: Extract<IrStatement, {
    kind: "forInStatement";
}>, ctx: LoweringContext, processStatement: (s: IrStatement, c: LoweringContext) => IrStatement | readonly IrStatement[]) => IrStatement | readonly IrStatement[];
/**
 * Process a switch statement containing yield.
 */
export declare const processSwitchStatement: (stmt: Extract<IrStatement, {
    kind: "switchStatement";
}>, ctx: LoweringContext, processStatement: (s: IrStatement, c: LoweringContext) => IrStatement | readonly IrStatement[]) => IrStatement | readonly IrStatement[];
/**
 * Process a try statement containing yield.
 */
export declare const processTryStatement: (stmt: Extract<IrStatement, {
    kind: "tryStatement";
}>, ctx: LoweringContext, processStatement: (s: IrStatement, c: LoweringContext) => IrStatement | readonly IrStatement[]) => IrStatement;
/**
 * Process a return statement containing yield.
 */
export declare const processReturnStatement: (stmt: Extract<IrStatement, {
    kind: "returnStatement";
}>, ctx: LoweringContext) => IrStatement | readonly IrStatement[];
/**
 * Process a throw statement containing yield.
 */
export declare const processThrowStatement: (stmt: Extract<IrStatement, {
    kind: "throwStatement";
}>, ctx: LoweringContext) => IrStatement | readonly IrStatement[];
//# sourceMappingURL=yield-statement-loops.d.ts.map