/**
 * Loop Context Tracking
 *
 * Phase 7: Utilities for tracking and propagating loop context through the parse tree
 */
import type { LoopContext, ExpressionIR } from '../ir/types';
/**
 * Check if an expression should have loop context attached
 * Returns the loop context if the expression references loop variables
 */
export declare function shouldAttachLoopContext(expr: ExpressionIR, parentLoopContext?: LoopContext): LoopContext | undefined;
/**
 * Merge loop contexts for nested loops
 * Inner loops inherit outer loop variables
 */
export declare function mergeLoopContext(outer?: LoopContext, inner?: LoopContext): LoopContext | undefined;
/**
 * Detect if an expression is a map expression and extract its loop context
 */
export declare function extractLoopContextFromExpression(expr: ExpressionIR): LoopContext | undefined;
