type PickDefined = { [P in keyof T]: T[P] extends undefined ? never : T[P]; }; /** * @param input can be any object * @param omittedValue value which should be omitted, currently supports `undefined`, * `null`, `exact number`, `exact string` and `exact date` * @returns the same object recursively but without fields with omitted value */ export declare const getObjectWithOmittedValuesBy: (input: T, omittedValue: U) => U extends undefined ? PickDefined : Partial; /** * Better typed version of Object.keys function returning Array of keyof types instead of Array of string types. */ export declare const getObjectKeys: (o: T) => Extract[]; /** Return the same type of object but replace undefined and optional properties as nullable properties */ export type NullableFromPartial = { [P in keyof T]-?: undefined extends T[P] ? T[P] | null : T[P]; }; /** Make all properties in a given type both nullable and optional */ export type NullableOptional = { [P in keyof T]?: T[P] | null; }; export declare function convertObjectUndefinedPropertiesToNull(obj: T): NullableFromPartial; export declare function mapObject(settings: Record, transform: (from: TFrom) => TTo): Record; export declare function omitWithTypes>(object: TObject, keysToOmit: TKeys): Omit; export {};