/**
 * @description:
 * @author: wxingheng
 * @Date: 2023-06-13 16:08:46
 * @param {*} private
 * @param {*} private
 * @return {*}
 * @example:
 */
export declare class Typewriter {
    private onConsume;
    private onDone;
    private queue;
    private consuming;
    private timer;
    private strTemp;
    constructor(onConsume: (str: string) => void, onDone: (str: string) => void);
    dynamicSpeed(): number;
    add(str: string): void;
    consume(): void;
    next(): void;
    start(): void;
    done(): void;
}
/**
 * @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;
/**
 * @description: 转换Rh血型
 * @author: wuxh
 * @Date: 2021-09-07 13:44:36
 * @param {*}
 * @return {*}
 * @example:  formatRhBloodGroup('**D**') => 阳性
 * formatRhBloodGroup('+') => 阳性
 *
 */
export declare const formatRhBloodGroup: (input: string, optiongs?: {
    format?: [string | number | boolean, string | number | boolean];
    default?: string | number | boolean;
    negative?: Array<string>;
    positive?: Array<string>;
}) => string | number | boolean;
/**
 * @description: 是否阴性
 * @author: wuxh
 * @Date: 2022-01-17 23:57:31
 * @param {string} input
 * @return {*}
 * @example:
 */
export declare const isRhNegative: (input: string) => string | number | boolean;
/**
 * @description: 是否阳性
 * @author: wuxh
 * @Date: 2022-01-17 23:57:19
 * @param {string} input
 * @return {*}
 * @example:
 */
export declare const isRhPositive: (input: string) => string | number | boolean;
/**
 * @description: sort []
 * @author: wuxh
 * @Date: 2021-09-07 14:12:06
 * @param {string} key
 * @return {*}
 * @example:
 * const arr = [{name: '666'}, {name: '333'}]
 * arr.sorterCallBackString('name') => [{name: '333'}, {name: '666'}]
 * arr.sorterCallBackString('name', false) => [{name: '666'}, {name: '333'}]
 */
export declare const sorterCallBack: (key: string, isAscend?: boolean) => (a: any, b: any) => 1 | -1;
export type getBrowserInfoResult = {
    name: string | RegExp;
    version: string;
};
/**
 * @description: 获取浏览器相关信息
 * @author: wuxh
 * @Date: 2020-05-06 11:53:35
 * @param {}
 * @return: Object
 * @example:
```
  getBrowserInfo()
  => {name: "Chrome", version: "81.0.4044.129"}
```
 */
export declare const getBrowserInfo: () => getBrowserInfoResult;
/**
 * @description: 删除
 * @author: wuxh
 * @Date: 2020-05-06 11:56:29
 * @param {key}
 * @return: undefined
 * @example:
  removeStorage('test')
  => undefined
 */
export declare const removeStorage: (key: any) => void;
/**
 * @description: 保存
 * @author: wuxh
 * @Date: 2020-05-06 11:56:29
 * @param {key}
 * @param {value}
 * @param {isJson}
 * @return: undefined
 * @example:
  saveStorage('test', '001')
  => undefined
 */
export declare const saveStorage: (key: string, value: string) => void;
/**
 * @description: 获取
 * @author: wuxh
 * @Date: 2020-05-06 12:00:37
 * @param {key}
 * @return: String
 * @example:
  getStorage('test')
  => '001'
 */
export declare const getStorage: (key: string) => any;
/**
 * @description: 是否支持local
 * @author: wuxh
 * @Date: 2020-05-06 12:01:43
 * @param
 * @return: Boolean
 * @example:
  isSupportStorage()
  => true
 */
export declare const isSupportStorage: () => boolean;
/**
 * @description: 获取cookie值
 * @author: wuxh
 * @Date: 2020-06-09 09:28:06
 * @param {type}
 * @return: string
 * @example:
  getCookie('name') => 123
 */
