/** * Utility type that adds a parameter to the beginning of a function's parameter list. * * This type is used to transform methods that operate on a node into methods that * take the node as their first parameter. * * @template F - The original function type * @template T - The type of the parameter to prepend */ export type PrependArgument any, T> = F extends (...args: infer A) => infer R ? (first: T, ...args: A) => R : never;