export type Json = { /** * Compare two json objects * @param {object} obj1 object 1 * @param {object} obj2 object 2 * @param {string[]} ignoreKeys array of keys to ignore in comparison * @returns {boolean} true if the two json objects have the same length and all the properties have the same value */ isEqualJson(obj1: object, obj2: object, ignoreKeys?: string[]): boolean; /** * Deep delete keys and their values from an input object. If a key in object contains substring, the key an its value is deleted. * @param {Object} object input object that needs keys removed * @param {String} substring substring to search for in key * @returns the modified object without the matching keys and their values */ deleteDeepByKey(object: any, substring: any): any; /** * Deep clone object * @param {any} obj object to deep clone * @returns {any} new object cloned from obj */ cloneDeep(obj: any): any; /** * Deep merge two objects * @param obj1 first object * @param obj2 second object * @returns merged first and second object */ mergeDeep(obj1: any, obj2: any): any; /** * Get all paths for an object * @param {any} o object * @param {string} prefix prefix (path calculated up to this point). Only needed for recursion or to add a global prefix to all paths. * @param {string} delim delimiter used to separate elements of the path. Default is '.'. * @returns {string[]} an array of paths */ getPaths(o: any, prefix?: string, delim?: string): string[]; findInArray(objs: any[], predicate: any): any; get(obj: any, path: string[], defaultValue?: any): any; put(obj: any, value: any, path: string[]): any; /** * Deterministic stringify * @param {any} obj json object to stringify deterministically * @returns {string} stringified json object */ stringify(obj: any): string; }; declare const _default: () => Json; export default _default; /** * Compare two json objects * @param {object} obj1 object 1 * @param {object} obj2 object 2 * @param {string[]} ignoreKeys array of keys to ignore in comparison * @returns {boolean} true if the two json objects have the same length and all the properties have the same value */ export declare function isEqualJson(obj1: object, obj2: object, ignoreKeys?: string[]): boolean; /** * Deep delete keys and their values from an input object. If a key in object contains or equals substring, the key an its value is deleted. * @param {Object} object input object that needs keys removed * @param {String} substring substring to search for in key * @returns the modified object without the matching keys and their values */ export declare function deleteDeepByKey(object: any, substring: string): any; /** * Deep clone object * @param {any} obj object to deep clone * @returns {any} new object cloned from obj */ export declare function cloneDeep(obj: any): any; /** * Deep merge two objects * @param obj1 first object * @param obj2 second object * @returns merged first and second object */ export declare function mergeDeep(obj1: any, obj2: any): any; /** * Get all paths for an object * This function was explicitly created for the shell command in the Frodo CLI * and has some special casing that may not leave it generic enough to be used * for what its name implies. * @param {any} o object * @param {string} prefix prefix (path calculated up to this point). Only needed for recursion or to add a global prefix to all paths. * @param {string} delim delimiter used to separate elements of the path. Default is '.'. * @returns {string[]} an array of paths */ export declare function getPaths(o: any, prefix?: string, delim?: string): string[]; export declare function findInArray(objs: any[], predicate: any): any; export declare function get(obj: any, path: string[], defaultValue?: any): any; export declare function put(obj: any, value: any, path: string[]): any; /** * Deterministic stringify * @param obj json object to stringify deterministically * @returns stringified json object */ export declare function stringify(obj: any): string; //# sourceMappingURL=JsonUtils.d.ts.map