/** Returns a new object with the same keys and where each value has been passed through the mapping function. */ export declare function mapValues(obj: Record, fn: (value: T, key: K) => U): Record; export declare function mapValues(obj: Partial>, fn: (value: T, key: K) => U): Partial>; /** Returns a new object where all keys with undefined values have been removed. */ export declare function compact(obj: T): { [P in keyof T]+?: Exclude; }; /** Returns a new object by picking the given keys. */ export declare function pick(object: T, ...props: U[]): Pick; export declare function pick(object: T, ...props: string[]): Partial; /** Returns a new object by omitting the given keys. */ export declare function omit(object: T, ...props: K[]): Omit; export declare function omit(object: T, ...props: string[]): Partial; /** Equivalent to Object.entries but preserves types. */ export declare function getEntries>(obj: T): { [K in keyof T]: [K, T[K]]; }[keyof T][]; /** Equivalent to Object.fromEntries but preserves types. */ export declare function fromEntries(): any; /** Asserts all values in object are not undefined. */ export declare function assertRequired(obj: T): Required;