export type OrPromise = T | Promise; export type MakePropertyRequired = T & Required>; export type AllKeys = T extends object ? T extends infer O ? { [K in keyof O]: K | AllKeys; }[keyof O] : never : never;