import { AnyRecord } from "./any-record"; import { NonUndefinable } from "./non-undefinable"; export type DeepModify = | (Type extends AnyRecord ? { [Key in keyof Type]?: undefined extends { [Key2 in keyof Type]: Key2; }[Key] ? NonUndefinable extends object ? true | DeepModify> : true : Type[Key] extends object ? true | DeepModify : true; } : never) | (Type extends Array ? Array> : never) | (Type extends Promise ? Promise> : never) | (Type extends Set ? Set> : never) | (Type extends ReadonlySet ? ReadonlySet> : never) | (Type extends WeakSet ? WeakSet> : never) | (Type extends Map ? Map> : never) | (Type extends ReadonlyMap ? ReadonlyMap> : never) | (Type extends WeakMap ? WeakMap> : never);