export declare type Primitive = string | number | boolean | bigint | symbol | undefined | null; export declare type BasicType = Primitive | Function | Date | Error | RegExp; export declare type OmitProperties = Pick[K] extends P ? never : K; }[keyof T]>; /** Like NonNullable but recursive */ export declare type DeepNonNullable = T extends BasicType ? NonNullable : T extends Map ? Map, DeepNonNullable> : T extends ReadonlyMap ? ReadonlyMap, DeepNonNullable> : T extends WeakMap ? WeakMap, DeepNonNullable> : T extends Set ? Set> : T extends ReadonlySet ? ReadonlySet> : T extends WeakSet ? WeakSet> : T extends Promise ? Promise> : T extends {} ? { [K in keyof T]: DeepNonNullable; } : NonNullable;