export declare const getCookie: (name: string) => string | null;
/**
 * @description: 获取两个时间的间隔
 * @author: wuxh
 * @Date: 2020-05-06 12:04:39
 * @param {st}
 * @param {et}
 * @return: String
 * @example:
  dateInterval(new Date().getTime(), 1589661011714)
  => 11天13小时46分钟21秒
 */
export declare const dateInterval: (st: number, et: number) => string;
/**
 * @description: 字符串补0，目前提供给dateFormat使用
 * @author: wuxh
 * @Date: 2020-05-11 14:01:20
 * @param {v} 需要处理的数据 String | Number
 * @param {size} 期望得到的总位数
 * @return: String
 * @example:
  addZero(12, 1) => 12
  addZero(12, 2) => 12
  addZero(12, 3) => 012
 */
export declare const addZero: (v: string | number, size: number) => string;
/**
 * @description:  时间的转换（目前支持 年，月，日，时，分，秒，星期）
 * @author: wuxh
 * @Date: 2020-05-06 12:05:28
 * @param {date}
 * @param {formatStr}
 * @return: String
 * @example:
  dateFormat(new Date(), '当前时间 YY-MM-DD HH:II:SS 星期W')
  => "当前时间 20-05-11 14:07:02 星期一"
 */
export declare const dateFormat: (date: Date, formatStr: string) => string;
/**
 * @description:  时间的转换（目前支持 年，月，日，时，分，秒，星期）, 与dateFormat的区别是，这个方法可以传入时间戳
 * @author: wxingheng
 * @Date: 2022-09-30 11:46:22
 * @return {date}
 * @example:  convertDateToView(new Date(), '当前时间 YY-MM-DD HH:II:SS 星期W')
 */
export declare const convertDateToView: (date: string | Date | number, template?: string, defaultResult?: string) => string;
/**
 * @description:  时间的转换 "YYYY-MM-DD HH:II:SS"
 * @author: wxingheng
 * @Date: 2022-09-30 11:48:15
 * @param {string} date
 * @return {*}
 * @example: convertDateToStandard(new Date()) => "2021-09-30 11:48:15"
 */
export declare const convertDateToStandard: (date: string | Date | number) => string;
/**
 * @description:  时间的转换 "YYYY-MM-DD"
 * @author: wxingheng
 * @Date: 2022-09-30 11:49:14
 * @param {string} date
 * @return {*}
 * @example: convertDateToStandardDay(new Date()) => "2021-09-30"
 */
export declare const convertDateToStandardDay: (date: string | Date | number) => string;
/**
 * @description: 时间的转换 "YYYY-MM-DD HH"
 * @author: wxingheng
 * @Date: 2022-09-30 11:49:37
 * @param {string} date
 * @return {*}
 * @example: convertDateToStandardHours(new Date()) => "2021-09-30 11"
 */
export declare const convertDateToStandardHours: (date: string | Date | number) => string;
/**
 * @description: 获取当前月份的天数
 * @author: wuxh
 * @Date: 2020-05-06 12:06:24
 * @param {str}
 * @return: Number
 * @example:
  dateMonthDays('2020-05-06')
  => 31
 */
export declare const dateMonthDays: (str: string) => number;
/**
 * @description: 时间个性化输出功能
 * @author: wuxh
 * @Date: 2020-06-09 09:44:23
 * @param {type}
 * @return: string
 * @example:
  1、< 60s, 显示为“刚刚”
  2、>= 1min && < 60 min, 显示与当前时间差“XX分钟前”
  3、>= 60min && < 1day, 显示与当前时间差“今天 XX:XX”
  4、>= 1day && < 1year, 显示日期“XX月XX日 XX:XX”
  5、>= 1year, 显示具体日期“XXXX年XX月XX日 XX:XX”
  timeFormat(new Date()) => '刚刚'
 */
export declare const timeFormat: (time: Date) => string;
/**
 * @description: 获取当前月份天数
 * @author: wuxh
 * @Date: 2021-08-21 22:43:58
 * @param {*} str YYYY-MM-DD mm:ss
 * @return {*} number
 * @example:
 */
