/** * Pattern lowering for local declarations (AST-only). * * Handles destructuring for local variable declarations: * - identifier patterns * - array patterns (including tuple lowering) * - object patterns * * Also exports shared helpers used by static and assignment lowering. */ import { IrExpression, IrPattern, IrType } from "@tsonic/frontend"; import { EmitterContext } from "../emitter-types/index.js"; import type { CSharpExpressionAst, CSharpStatementAst, CSharpTypeAst } from "../core/format/backend-ast/types.js"; export declare const objectTypeAst: CSharpTypeAst; export declare const tupleElementMemberName: (index: number) => string; export declare const emitTupleElementAccessAst: (inputExpr: CSharpExpressionAst, index: number) => CSharpExpressionAst; export declare const emitTupleRestArrayAst: (inputExpr: CSharpExpressionAst, tupleType: Extract, startIndex: number) => CSharpExpressionAst; export declare const generateTemp: (prefix: string, ctx: EmitterContext) => [string, EmitterContext]; export declare const emitDefaultExprAst: (expr: IrExpression, ctx: EmitterContext) => [CSharpExpressionAst, EmitterContext]; export type LoweringResultAst = { readonly statements: readonly CSharpStatementAst[]; readonly context: EmitterContext; }; export declare const lowerPatternAst: (pattern: IrPattern, inputExpr: CSharpExpressionAst, type: IrType | undefined, ctx: EmitterContext) => LoweringResultAst; //# sourceMappingURL=local-lowering.d.ts.map