/** * @ Author: Hanrea * @ version: 2023-03-06 13:14:21 * @ copyright: Vecmat (c) - */ interface DeferObject { promise: Promise; resolve: (res: any) => any; reject: (err: any) => any; } /** * Get promise deffer object * * @returns {*} */ export declare function getDefer(): DeferObject; /** * Checks if fn is a GeneratorFunction * * @export * @param {*} fn * @returns {*} {boolean} */ export declare function isGenerator(fn: any): boolean; /** * Checks if value is a Promise object * * @export * @param {*} value * @returns {*} {boolean} */ export declare function isPromise(value: any): boolean; /** * Checks if value is a Async Function * * @export * @param {*} fn * @returns {*} {boolean} */ export declare function isAsyncFunction(fn: any): boolean; /** * Convert callback-style functions to Promises * * @export * @param {Function} fn * @param {*} [receiver] * @returns {*} */ export declare function promisify(fn: Function, receiver?: any): (...args: any[]) => Promise; export type Callback = (err: E, ...args: T) => void; export type PromisifyOne = T extends [Callback?] ? () => Promise<[...P, Error]> : T extends [infer T1, Callback?] ? (arg: T1) => Promise<[...P, Error]> : T extends [infer T1, infer T2, Callback?] ? (arg1: T1, arg2: T2) => Promise<[...P, Error]> : T extends [infer T1, infer T2, infer T3, Callback?] ? (arg1: T1, arg2: T2, arg3: T3) => Promise<[...P, Error]> : T extends [infer T1, infer T2, infer T3, infer T4, Callback?] ? (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<[...P, Error]> : T extends [infer T1, infer T2, infer T3, infer T4, infer T5, Callback?] ? (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<[...P, Error]> : T extends [infer T1, infer T2, infer T3, infer T4, infer T5, infer T6, Callback?] ? (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Promise<[...P, Error]> : T extends [infer T1, infer T2, infer T3, infer T4, infer T5, infer T6, infer T7, Callback?] ? (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7) => Promise<[...P, Error]> : T extends [infer T1, infer T2, infer T3, infer T4, infer T5, infer T6, infer T7, infer T8, Callback?] ? (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7, arg8: T8) => Promise<[...P, Error]> : T extends [infer T1, infer T2, infer T3, infer T4, infer T5, infer T6, infer T7, infer T8, infer T9, Callback?] ? (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, arg7: T7, arg8: T8, arg9: T9) => Promise<[...P, Error]> : T; export type GetOverloadArgs = T extends { (...o: infer U): void; (...o: infer U2): void; (...o: infer U3): void; } ? U | U2 | U3 : T extends { (...o: infer U): void; (...o: infer U2): void; } ? U | U2 : T extends { (...o: infer U): void; } ? U : never; type UnionToIntersection = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never; export type Promisify = UnionToIntersection>>; export declare function VMAsyncifyWrap(original: T): (...args: any[]) => Promise; export {};