export type Expand = T extends infer O ? { [K in keyof O]: O[K]; } : never; export type ExpandRecursively = T extends object ? T extends infer O ? { [K in keyof O]: ExpandRecursively; } : never : T;