import { EmptyObject, ObjectStringKeyUnion } from './type'; /** * Same as `Object.keys()` but with types. */ export declare function objectKeys(o: Field): ObjectStringKeyUnion[]; /** * Returns a new object with the same keys of given one, and values mapped with given function. */ export declare function objectMapValues(o: O, p: (k: keyof O, v: O[keyof O]) => T): { [k in keyof O]: T; }; export declare const objectMap: typeof objectMapValues; export declare function objectToArray(o: O): { key: keyof O; value: O[keyof O]; }[]; export declare function objectFilter(o: O, p: (k: keyof O, v: O[keyof O]) => boolean): Partial; export declare function objectOrderKeysAlphabetically(o: T): T; /** * Builds an object using keys in [[a]] and values returning from [[fn]] as long as they are not undefined. */ export declare function arrayToObject(a: string[], fn: (a: string) => T | undefined): { [s: string]: T | undefined; }; /** * Returns a nested property of given object and given path. For example path could be 'foo.bar' and it will * return `object['foo']['bar']` */ export declare function getObjectProperty(object: any, path: string | (string | number)[], defaultValue?: T | undefined): T | undefined; /** * sets a nested property on given path. For example path could be 'foo.bar' and it will set `object.foo.bar = value`. * If the path given as array contains numbers, then or those items arrays will be created instead of objects. For example: * * `setObjectProperty({}, ['foo', 0, 1, 'bar'], 'hello)` */ export declare function setObjectProperty(object: any, path: string | (string | number)[], value: any): any; export declare function getObjectPropertyPaths(object: any, options?: { ignoreArrayElements?: boolean; leafsOnly?: boolean; }): (string | number)[][];