export declare const getCountDays: (str: string | number | Date) => number;
/**
 * @description: debounce 防抖, 固定时间内持续触发，只执行最后一次
 * @author: wuxh
 * @Date: 2021-09-02 21:30:44
 * @param {*} Function 要进行debouce的函数
 * @param {*} wait 等待时间,默认500ms
 * @param {*} immediate 是否立即执行
 * @return {*} Function
 * @example:
 * function onInput() {
                console.log('1111')
            }
            const debounceOnInput = debounce(onInput)
            document
                .getElementById('input')
                .addEventListener('input', debounceOnInput)
 *
 */
export declare const debounce: (func: (...rest: any) => void, wait?: number, immediate?: boolean) => {
    (...args: any): void;
    cancel(): void;
};
/**
 * @description: decoratorNonenumerable
 * @author: wuxh
 * @Date: 2021-11-10 11:43:45
 * @param {*}
 * @return {*}
 * @example:
 */
export declare const decoratorNonenumerable: (_target: any, _name: any, descriptor: any) => any;
/**
 * @description: 获取用户系统平台信息
 * @author: wuxh
 * @Date: 2020-05-06 12:07:03
 * @param {e}
 * @return: {os: "mac", version: "10.15.3"}
 * @example:
```
  osInfo()
  => {os: "mac", version: "10.15.3"}
```
 */
export type osInfoResult = {
    os: string | RegExp;
    version: string;
};
export declare const osInfo: (e: string) => osInfoResult;
/**
 * @description: 下载一个链接文档
 * @author: wuxh
 * @Date: 2021-09-01 23:27:00
 * @param {string} link
 * @param {string} name
 * @return {*}
 * @example:
 * download('https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fc-ssl.duitang.com%2Fuploads%2Fblog%2F202008%2F04%2F20200804215427_fc3ff.thumb.1000_0.jpeg&refer=http%3A%2F%2Fc-ssl.duitang.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1633102668&t=5f2cf4e9273be91527efb91ecd5cb6dd')
 * 下载后端返回的流
 *
 */
export declare const download: (link: string, name: string) => any;
/**
 * @description: 在浏览器中自定义下载一些内容
 * @author: wuxh
 * @Date: 2021-09-01 23:32:30
 * @param {string} name
 * @param {BlobPart} content
 * @return {*}
 * @example: 场景：我想下载一些DOM内容，我想下载一个JSON文件
 *
 * downloadFile('1.txt','lalalallalalla')
   downloadFile('1.json',JSON.stringify({name:'hahahha'}))
 */
export declare const downloadFile: (name: string, content: BlobPart) => any;
/**
 * @description: 复制内容到剪贴板
 * @author: wuxh
 * @Date: 2021-09-02 22:22:03
 * @param {string} value
 * @return {*} boolean
 * @example:
 copyToBoard('lalallala') => true // 如果复制成功返回true
 */
export declare const copyToBoar: (value: string) => boolean;
/**
 * @description: 拖拽滚动
 * @author: wxingheng
 * @Date: 2022-07-15 18:16:15
 * @param {*} scrollDom
 * @return {*}
 * @example: 待增加惯性效果
 */
export declare const dragScroll: (scrollDom: any) => object;
/**
 * @description: 获取图片的 base64
 * @author: wxingheng
 * @Date: 2022-09-30 10:53:33
 * @param {File} file
 * @return {*}
 * @example: getBase64(file).then(res => console.log(res))
 */
export declare const getBase64: (file: File) => Promise<any>;
/**
 * @description: 前端文件导入，JSON文件导入
 * @author: wxingheng
 * @Date: 2022-09-30 10:57:58
 * @param {*} Object
 * @return {*}
 * @example: importJson() => {name: 'wxh'}
 */
