interface HookObject { before?: (args: TArgs) => void; after?: (args: TArgs, result: TResult) => void; } /** Adds optional before/after hooks around a function call. */ export declare function wrapFunction unknown, TOmitReturn extends boolean = false>(fn: TFunction, options?: { hooks?: HookObject, ReturnType>; omitReturn?: TOmitReturn; }): (...args: Parameters) => TOmitReturn extends true ? void : ReturnType; type Callback = (data: T) => void; /** Promisifies callback-last functions with a single data result. */ export declare function promisify(func: (...args: [...A, Callback]) => void): (...args: A) => Promise; type CallbackWithNoData = () => void; /** Promisifies callback-last functions where callback has no payload. */ export declare function promisifyWithNoData(func: (...args: [...A, CallbackWithNoData]) => void): (...args: A) => Promise; type CallbackWithError = (err: string | null, data: T | null) => void; /** Promisifies `(err, data)` callbacks and rejects when `err` is present. */ export declare function promisifyWithError(func: (...args: [...A, CallbackWithError]) => void): (...args: A) => Promise; type CallbackWithMultipleData = (...data: T) => void; /** Promisifies multi-argument callbacks by mapping args into one object. */ export declare function promisifyWithDataObject, A extends unknown[]>(func: (...args: [...A, CallbackWithMultipleData]) => void, mapToObject: (...data: T) => R): (...args: A) => Promise; export declare function createCallbackOrPromiseMethod(method: (...args: [...TArgs, (...args: TCallbackArgs) => void]) => void, promisifyMethod: (method: (...args: [...TArgs, (...args: TCallbackArgs) => void]) => void) => (...args: TArgs) => TResult): { (...args: TArgs): TResult; (...args: [...TArgs, callback?: (...args: TCallbackArgs) => void]): void; }; export {};