declare type Promisify = T extends { [""]: boolean; } ? Promise> : T extends (...args: infer R1) => infer R2 ? (...args: R1) => Promisify : Promise; export declare type Remote = (T extends (...args: infer R1) => infer R2 ? (...args: R1) => Promisify : unknown) & (T extends { new (...args: infer R1): infer R2; } ? { new (...args: R1): Promise>; } : unknown) & (T extends Object ? { [K in keyof T]: Remote; } : unknown) & (T extends string ? Promise : unknown) & (T extends number ? Promise : unknown) & (T extends boolean ? Promise : unknown); export {};