export declare const importJson: () => object;
/**
 * @description: JSON 对象导出为.json文件
 * @author: wxingheng
 * @Date: 2022-09-30 11:00:54
 * @param {any} data
 * @param {*} name
 * @return {*}
 * @example:
 */
export declare const exportJson: (data: any, name?: string) => any;
/**
 * @description: EventBus  class
 * @author: wuxh
 * @Date: 2021-08-24 11:19:07
 * @example: const eventBus = new EventBus()
 */
export declare class EventBus {
    private listeners;
    private maxListener;
    constructor();
    addListener(event: string, cb: (...args: any[]) => any): void;
    emit(event: string, ...args: any[]): void;
    getListeners(event: string): Array<(...args: any[]) => any>;
    setMaxListeners(maxListener: number): void;
    removeListener(event: string, listener: (...args: any[]) => any): void;
    removeAllListener(event: string): void;
    once(event: string, cb: (...args: any[]) => any): void;
}
/**
 * @description: 对象转化为FormData对象
 * @author: wuxh
 * @Date: 2021-09-02 22:52:34
 * @param {object} object
 * @return {FormData}
 * @example:
 let req={
    file:xxx,
    userId:1,
    phone:'15198763636',
    //...
}
fetch(getFormData(req))
 */
export declare const getFormData: (object: {
    [x: string]: string | Blob;
}) => FormData;
declare class GlobalCache {
    private static readonly instance;
    private readonly cache;
    private constructor();
    static getInstance(): GlobalCache;
    set<T>(key: string, value: T): void;
    get<T>(key: string): T | undefined;
    has(key: string): boolean;
    delete(key: string): void;
    clear(): void;
}
declare const globalCache: GlobalCache;
export { globalCache };
/**
 * @description: 范围随机整数
 * @author: wuxh
 * @Date: 2020-05-06 12:09:34
 * @param {str}
 * @param {end}
 * @return: Number
 * @example:
  scopeRandom(1, 10)
  => 3
 */
export declare const scopeRandom: (str: number, end: number) => number;
/**
 * @description: 保留到小数点以后n位
 * @author: wuxh
 * @Date: 2021-09-02 22:54:36
 * @param {number} number
 * @param {*} no
 * @return {*} Number
 * @example:
 cutNumber('3123.22312') => 3123.22
 */
export declare const cutNumber: (number: number, no?: number) => number;
/**
 * @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;
/**
 * @description: 单击事件转换为多击事件
 * @author: wxingheng
 * @Date: 2022-05-04 14:20:22
 * @param {*} wait
 * @param {array} events
 * @return {*}
 * @example:
 *    // 连续点击一次触发，连续点击两次触发，连续点击三次触发
        var oneClickToMoreClickCallBack = jcommon.oneClickToMoreClick(300, () => {
            console.log(111)
        }, () => {
            console.log(222)
        }, ()=> {
            console.log(333)
        })
        dom.addEventListener('click', oneClickToMoreClickCallBack);
 */
export declare const oneClickToMoreClick: (wait?: number, ...events: ((...args: any[]) => void)[]) => () => void;
/**
 * @description: 单击事件转换为多击事件
 * @author: wxingheng
 * @Date: 2022-08-09 14:03:34
 * @param {Function} fun 回调函数
 * @param {*} n 连续几次触发才触发回调函数
 * @param {*} wait 两次之间的间隔时间
 * @return {*}
 * @example:  const dobuleClick = moreClick(handleClick)
    // 连续点击三次触发
        var moreClickCallBack = jcommon.moreClick(() => {
            console.log("moreClickCallBack")
        }, 3)
        dom.addEventListener('click', moreClickCallBack);
 */
export declare const moreClick: (fun: (...args: any) => void, n?: number, wait?: number) => (...args: any[]) => void;
/**
 * @description: 产生一个随机颜色
 * @author: wxingheng
 * @Date: 2022-09-30 11:13:13
 * @return {*}
 * @example: randomColor() => "rgba(107, 35, 72, 1)";
 */
