export declare function flip(obj: Record): Record; export declare function omit, K extends (keyof T)[]>(source: T, keys: K): Omit; export declare function clone(source: T): T; export declare function hasProperty>(needle: T, property: unknown): property is keyof T; export type MapKeysCallback = (key: PreviousKey, value: Value) => NewKey; export declare function mapKeys(object: Record, callback: MapKeysCallback): Record; export type MapValuesCallback = (key: Key, value: PreviousValue) => NewValue; export declare function mapValues(object: Record, callback: MapValuesCallback): Record; export type MapEntriesCallback = (key: PreviousKey, value: PreviousValue) => [NewKey, NewValue]; export declare function mapEntries(object: Partial>, callback: MapEntriesCallback): Partial>; export declare function isEmptyObject(value: unknown): value is Record; export declare function isTypeRequired>(value: Partial): value is Required; export declare function hasString>(obj: T, str: string): boolean; export declare function isRecord(item: unknown): item is Record; /** * @deprecated Please use lodash.merge instead. */ export declare function merge>(target: T, ...sources: T[]): T; type EmptyObjectsRemoved> = { [P in keyof T]: T[P] extends Record ? EmptyObjectsRemoved | undefined : T[P]; }; export declare function removeEmptyObjects>(input: T): EmptyObjectsRemoved; export {};