declare type DeepPartialUnion = (T | TAlt | (T extends object ? { readonly [P in keyof T]?: T[P] extends Array ? TAlt | Array> : T[P] extends ReadonlyArray ? TAlt | ReadonlyArray> : DeepPartialUnion; } : T)); export default DeepPartialUnion;