export declare const randomColor: () => any;
/**
 * @description: 比例计算
 * @author: wxingheng
 * @Date: 2022-09-30 11:13:27
 * @param {number} value 当前值
 * @param {number} source  当前值所在的区间
 * @param {number} target 目标区间
 * @param {any} toFixedLength 保留小数位数
 * @return {*}
 * @example:  scaleLinear(50, 100, 10, 2) => 5; scaleLinear(50, 100, 10, 0) => 5;
 */
export declare const scaleLinear: (value: number, source: number, target: number, toFixedLength?: any) => any;
/**
 * @description: 转换请求为慢响应
 * @param {*} func 请求函数
 * @param {*} fastestTime 最快响应时间
 * @return {*}
 * @example: const data = await fetchToSlow(1000 * 2)(getKgDetail(kg_id));
 */
export declare const fetchToSlow: (fastestTime: number | undefined) => (func: any) => any;
/**
 * @description:  处理流响应数据
 * @author: wxingheng
 * @Date: 2023-06-13 16:14:34
 * @param {any} response
 * @param {object} typewriter
 * @return {*}
 * @example:
 */
export declare const processStreamResponse: (response: any, typewriter: {
    start: () => void;
    done: () => void;
    add: (arg0: any) => void;
}) => Promise<void>;
/**
 * @description: Queue 队列 class
 * @author: wuxh
 * @Date: 2021-08-24 11:19:07
 * @example: const queue = new Queue()
 */
export declare class Queue {
    private items;
    constructor(items: Array<never>);
    enqueue(element: never): void;
    dequeue(): void;
    front(): never;
    isEmpty(): boolean;
    size(): number;
    clear(): void;
    print(): void;
}
/**
 * @description: 是否是QQ平台
 * @author: wuxh
 * @Date: 2020-05-06 12:10:41
 * @param
 * @return: Boolean
 * @example:
  isQQ()
  => false
 */
export declare const isQQ: () => boolean;
/**
 * @description: 是否是微信平台
 * @author: wuxh
 * @Date: 2020-05-06 12:10:41
 * @param
 * @return: Boolean
 * @example:
  isWX()
  => false
 */
export declare const isWX: () => boolean;
/**
 * @description: 获取手机运营商
 * @author: wuxh
 * @Date: 2020-05-06 12:11:39
 * @param {}
 * @return: '移动' | '电信' | '联通' | '未知'
 * @example:
  operattelecom('13419595634') => 移动
 */
export declare const operattelecom: (e: string) => false | "未知" | "联通" | "电信" | "移动";
/**
 * @description: 是否是安卓设备
 * @author: wuxh
 * @Date: 2020-06-09 09:31:04
 * @param {type}
 * @return: boolean
 * @example:
  isAndroidMobileDevice() => false
 */
export declare const isAndroidMobileDevice: () => boolean;
/**
 * @description: 是否是苹果设备
 * @author: wuxh
 * @Date: 2020-06-09 09:31:55
 * @param {type}
 * @return: boolean
 * @example:
  isAppleMobileDevice() => true
 */
export declare const isAppleMobileDevice: () => boolean;
/**
 * @description: 休眠多少毫秒
 * @author: wuxh
 * @Date: 2021-09-02 23:08:19
 * @param {number} milliseconds
 * @return {*}
 * @example:
  fetchData = async () => {
    await sleep(1000)
  }
 */
export declare const sleep: (milliseconds: number | undefined) => Promise<unknown>;
/**
 * @description: 去除字符串空格, 默认去除前后空格 （常用）
 * @author: wuxh
 * @Date: 2020-05-06 13:43:52
 * @param {str} String
 * @param {global} Boolean
 * @return: String
 * @example:
  trim('   1 1 1   ') => '1 1 1'
  trim('   1 1 1   ', true) => '111'
 */
