/**
 * Pattern lowering pass.
 *
 * Walks the AST and transforms all destructuring/pattern-matching syntax into
 * existing Agency constructs (Assignments, IfElse, BinOpExpressions, ValueAccess,
 * FunctionCalls). After this pass, the AST contains NO pattern-specific nodes,
 * so the rest of the pipeline (typechecker, TypeScriptBuilder, preprocessor, LSP)
 * needs zero changes.
 *
 * Runs after parsing, before SymbolTable.build / typechecking.
 */
import type { AgencyNode } from "../types.js";
import type { SourceLocation } from "../types/base.js";
export declare function lowerPatterns(nodes: AgencyNode[]): AgencyNode[];
export declare class PatternLoweringError extends Error {
    loc?: SourceLocation | undefined;
    constructor(message: string, loc?: SourceLocation | undefined);
}
