import { UNSET } from '../../_/symbols/unset.js'; import type { $Decrement, DecrementArgument, IsCompatible } from '../../type/index.js'; /** @inline */ export type DeepMutable_ = T extends object ? { -readonly [k in keyof T]: DeepMutable_; } : T; /** @inline */ export type DeepMutable = DeepMutable_; /** @inline */ export type $DeepMutable_ = T extends any ? DeepMutable_ : never; /** @inline */ export type $DeepMutable = $DeepMutable_; /** * Deep-mutable with depth-limit * * - Useful, because TS does not expand infinite recursive types in VSCode * - Non-distributive version */ export type DeepMutableN = TLength extends 0 ? T : $Decrement extends DecrementArgument ? T extends object ? DeepMutableN._ShouldSkip extends true ? T : { -readonly [k in keyof T]: DeepMutableN<$Decrement, T[k], Options>; } : T : never; /** * Deep-mutable with depth-limit * * - Useful, because TS does not expand infinite recursive types in VSCode * - Shallow-distributive version `$` */ export type $DeepMutableN = T extends any ? DeepMutableN : never; /** * Deep-mutable with depth-limit * * - Useful, because TS does not expand infinite recursive types in VSCode * - Deeply-distributive version `$$` */ export type $$DeepMutableN = TLength extends 0 ? T : $Decrement extends DecrementArgument ? T extends object ? DeepMutableN._ShouldSkip extends true ? T : { -readonly [k in keyof T]: $$DeepMutableN<$Decrement, T[k], Options>; } : T : never; export declare namespace DeepMutableN { /** @internal */ type _ShouldSkip = IsCompatible extends true ? false : [T] extends [skipOption] ? true : false; } //# sourceMappingURL=DeepMutable.d.ts.map