import type { Expression, SplatExpression } from "../../types.js"; import type { FunctionCall, FunctionParameter } from "../../types/function.js"; /** * Lower a function call's argument list from "positional + named" form * into pure positional form aligned to the callee's parameter list. * * Used only for Agency-defined functions, which are the only callees whose * parameter list is statically known at emit time. Imported / built-in * functions go through a different code path. * * Returns the args unwrapped (no `NamedArgument` wrappers) in the order * matching the callee's non-variadic, non-block parameters. Skipped * optional parameters in the middle of the list are filled with a `null` * literal placeholder; trailing skipped params are simply omitted (the * caller pads with `undefined`/`null` later, in `emitDirectFunctionCall` * and friends). * * Rules (Python-style): * - Positional args must come before named args. * - Named args can appear in any order. * - Named args can skip optional params (those with default values). * - Named args are only supported for Agency-defined functions. * * Throws if any of those rules are violated, or if a named arg refers to * an unknown / required-but-omitted parameter, or if there are duplicate * named args. */ export declare function resolveNamedArgs(node: FunctionCall, paramList: FunctionParameter[] | undefined, isAgencyFunction: boolean): (Expression | SplatExpression)[];