export type DeepPartial = { [P in keyof T]?: T[P] extends (infer U)[] ? DeepPartial[] : T[P] extends readonly (infer U)[] ? readonly DeepPartial[] : DeepPartial; };