export declare const trim: (str: string, global?: boolean) => string;
/**
 * @description: 身份证号码解析性别
 * @author: wuxh
 * @Date: 2020-06-09 09:16:28
 * @param {type}
 * @return: 'FEMALE' ｜ 'MALE'
 * @example:
   getSexByIdNO('421182199409274710') => MALE
 */
export declare const getSexByIdNO: (IdNO: string) => 'FEMALE' | 'MALE' | '';
/**
 * @description: 身份证号码解析出生日期
 * @author: wuxh
 * @Date: 2020-06-09 09:17:50
 * @param {type}
 * @return: string
 * @example:
  getBirthdatByIdNo('421182199409274710') => '1994-09-27'
 */
export declare const getBirthdatByIdNo: (iIdNo: string) => string;
/**
 * @description: 隐藏身份证号码
 * @author: wuxh
 * @Date: 2020-06-09 09:19:26
 * @param {type}
 * @return: string
 * @example:
  hideIdNum('421182199409274710') => 4****************0
 */
export declare const hideIdNum: (str: string) => string;
/**
 * @description: 随机数 + 时间戳
 * @author: wuxh
 * @Date: 2020-06-09 09:47:34
 * @param {type}
 * @return: string
 * @example:
  uniqueId() => '1591667193048544'
 */
export declare const uniqueId: () => string;
/**
 * @description: 版本号累加
 * @author: wuxh
 * @Date: 2021-08-24 11:19:07
 * @param {*} version : string
 * @return {*} string
 * @example: versionCount('0.0.1') => '0.0.2'
 * versionCount('0.2.9') => '0.3.0'
 * versionCount('0.2.9.1') => '0.2.9.2'
 */
export declare const versionCount: (version: string, maxNum?: number) => string;
/**
 * @description: 获取文件后缀名
 * @author: wuxh
 * @Date: 2021-09-02 22:17:57
 * @param {string} filename
 * @return {*}
 * @example:
 getExt("1.mp4") => mp4
 */
export declare const getExt: (filename: string) => string | undefined;
/**
 * 生成随机id
 * @param {*} length
 * @param {*} chars
 */
/**
 * @description: 生成随机字符串,第一个参数指定位数，第二个字符串指定字符，都是可选参数，如果都不传，默认生成8位
 * @author: wuxh
 * @Date: 2021-09-02 22:29:02
 * @param {number} length
 * @param {string} chars
 * @return {string}
 * @example:
 uuid() => 'ghijklmn'
 */
export declare const uuid: (length: number, chars: string | any[]) => string;
/**
 * @description: 字符串判断结尾
 * @author: wuxh
 * @Date: 2021-11-10 11:35:30
 * @param {string} str
 * @param {string} endStr
 * @return {*}
 * @example: endWith('1231231', '21') => false ;  endWith('1231231', '31') => true
 */
export declare const endWith: (str: string, endStr: string) => boolean;
/**
 * @description: 计算两个字符串相似度
 * @author: wxingheng
 * @Date: 2022-07-25 10:07:23
 * @param s 文本1
 * @param t 文本2
 * @param f 小数位精确度，默认2位
 * @returns {string|number|*} 百分数前的数值，最大100. 比如 ：90.32
 * @example: similar("12", "12") => 100 ; similar("12", "123") => 75 ; similar("12", "1234") => 50
 */
export declare const similar: (s: string, t: string, f?: number) => number;
/**
 * @description: 计算文本长度（中文算两个字符，英文算一个字符）
 * @author: wxingheng
 * @Date: 2022-09-30 10:49:41
 * @param {string} str
 * @return {number}
 * @example: getStringLen("阿斯顿发123") => 11 ; getStringLen("asd123") => 6 ; getStringLen("asd123顿发") => 10
 */
