import type { Arguments } from "./function.js"; /** Callback function with no value. */ export type Callback = () => void; /** Callback function with no value and possibly returns a promise that must be handled. */ export type AsyncCallback = () => void | PromiseLike; /** Callback function that receives a value. */ export type ValueCallback = (value: T) => void; /** Callback function that receives a value and possibly returns a promise that must be handled. */ export type AsyncValueCallback = (value: T) => void | PromiseLike; /** Callback function that receives multiple values. */ export type ValuesCallback = (...values: T) => void; /** Callback function that receives multiple values and possibly returns a promise that must be handled. */ export type AsyncValuesCallback = (...values: T) => void | PromiseLike; /** Callback function that receives an error. */ export type ErrorCallback = (reason: unknown) => void; /** Safely call a callback function (possibly with a value). */ export declare function call(callback: (...v: A) => unknown, ...values: A): void; /** Return a callback function that safely calls a callback function (possibly with a value). */ export declare function called(dispatcher: (...v: A) => unknown, ...values: A): Callback; /** Safely call a callback method (possibly wth a value). */ export declare function callMethod(obj: { [K in M]?: ((...v: A) => unknown) | undefined; }, key: M, ...values: A): void;