export type PromisifySuccessResult void; }> = P extends { success: any; } ? void : P extends { fail: any; } ? void : P extends { complete: any; } ? void : Promise>[0]>; export type PromisifyRestArgs = T extends [any, ...args: infer P] ? P : never[]; export declare function promisify any>(fn: T):

[0]>(options?: P, ...args: PromisifyRestArgs>) => PromisifySuccessResult[0]>;