export declare const getStringLen: (str: string) => number;
/**
 * @description: 节流 多次调用方法，按照一定的时间间隔执行
 * @author: wuxh
 * @Date: 2021-09-02 21:46:38
 * @param {*} func
 * @param {*} wait
 * @param {*} options: { leading: boolean; trailing: boolean }
 * @return {*} Function
 * @example:
 *
leading，函数在每个等待时延的开始被调用，默认值为false
trailing，函数在每个等待时延的结束被调用，默认值是true
可以根据不同的值来设置不同的效果：
leading-false，trailing-true：默认情况，即在延时结束后才会调用函数
leading-true，trailing-true：在延时开始时就调用，延时结束后也会调用
leading-true, trailing-false：只在延时开始时调用
 */
export declare const throttle: (func: () => void, wait: number | undefined, options: {
    leading: boolean;
    trailing: boolean;
}) => (() => void);
/**
 * @description: 获取浏览器url中的一个参数
 * @author: wuxh
 * @Date: 2020-05-06 13:46:28
 * @param {name}
 * @return: String
 * @example:
  getUrlQuery(age)
  => 25
 */
export declare const getUrlQuery: (name: string) => string;
/**
 * @description: 去除值类型为string的前后空格
 * @author: wuxh
 * @Date: 2021-08-21 22:11:23
 * @param {Array} data
 * @return {*}
 * @example: everyTrim({name: '  123  ', arr: [' 33 ']}) => {name: '123': arr: ['33']}
 */
export declare const everyTrim: (data: Array<any> | object) => any;
/**
 * @description: 格式化GET请求的请求头
 * @author: wuxh
 * @Date: 2020-05-06 13:47:40
 * @param {obj}
 * @return: String
 * @example:
  formatQueryParam({name: 1, value: 123})
  =>  "name=1&value=123"
 */
export declare const formatQueryParam: (obj: {
    [key: string]: any;
}) => string;
/**
 * @description: 处理url参数(window.location.search)转换为 {key: value}
 * @author: wuxh
 * @Date: 2020-05-06 13:48:36
 * @param {params}
 * @return: Object
 * @example:
  urlByObj(?ie=UTF-8&wd=asd)
  => {ie: UTF-8, wd: asd}
 */
export declare const urlByObj: (params: string) => {
    [key: string]: string;
};
/**
 * @description: 身份证号码校验（精准）
 * @author: wuxh
 * @Date: 2020-05-06 13:49:58
 * @param {e}
 * @return: String<msg> | Boolean
 * @example:
  isUserId('421182199409274710') => ''
  isUserId('421182199409') => '身份证号码长度应该为18位'
 */
export declare const isUserId: (e: string) => "" | "身份证号码不能为空" | "身份证号码长度应该为18位" | "身份证格式错误" | "身份证生日无效。" | "身份证生日不在有效范围" | "身份证月份无效" | "身份证日期无效" | "身份证地区编码错误" | "不是合法的身份证号码";
/**
 * @description: 精准判断数据类型
 * @author: wuxh
 * @Date: 2020-05-06 13:51:50
 * @param {data} any
 * @param {type} type  'String' | 'Number' | 'Boolean' | 'Undefined' | 'Null' | 'Function' | 'Date' | 'Array' | 'RegExp' | 'Error' | 'Object'
 * @return: Boolean
 * @example:
  isType(123, 'String') => false
  isType('123', 'String') => true
 */
export declare const isType: (data: any, type: string) => boolean;
/**
 * @description: 判断String类型
 * @author: wuxh
 * @Date: 2020-05-06 13:53:16
 * @param {data} any
 * @return: Boolean
 * @example:
  isString(123) => false
  isString('') => true
 */
export declare const isString: (data: any) => boolean;
/**
 * @description: 判断Number类型
 * @author: wuxh
 * @Date: 2020-05-06 13:53:16
 * @param {data} any
 * @return: Boolean
 * @example:
  isNumber(123) => true
  isNumber('') => false
 */
export declare const isNumber: (data: any) => boolean;
/**
 * @description: 判断Boolean类型
 * @author: wuxh
 * @Date: 2020-05-06 13:53:16
 * @param {data} any
 * @return: Boolean
 * @example:
  isBoolean(false) => true
  isBoolean('false') => false
 */
