import { Future } from './index.cjs'; type FuturifyArgs = { [K in keyof Args]: Args[K] | Future; }; type FuturifyReturn = R extends Promise ? Future : Future; type FuturifyOverload any> = (...args: FuturifyArgs>) => FuturifyReturn>; type Futurified = F extends { (...args: infer A1): infer R1; (...args: infer A2): infer R2; (...args: infer A3): infer R3; (...args: infer A4): infer R4; (...args: infer A5): infer R5; } ? FuturifyOverload<(...args: A1) => R1> & FuturifyOverload<(...args: A2) => R2> & FuturifyOverload<(...args: A3) => R3> & FuturifyOverload<(...args: A4) => R4> & FuturifyOverload<(...args: A5) => R5> : F extends (...args: infer A) => infer R ? FuturifyOverload : never; declare function futurify any>(fn: F): Futurified; export { futurify };