export type UnboxPromise> = T extends Promise ? U : never; export type UnboxReturnedPromise Promise> = UnboxPromise>; export type UnboxArray = T extends (infer U)[] ? U : T;