/** * Makes deep clone of the object with ability exclude some properties or include only specific ones * (includeKeys && excludeKeys) - simple key name comparison * (include && exclude) - with parent hierarchy support, example: * 'property1.deep_property2.deep_property3' * or for array: * 'arrayProperty.0' and 'arrayProperty.$.deep_property' * * @param {any} obj - object to clone * @param {object} [options] - additional behaviour options * @param {Array} [options.include] - list of include properties keys * @param {Array} [options.includeKeys] - list of include properties keys * @param {Array} [options.exclude] - list of exclude properties keys * @param {Array} [options.excludeKeys] - list of exclude properties keys * @param {boolean} [options.excludeEmpty] - defines if empty objects should be copied or not * @param {Array} [options.referenceClone] - defines types which clone by reference * @returns {any} - cloned object */ export declare function cloneObject(obj: any, options?: { include?: Array | undefined; includeKeys?: Array | undefined; exclude?: Array | undefined; excludeKeys?: Array | undefined; excludeEmpty?: boolean; referenceClone?: Array; }): any; export declare namespace cloneObject { var REFERENCE_CLONE_TYPES: (ErrorConstructor | DateConstructor | RegExpConstructor | PromiseConstructor)[]; } export default cloneObject;