/**
 * @category Array
 */
export type DoubleRankingOption = {
    /**
     * 一级过滤和排序的key
     */
    filterRuleKey?: string;
    /**
     * 一级排序规则
     */
    rule?: string[];
    /**
     * 二级正常排序的key
     */
    sortKey?: string;
    sortOrder?: number;
};
/**
 * @category Array
 * @description: 处理复杂数组的两级排序（一级按照自定义顺序，二级可正序倒序）
 * @author: wuxh
 * @Date: 2020-05-06 11:37:17
 * @param {arr} 需要处理的数组
 * @param {options} 额外参数
 * @return: {Array} 排序后的数组
 * ```
 * doubleRanking(
 *   [
 *     {education: '本科', age: 26},
 *     {education: '小学', age: 25},
 *     {education: '本科', age: 24},
 *     {education: '小学', age: 23}
 *   ],
 *   {
 *     filterRuleKey: 'education',
 *     rule: ['小学', '本科'],
 *     sortKey: 'age',
 *     sortOrder: 1
 *   }
 * )
 * => [
 *     {education: '小学', age: 24},
 *     {education: '小学', age: 26}
 *     {education: '本科', age: 23},
 *     {education: '本科', age: 25},
 *   ]
 * ```
 */
export declare const doubleRanking: (arr: {
    [key: string]: any;
}[], options: DoubleRankingOption) => any[];
/**
 * @category Array
 * @description: 产生随机数据
 * @author: wxingheng
 * @Date: 2022-10-12 11:08:50
 * @param {number} num 数量
 * @param {Array} arr 每个元素对象的keys
 * @return {*}
  ```
  randomData(2, ['name', 'value'])
  => [{"name":"name323","value":"value699"},{"name":"name573","value":"value393"}]
  ```
 */
export declare const randomData: (num: number, arr: Array<string>) => Array<any>;
/**
 * @category Array
 * @description: 数值转对象 （常用于处理后台返回的枚举转换，工作中很常用）
 * @author: wuxh
 * @Date: 2020-05-06 11:51:49
 * @param {object} arr 需要作为转换后对象的key需要转换的数组
 * @param {string} key 需要作为转换后对象的key
 * @param {*} v 对象的value取值，默认是数组的每一个元素作为值
 * @return: Object
 ```
  const arr = arr = [{name: 111, value: 222},{name: 333, value:444}]
  arrByObj(arr, 'name')   =>    {"111":{"name":111,"value":222},"333":{"name":333,"value":444}}
  arrByObj(arr, 'name', value)   =>    {"111":222,"333":444}
 ```
 */
export declare const arrByObj: (arr: {
    [key: string]: any;
}[], key: string, v?: string) => {
    [key: string]: any;
};
/**
 * @category Array
 * @description: 简单数组去重，Set 处理
 * @author: wxingheng
 * @Date: 2022-10-12 11:16:32
 * @param {string} arr
 * @return {*}
  ```
  uniqueArray([1,1,1,1,1]) => [1]; uniqueArray([1,2,3,4,5]) => [1,2,3,4,5];
  ```
 */
export declare const uniqueArray: (arr: string | Iterable<any> | null | undefined) => any[];
/**
 * @category Array
 * @description: 数组交集
 * @author: wxingheng
 * @Date: 2022-05-18 10:56:47
 * @param {Iterable} a
 * @param {Iterable} b
 * @return {*} Array
 * ```
 * difference([2,3,4,5], [1,2,3,4]) => [5, 1] ;
 * difference([1,2,3,4], [2,3,4,5]) => [1, 5];
 * difference([1,2,3,4], [1,2,3,4]) => [];
 * difference([1,2,3,4], []) => [1, 2, 3, 4]
 * ```
 */
export declare const difference: (a: Iterable<unknown> | null | undefined, b: Iterable<unknown> | null | undefined) => Array<any>;
/**
 * @category Array
 * @description: 数组元素是否相同
 * @author: wxingheng
 * @Date: 2022-05-18 10:56:04
 * @param {any} arr1
 * @param {any} arr2
 * @return {*}
```
 arrayCompare([2,3,4,5], [5,4,3,2]) => true ;
 arrayCompare([2,3,4,5], [5,4,3,2,1]) => false;
 arrayCompare([2,3,4,5], []) => true;
 arrayCompare([], [1,2,3,4]) => false;
 arrayCompare([1,2,3,4], []) => true;
```
 */
export declare const arrayCompare: (arr1: any[], arr2: any[]) => boolean;
/**
 * @category Array
 * @description:  数组排序的回调函数，用于sort方法，按照对象的某个属性进行中文排序
 * @author: wxingheng
 * @Date: 2022-09-30 11:43:11
 * @param {string} key 排序的属性
 * @return {*}
 * ```
 *  arr.sort(sortCallBackChinese('name')) => [{name: '张三'}, {name: '李四'}]
 * ```
 */
export declare const sortCallBackChinese: (key: string) => (a: any, b: any) => void;
/**
 * @category Array
 * @description:
 * @author: wxingheng
 * @Date: 2022-09-30 11:45:04
 * @param {string} key  对象的key
 * @param {boolean} desc 是否倒序, 默认是正序
 * @return {*}
 * ```
 * arr.sort(sortCallBackNumber('age')) => [{age: 18}, {age: 20}]
 * arr.sort(sortCallBackNumber('age', true)) => [{age: 20}, {age: 18}]
 * ```
 */
export declare const sortCallBackTime: (key: string, desc?: boolean) => (a: any, b: any) => void;
/**
 * @category Array
 * @description:  reduce方法，用于数组对象的求和
 * @author: wxingheng
 * @Date: 2022-09-30 11:51:39
 * @param {string} key
 * @return {*}
 * ```
 * arr.reduce(reduceSum('num'), 0) => 10
 * ```
 */
export declare const reduceCallBackNumber: (key: string) => (acc: any, cur: any) => void;
