import { ApplyUndefinedType } from './assert'; export declare function isObject(o: any): boolean; export declare function hasFunction(o: object | any[], name: PropertyKey): boolean; export declare function deepClone(o: A): A; export declare function deepEqual(a: any, b: any): boolean; export declare function replaceObject(dest: A, src: A): A; export declare const SafeObjectOptions: { throwError: boolean; }; /** * make a loss object, very forgiving * */ export declare function createSafeObject(target?: object): any; export declare const updateObject: (dest: T) => (x: U) => T & U; export declare const isNull: (x: any) => boolean; export declare function removeNull(o: A): A; /** * @param {any} o : value to be checked * @param {boolean} skip : true will remove duplicated value silently; * false will throw an error upon duplication * @param {any} placeholder : custom value to replace duplicated object * @param {function} mapper : optional map function * @param {Set} visited : internal book keeping seen objects * */ export declare function ensureNonCyclic(o: A, skip?: boolean, placeholder?: any, mapper?: (a: any) => any, visited?: Set): A; export declare function deleteUndefined(o: ApplyUndefinedType): void; /** * to encode json data in csv-style * i.e. only need to store the keys once for a large collection (e.g. Array / Set) * */ export declare function objectToValues(o: T, keys?: Array): Array; /** * to decode json data from csv-style * i.e. populate values and keys to a collection (e.g. Array / Set) * */ export declare function valuesToObject(values: Array, keys: Array): T; export declare function objectGetOrSetDefault(object: Record, key: K, f: () => V): V; export declare function objectPick(object: T, keys: K[]): Pick;