/** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.dev/license */ export type DeepReadonly = T extends (infer R)[] ? DeepReadonlyArray : T extends Function ? T : T extends object ? DeepReadonlyObject : T; export type DeepReadonlyArray = Array>; export type DeepReadonlyObject = { readonly [P in keyof T]: DeepReadonly; }; export type Readwrite = { -readonly [P in keyof T]: T[P]; };