/** * @file Utility functions for working with scriptlet nodes. */ import { type ParameterList } from '../nodes/index.js'; import { type QuoteType } from '../utils/quotes.js'; /** * Function to transform a parameter of the scriptlet node. * * @param param Parameter to transform or null if the parameter is not present. * * @returns Transformed parameter or null if the parameter should be removed. */ type ParamTransformer = (param: string | null) => string | null; /** * Get name of the scriptlet from the scriptlet node. * * @param scriptletNode Scriptlet node to get name of. * * @returns Name of the scriptlet. * * @throws If the scriptlet is empty. */ export declare function getScriptletName(scriptletNode: ParameterList): string; /** * Transform the nth argument of the scriptlet node. * * @param scriptletNode Scriptlet node to transform argument of. * @param index Index of the argument to transform (index 0 is the scriptlet name). * @param transform Function to transform the argument. */ export declare function transformNthScriptletArgument(scriptletNode: ParameterList, index: number, transform: ParamTransformer): void; /** * Transform all arguments of the scriptlet node. * * @param scriptletNode Scriptlet node to transform arguments of. * @param transform Function to transform the arguments. */ export declare function transformAllScriptletArguments(scriptletNode: ParameterList, transform: ParamTransformer): void; /** * Set name of the scriptlet. * Modifies input `scriptletNode` if needed. * * @param scriptletNode Scriptlet node to set name of. * @param name Name to set. */ export declare function setScriptletName(scriptletNode: ParameterList, name: string): void; /** * Set quote type of the scriptlet parameters. * * @param scriptletNode Scriptlet node to set quote type of. * @param quoteType Preferred quote type. */ export declare function setScriptletQuoteType(scriptletNode: ParameterList, quoteType: QuoteType): void; export {};