export declare type CustomOptional = { [P in keyof T]?: K; }; export declare type Subset = { [P in keyof T]: T[P]; }; export declare type OptionalKeys = Exclude<{ [K in keyof T]: T extends Record ? never : K; }[keyof T], undefined>; export declare type MandatoryKeys = Exclude<{ [K in keyof T]: T extends Record ? (T[K] extends V ? K : never) : never; }[keyof T], undefined>; export declare type RequireOptionals = OptionalKeys> = Pick> & { [K in Keys]-?: Required> & Partial>>; }[Keys]; export declare type RequireOneOptional = OptionalKeys> = Pick> & { [K in Keys]-?: Required> & Partial, undefined>>; }[Keys]; export declare type Constructor = new (...args: any) => T; export declare type ArrayType = T extends (infer I)[] ? I : never; export declare type PartialProperties = Omit & Partial>; export declare type Identity = { id: string; }; export declare type StringMap = { [s: string]: string; }; export declare type ObjectTS = { [s: string]: any; }; export declare type TypedMap = { [s: string]: ValueType; }; export declare type DB_Object = { _id: string; }; export declare type Auditable = { _audit?: AuditBy; }; export declare type AuditBy = { comment?: string; auditBy: string; auditAt: Timestamp; }; export declare type Timestamp = { timestamp: number; pretty: string; timezone?: string; }; export declare type FunctionKeys = { [K in keyof T]: T[K] extends Function ? K : never; }[keyof T]; export declare const Void: void; export declare type PackageJson = { version: string; name: string; }; export declare type DeflatePromise = T extends Promise ? A : T; export declare type ReturnPromiseType any> = T extends (...args: any) => infer R ? DeflatePromise : never; export declare type RangeTimestamp = { min: number; max: number; };