import { IsTupleList, List } from "../list"; import { Builtin } from "../primitive"; import { IsUnknown } from "../type"; import { Mutable } from "."; /** * makes (nested) keys of an object mutable (i.e. not readonly) * * @since 0.0.2 */ export type DeepMutable = T extends Builtin ? T : T extends Promise ? Promise> : IsTupleList extends true ? { readonly [K in keyof T]: DeepMutable; } : T extends List ? ReadonlyArray> : T extends Map ? Map, DeepMutable> : T extends Set ? Set> : T extends ReadonlyMap ? ReadonlyMap, DeepMutable> : T extends ReadonlySet ? ReadonlySet> : T extends WeakMap ? WeakMap, DeepMutable> : T extends WeakSet ? WeakSet> : T extends {} ? { readonly [K in keyof T]: DeepMutable; } : IsUnknown extends true ? unknown : Mutable; //# sourceMappingURL=deep-mutable.d.ts.map