export declare type AnyFunction = (...args: any[]) => any; export declare type AnyReadonly = { readonly [k: string]: AnyReadonly; readonly [i: number]: AnyReadonly; }; export declare type PartialRecord = { [P in K]?: T; }; export interface AnyClass { prototype: object; new (): any; [key: string]: any; } export declare type Prototype = T extends AnyClass ? T['prototype'] : never; export declare type Writable = { -readonly [P in keyof T]: T[P]; }; export declare type Primitive = undefined | null | boolean | string | number | Function; export declare type DeepReadonly = T extends Primitive ? T : T extends Array ? DeepReadonlyArray : T extends Map ? DeepReadonlyMap : DeepReadonlyObject; interface DeepReadonlyArray extends ReadonlyArray> { } interface DeepReadonlyMap extends ReadonlyMap, DeepReadonly> { } declare type DeepReadonlyObject = { readonly [K in keyof T]: DeepReadonly; }; export declare type UnionToIntersection = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never; declare type UnionForAny = T extends never ? 'A' : 'B'; export declare type IsStrictlyAny = UnionToIntersection> extends never ? true : false; export declare type ObjectValues = O[keyof O]; export declare type OptionalObjectKeys = { [K in keyof T]-?: undefined extends T[K] ? K : never; }[keyof T]; export declare type RequiredValue = Exclude; export {};