/**
 * @description: 获取嵌套数据,处理空值异常
 * @author: wuxh
 * @Date: 2020-05-06 12:13:59
 * @param defaultResult 默认值
 * @param args 属性访问路径
 * @returns 目标值或默认值
 * @example:
  getV('', {name: {children: 123}}, 'name', 'children')
  => 123
 */
export declare const getV: <T>(defaultResult: T, ...args: any[]) => any;
/**
 * @description: 深拷贝，克隆（只包含可遍历属性<常用>）
 * @author: wuxh
 * @Date: 2020-05-06 12:14:45
 * @param {obj}
 * @return: Object
 * @example:
  clone({name: 123})
  => {name: 123}
 */
export declare const cloneObj: (obj: any) => any;
/**
 * @description: 简单的深拷贝
 * @author: wuxh
 * @Date: 2021-09-02 22:33:47
 * @param {any} obj
 * @return {any} obj
 * @example:
 const person={name:'xiaoming',child:{name:'Jack'}}
 cloneJson(person) => {name:'xiaoming',child:{name:'Jack'}}
 */
export declare const cloneJson: (obj: any) => any;
/**
 * @description: 深度合并对象(当前用于合并系统配置文件 app-data.json) 已存在的属性默认不覆盖
 * @author: wuxh
 * @Date: 2020-05-06 12:15:30
 * @param {oldObj}
 * @param {newObj}
 * @param {keys} 强制覆盖属性的key组成的数组
 * @return: Object
 * @example:
  mergeObj({name: 111}, {name:333, value: 222}, []) => {name: 111, value: 222}
  mergeObj({name: 111}, {name:333, value: 222}, ['name']) => {name: 333, value: 222}
 */
export declare const mergeObj: (oldObj: {
    [x: string]: any;
}, newObj: {
    [x: string]: any;
}, keys: string | string[]) => {
    [x: string]: any;
};
/**
 * @description: 判断对象是否为空
 * @author: wuxh
 * @Date: 2021-08-21 23:08:42
 * @param {string} obj
 * @return {*} boolean
 * @example: isEmptyObject({}) => true
 */
export declare const isEmptyObject: (obj: any) => boolean;
/**
 * @description: cleanObject 去除对象中value为空(null,undefined,'')的属性
 * @author: wuxh
 * @Date: 2021-09-02 22:07:34
 * @param {*} { [k: string]: any }
 * @return {*} { [k: string]: any }
 * @example:
 cleanObject({
  name: '',
  pageSize: 10,
  page: 1
}) => {
  pageSize: 10,
  page: 1
}
 */
export declare const cleanObject: (object: {
    [k: string]: any;
}) => {
    [k: string]: any;
};
/**
 * @description: 深克隆 deepClone
 * @author: wxingheng
 * @Date: 2022-04-10 22:19:43
 * @param {any} value
 * @param {*} stack
 * @return {*}
 * @example: deepClone(obj) => new obj
 */
export declare const deepClone: (target: any) => any;
/**
 * @description: 判断两个对象是否相等
 * @author: wxingheng
 * @Date: 2022-05-13 16:35:33
 * @param {any} a
 * @param {any} b
 * @return {*}
 * @example: isEqual({a: 1}, {a: 1}) => true; isEqual({a: 1}, {a: 2}) => false; isEqual({a: 1}, {b: 1}) => false
 */
export declare const isEqual: (a: any, b: any) => boolean;
/**
 * @description: 将list转换为树结构
 * @author: wxingheng
 * @Date: 2022-09-30 11:37:32
 * @return {*}
 * @example: convertDataToTree(data) => treeData
 */
export declare const convertDataToTree: (data: any[], id?: string, pid?: string, children?: string) => any[];
/**
 * @description: 将树结构转换为list
 * @author: wxingheng
 * @Date: 2022-09-30 11:40:43
 * @param {any} tree 树结构
 * @param {string} children 子节点字段
 * @return {*}
 * @example: convertTreeToList (treeData) => listData
 */
export declare const convertTreeToList: (tree: any[], children?: string) => any[];
/**
 * @description:  数组的分类，根据某个字段分类，返回一个对象，key为字段值，value为数组
 * @author: wxingheng
 * @Date: 2022-09-30 11:53:38
 * @param {any} arr
 * @param {string} key
 * @return {*}
 * @example:
 * const arr = [
 * {type: 1, name: 'a'},
 * {type: 2, name: 'b'},
 * {type: 1, name: 'c'},
 * {type: 2, name: 'd'},
 * {type: 1, name: 'e'},
 * {type: 2, name: 'f'},
 * ]
 * groupBy(arr, 'type') => {1: [{type: 1, name: 'a'}, {type: 1, name: 'c'}, {type: 1, name: 'e'}], 2: [{type: 2, name: 'b'}, {type: 2, name: 'd'}, {type: 2, name: 'f'}]}
 */
export declare const groupBy: (arr: any[], key: string) => any;
