declare namespace UniNamespace { type PromisifySuccessResult< P, T extends { success?: (...args: any[]) => void }, R = void > = P extends { success: any } ? R : P extends { fail: any } ? R : P extends { complete: any } ? R : Promise>[0]>; type ErrorFirstArray = [any, T]; type PromisifySuccessResultLegacy< P, T extends { success?: (...args: any[]) => void } > = P extends { success: any } ? void : P extends { fail: any } ? void : P extends { complete: any } ? void : Promise>[0]>>; }