/** * Call argument helper utilities. * Handles tuple spread expansion, flattened rest arguments, and * argument modifier/cast wrappers. */ import { IrExpression, IrType } from "@tsonic/frontend"; import { EmitterContext } from "../../types.js"; import type { CSharpExpressionAst, CSharpTypeAst } from "../../core/format/backend-ast/types.js"; export declare const normalizeCallArgumentExpectedType: (type: IrType | undefined, arg: IrExpression, context: EmitterContext) => IrType | undefined; export declare const emitArrayWrapperElementTypeAst: (receiverType: IrType, context: EmitterContext) => [CSharpTypeAst, EmitterContext]; export declare const expandTupleLikeSpreadArguments: (args: readonly IrExpression[]) => readonly IrExpression[]; export declare const getTransparentRestSpreadPassthroughExpression: (arg: IrExpression | undefined, restArrayType: IrType | undefined, context: EmitterContext) => IrExpression | undefined; /** * Wrap an expression AST with an optional argument modifier (ref/out/in). */ export declare const wrapArgModifier: (modifier: string | undefined, expr: CSharpExpressionAst) => CSharpExpressionAst; /** * Wrap an invocation AST with an optional (int) cast. */ export declare const wrapIntCast: (needsCast: boolean, expr: CSharpExpressionAst) => CSharpExpressionAst; export declare const emitFlattenedRestArguments: (restArgs: readonly IrExpression[], restArrayType: IrType, restElementType: IrType, context: EmitterContext) => [readonly CSharpExpressionAst[], EmitterContext]; //# sourceMappingURL=call-arguments-helpers.d.ts.map