/** * Create a Mutable version of the class T by removing any readonly specifiers from its properties */ export declare type Mutable = { -readonly [K in keyof T]: T[K]; }; /** * Create a 'newable' type for the class T */ export declare type ClassType = { new (...args: Array): T; }; /** * Create a version of an object recursively requiring all properties */ export declare type DeepRequired = { [K in keyof T]-?: DeepRequired; }; /** * Create a version of an object recursively making all properties optional */ export declare type DeepPartial = { [K in keyof T]?: DeepPartial; };