export declare const isBoolean: (data: any) => boolean;
/**
 * @description: 判断Undefined类型
 * @author: wuxh
 * @Date: 2020-05-06 13:53:16
 * @param {data} any
 * @return: Boolean
 * @example:
  isUndefined(undefined) => true
  isUndefined('undefined') => false
 */
export declare const isUndefined: (data: any) => boolean;
/**
 * @description: 判断Null类型
 * @author: wuxh
 * @Date: 2020-05-06 13:53:16
 * @param {data} any
 * @return: Boolean
 * @example:
  isNull(null) => true
  isNull('null') => false
 */
export declare const isNull: (data: string) => boolean;
/**
 * @description: 判断Function类型
 * @author: wuxh
 * @Date: 2020-05-06 13:53:16
 * @param {data} any
 * @return: Boolean
 * @example:
  isFunc(() => 123) => true
  isFunc(123) => false
 */
export declare const isFunc: (data: any) => boolean;
/**
 * @description: 判断Date类型
 * @author: wuxh
 * @Date: 2020-05-06 13:53:16
 * @param {data} any
 * @return: Boolean
 * @example:
  isDate(() => new Date()) => false
  isDate(new Date()) => true
 */
export declare const isDate: (data: any) => boolean;
/**
 * @description: 判断Array类型
 * @author: wuxh
 * @Date: 2020-05-06 13:53:16
 * @param {data} any
 * @return: Boolean
 * @example:
  isArray([]) => true
  isArray(![]) => false
 */
export declare const isArray: (data: any) => boolean;
/**
 * @description: 判断RegExp类型
 * @author: wuxh
 * @Date: 2020-05-06 13:53:16
 * @param {data} any
 * @return: Boolean
 * @example:
  isReg(new RegExp()) => true
  isReg(![]) => false
 */
export declare const isReg: (data: any) => boolean;
/**
 * @description: 判断Error类型
 * @author: wuxh
 * @Date: 2020-05-06 13:53:16
 * @param {data} any
 * @return: Boolean
 * @example:
  isError(new Error()) => true
  isError(![]) => false
 */
export declare const isError: (data: any) => boolean;
/**
 * @description: 判断Object类型
 * @author: wuxh
 * @Date: 2020-05-06 13:53:16
 * @param {data} any
 * @return: Boolean
 * @example:
  isObject({}) => true
  isObject(![]) => false
 */
export declare const isObject: (data: any) => boolean;
/**
 * @description: 手机号校验
 * @author: wuxh
 * @Date: 2020-06-09 09:21:15
 * @param {type}
 * @return: boolean
 * @example:
  isPhone('13419595634') => true
 */
export declare const isPhone: (phone: string) => boolean;
/**
 * @description: 校验是否为邮箱地址
 * @author: wuxh
 * @Date: 2020-06-09 09:49:29
 * @param {type}
 * @return: boolean
 * @example:
  isEmail('wxingheng@outlook.com') => true
 */
export declare const isEmail: (str: string) => boolean;
/**
 * @description: 判断 js是否是false， 0除外。
 * @author: wuxh
 * @Date: 2021-09-02 22:01:50
 * @param {any} value
 * @return {*} value === 0 ? false : !value
 * @example:
 isFalsy('') => true
 isFalsy(0) => false
 isFalsy(null) => true
 isFalsy(undefined) => true
 */
export declare const isFalsy: (value: any) => boolean;
/**
 * @description: 判断是否为空 undefined || null || ""
 * @author: wuxh
 * @Date: 2021-09-02 22:03:36
 * @param {any} value
 * @return {*} boolean
 * @example:
 isVoid(0) => false
 isVoid(undefined) => true
 isVoid('') => true
 isVoid(null) => true
 isVoid() => true
 */
export declare const isVoid: (value: any) => boolean;
