/** * A FunctionAsync that takes parameters and returns a promise. * * @template U The type of the value returned by the promise. * @template P The type of the parameters. * @template T The type of the `this` context. * @example FunctionAsync // (a: number, b: string) => boolean */ type FunctionAsync = T extends void ? (...args: P) => Promise : (this: T, ...args: P) => Promise; export type { FunctionAsync };