/**
 * 排序相关常量配置（全局只读）
 *
 * DESC: 降序
 *  - 取值：0
 *
 * ASC: 升序
 *  - 取值：1
 *
 * RANDOM: 随机排序
 *  - 取值：2
 */
declare const SORT: Record<string, number>;

/**
 * 数学计算相关常量配置（全局只读）
 *
 * ROUND: 正常四舍五入
 *  - 取值：0
 *  - 示例：1.354保留两位是1.35；1.355保留两位是1.36
 *
 * ROUND_FLOOR: 向下舍出
 *  - 取值：1
 *  - 示例：1.354保留两位是1.35；1.355保留两位是1.35
 */
declare const MATH: Record<string, any>;

/**
 * 语言相关常量配置（全局只读）
 *
 * ZH: 中文
 *  - zh
 *
 * EN: 英文
 *  - en
 */
declare const LANG: Record<string, any>;

/**
 * 正则表达式相关常量配置（全局只读）
 *
 * CH: 中文汉字
 * EN: 英文字母
 * LOWER_CASE: 小写字母
 * UPPER_CASE: 大写字母
 * CH_NAME: 中文姓名（2-16位）
 * EN_NAME: 英文姓名（1-20位）
 * NUMBER: 数字（包含正数和负数）
 * INTEGER: 整数（包含：0，正整数和负整数）
 * DECIMAL: 小数（包含正小数和负小数）
 * INT_OR_FLOAT: 正整数或者保留两位小数
 * MOBILE: 手机号码（支持+86）
 * PHONE: 固定电话号码（比如：0755-1111111）
 * EMAIL: 邮箱
 * ID_CARD: 一代15位或二代18位身份证
 * ID_CARD15: 仅校验一代15位身份证
 * ID_CARD18: 仅校验二代18位身份证
 * BANK_CARD: 银行卡号
 * POST_CODE: 邮政编码
 * URL: url地址（可获取主机地址、主机名、端口号、协议、查询参数、hash等信息）
 * IP: ip地址
 * IP6: IPv6地址
 * EXTERNAL: 外链（http、https、mail、tel电话）
 */
declare const REGEXP: Record<string, RegExp>;

/**
 * 日期相关的多语言常量配置（全局只读）
 *
 * AM_PM: 上午/下午多语言配置
 *  - zh: { AM: "上午", PM: "下午" }
 *  - en: { AM: "AM", PM: "PM" }
 *
 * WEEK: 星期多语言配置
 *  - zh.FULL: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]
 *  - zh.SHORT: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"]
 *  - zh.MINI: ["日", "一", "二", "三", "四", "五", "六"]
 *  - en.FULL: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
 *  - en.SHORT: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
 *  - en.MINI: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"]
 *
 * MONTH: 月份多语言配置
 *  - zh.FULL: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"]
 *  - zh.SHORT: ["一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"]
 *  - en.FULL: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
 *  - en.SHORT: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
 *
 * QUARTER: 季度多语言配置
 *  - zh.FULL: ["第一季度", "第二季度", "第三季度", "第四季度"]
 *  - zh.SHORT: ["一季度", "二季度", "三季度", "四季度"]
 *  - zh.MINI: ["一", "二", "三", "四"]
 *  - en.FULL: ["quarter 1st", "quarter 2nd", "quarter 3rd", "quarter 4th"]
 *  - en.SHORT: ["Q1th", "Q2nd", "Q3rd", "Q4th"]
 *  - en.MINI: ["Q1", "Q2", "Q3", "Q4"]
 *
 * OVER_TIME: 剩余时间单位多语言配置
 *  - zh: { YEAR: "年", MONTH: "月", DATE: "日", HOUR: "时", MINUTE: "分", SECOND: "秒", MILLISECOND: "毫秒", DAY: "天", QUARTER: "季度" }
 *  - en: { YEAR: "year", MONTH: "month", DATE: "date", HOUR: "hour", MINUTE: "minute", SECOND: "second", MILLISECOND: "millisecond", DAY: "day", QUARTER: "quarter" }
 *
 * PASS_TIME: 过去时间描述多语言配置
 *  - zh: { YEAR: "年前", MONTH: "个月前", DAY: "天前", BEFORE_YESTERDAY: "前天", YESTERDAY: "昨天", TODAY: "今天", HOUR: "小时前", MINUTE: "分钟前", JUST: "刚刚" }
 *  - en: { YEAR: " year ago", MONTH: " month ago", DAY: " day ago", BEFORE_YESTERDAY: "before yesterday", YESTERDAY: " yesterday", TODAY: " today", HOUR: " hour ago", MINUTE: " minute ago", JUST: " just" }
 *
 * HOLIDAY: 节假日多语言配置
 *  - zh: ["元旦", "春节", "清明节", "劳动节", "端午节", "中秋节", "国庆节"]
 *  - en: ["New Year‘s Day", "Spring Festival", "Tomb Sweeping Day", "Labor Day", "Dragon Boat Festival", "Mid-Autumn Day", "National Day"]
 *
 * ZODIAC: 星座多语言配置
 *  - zh: ["摩羯座", "水瓶座", "双鱼座", "白羊座", "金牛座", "双子座", "巨蟹座", "狮子座", "处女座", "天秤座", "天蝎座", "射手座"]
 *  - en: ["Capricorn", "Aquarius", "Pisces", "Aries", "Taurus", "Gemini", "Cancer", "Leo", "Virgo", "Libra", "Scorpio", "Sagittarius"]
 *
 * CHINESE_ZODIAC: 生肖多语言配置
 *  - zh: ["鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪"]
 *  - en: ["Rat", "Ox", "Tiger", "Rabbit", "Dragon", "Snake", "Horse", "Goat", "Monkey", "Rooster", "Dog", "Pig"]
 *
 * HEAVENLY_STEMS: 天干多语言配置
 *  - zh: ["甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"]
 *  - en: ["Jia", "Yi", "Bing", "Ding", "Wu", "Ji", "Geng", "Xin", "Ren", "Gui"]
 *
 * EARTHLY_BRANCHES: 地支多语言配置
 *  - zh: ["子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"]
 *  - en: ["Zi", "Chou", "Yin", "Mao", "Chen", "Si", "Wu", "Wei", "Shen", "You", "Xu", "Hai"]
 */
declare const DATE: Record<string, any>;

/**
 * 键盘码相关常量配置（全局只读）
 *
 * 字符键：
 *  - 8: Backspace
 *  - 9: Tab
 *  - 13: Enter
 *  - 16: Shift
 *  - 17: Ctrl
 *  - 18: Alt
 *  - 19: Pause
 *  - 20: Caps Lock
 *  - 27: Escape
 *  - 32: Space
 *  - 33: Page Up
 *  - 34: Page Down
 *  - 35: End
 *  - 36: Home
 *  - 37: Left
 *  - 38: Up
 *  - 39: Right
 *  - 40: Down
 *  - 42: Print Screen
 *  - 45: Insert
 *  - 46: Delete
 *
 * 数字键：
 *  - 48: 0
 *  - 49: 1
 *  - 50: 2
 *  - 51: 3
 *  - 52: 4
 *  - 53: 5
 *  - 54: 6
 *  - 55: 7
 *  - 56: 8
 *  - 57: 9
 *
 * 字母键：
 *  - 65: A
 *  - 66: B
 *  - 67: C
 *  - 68: D
 *  - 69: E
 *  - 70: F
 *  - 71: G
 *  - 72: H
 *  - 73: I
 *  - 74: J
 *  - 75: K
 *  - 76: L
 *  - 77: M
 *  - 78: N
 *  - 79: O
 *  - 80: P
 *  - 81: Q
 *  - 82: R
 *  - 83: S
 *  - 84: T
 *  - 85: U
 *  - 86: V
 *  - 87: W
 *  - 88: X
 *  - 89: Y
 *  - 90: Z
 *
 * window 相关键：
 *  - 91: Windows
 *  - 93: Right Click
 *
 * 数字小键盘（Numpad）：
 *  - 96: Numpad 0
 *  - 97: Numpad 1
 *  - 98: Numpad 2
 *  - 99: Numpad 3
 *  - 100: Numpad 4
 *  - 101: Numpad 5
 *  - 102: Numpad 6
 *  - 103: Numpad 7
 *  - 104: Numpad 8
 *  - 105: Numpad 9
 *  - 106: Numpad *
 *  - 107: Numpad +
 *  - 109: Numpad -
 *  - 110: Numpad .
 *  - 111: Numpad /
 *
 * F功能键：
 *  - 112: F1
 *  - 113: F2
 *  - 114: F3
 *  - 115: F4
 *  - 116: F5
 *  - 117: F6
 *  - 118: F7
 *  - 119: F8
 *  - 120: F9
 *  - 121: F10
 *  - 122: F11
 *  - 123: F12
 *
 * 特殊符号/功能键：
 *  - 144: Num Lock
 *  - 145: Scroll Lock
 *  - 182: My Computer
 *  - 183: My Calculator
 *  - 186: ;
 *  - 187: =
 *  - 188: ,
 *  - 189: -
 *  - 190: .
 *  - 191: /
 *  - 192: `
 *  - 219: [
 *  - 220: \
 *  - 221: ]
 *  - 222: '
 */
declare const KEYCODE: Record<string, string>;

/**
 * 身份证号相关常量配置（全局只读）
 *
 * PROVINCE: 身份证号前两位对应的省份/地区编码映射
 *  - 11: 北京
 *  - 12: 天津
 *  - 13: 河北
 *  - 14: 山西
 *  - 15: 内蒙古
 *  - 21: 辽宁
 *  - 22: 吉林
 *  - 23: 黑龙江
 *  - 31: 上海
 *  - 32: 江苏
 *  - 33: 浙江
 *  - 34: 安徽
 *  - 35: 福建
 *  - 36: 江西
 *  - 37: 山东
 *  - 41: 河南
 *  - 42: 湖北
 *  - 43: 湖南
 *  - 44: 广东
 *  - 45: 广西
 *  - 46: 海南
 *  - 50: 重庆
 *  - 51: 四川
 *  - 52: 贵州
 *  - 53: 云南
 *  - 54: 西藏
 *  - 61: 陕西
 *  - 62: 甘肃
 *  - 63: 青海
 *  - 64: 宁夏
 *  - 65: 新疆
 *  - 71: 台湾
 *  - 81: 香港
 *  - 82: 澳门
 *  - 91: 国外
 *
 * SEX: 身份证号解析的性别映射
 *  - MAN: 男
 *  - WOMAN: 女
 */
declare const ID_CARD: Record<string, any>;

/**
 * 字符串中是否包含指定的元素
 * @param {string} value 包含的元素
 * @param {string} str 查找的字符串
 * @returns {boolean} 返回true和false
 */
declare function inString(value: string, str: string): boolean;
/**
 * 去除字符串前后位置空格
 * @param {string} value 参数
 * @returns {string} 返回处理后的字符串
 */
declare function trim(value: string): string;
/**
 * 去除字符串开始位置的空格
 * @param {string} value 参数
 * @returns {string} 返回处理后的字符串
 */
declare function trimStart(value: string): string;
/**
 * 去除字符串结束位置的空格
 * @param {string} value 参数
 * @returns {string} 返回处理后的字符串
 */
declare function trimEnd(value: string): string;
/**
 * 去除字符串中全部的空格
 * @param {string} value 参数
 * @returns {string} 返回处理后的字符串
 */
declare function trimAll(value: string): string;
/**
 * 替换所有指定字符串为新的字符串
 * @param {string} value 参数
 * @param {string} oldSubstr 需要替换的字符串
 * @param {string} newSubstr 替换后的字符串
 * @returns {string} 返回处理后的字符串
 */
declare function replaceAll(value: string, oldSubstr: string, newSubstr: string): string;
/**
 * 字符串转大写
 * @param {string} value 参数
 * @returns {string} 返回处理后的字符串
 */
declare function toUpperCase(value: string): string;
/**
 * 字符串转小写
 * @param {string} value 参数
 * @returns {string} 返回处理后的字符串
 */
declare function toLowerCase(value: string): string;
/**
 * 转为 snake_case 下划线命名
 * @description 支持 驼峰命名，短横命名，帕斯卡命名
 * @param {string} value 参数
 * @returns {string} 返回处理后的字符串
 */
declare function toSnakeCase(value: string): string;
/**
 * 转为 kebab-case 短横命名
 * @description 支持 下划线，驼峰命名，帕斯卡命名
 * @param {string} value 参数
 * @returns {string} 返回处理后的字符串
 */
declare function toKebabCase(value: string): string;
/**
 * 转为 camelCase 驼峰命名
 * @description 支持 下划线命名，短横命名，帕斯卡命名
 * @param {string} value 参数
 * @returns {string} 返回处理后的字符串
 */
declare function toCamelCase(value: string): string;
/**
 * 转为 PascalCase 帕斯卡命名
 * @description 支持 下划线命名，短横命名，驼峰命名
 * @param {string} value 参数
 * @returns {string} 返回处理后的字符串
 */
declare function toPascalCase(value: string): string;
/**
 * 数字前补齐0达到指定位数
 * @description 相当于原生的 padStart(2,'0')
 * @param {number|string} value 补零的数字
 * @param {number} maxLength 补齐0后的最大长度，默认2位
 * @returns {string} 返回补0后指定位数的字符串
 */
declare function padZeroStart(value: string | number, maxLength?: number): string;
/**
 * 数字后补齐0达到指定位数
 * @description 相当于原生的 padEnd(2,'0')
 * @param {number|string} value 补零的数字
 * @param {number} maxLength 补齐0后的最大长度，默认2位
 * @returns {string} 返回补0后指定位数的字符串
 */
declare function padZeroEnd(value: string | number, maxLength?: number): string;
/**
 * 格式化为标题样式
 * @param {string} value 字符串值
 * @returns {string} 返回格式化后的标题样式
 */
declare function formatTitle(value: string): string;
/**
 * 格式化字符串模版
 * @param {string} value 字符串值
 * @param {Object} data 模版数据
 * @returns {string} 返回格式化后的模版字符串
 */
declare function formatTemplate(value: string, data: Record<any, any>): string;
/**
 * 格式化千分位数字
 * @description 支持任意数据传参，如果非数字则不会格式化，并返回原数据
 * @param {number|string} num 数字
 * @returns {string} 返回格式化后的千分位数字
 */
declare function formatThousand(num: number | string): string;
/**
 * 格式化人民币金额大写
 * @param {number|string} money 金额
 * @returns {string} 返回金额大写
 */
declare function formatRmbChinese(money: number | string): string;

/**
 * 转为数字类型
 * @description 解决部分浏览器在转换 '08','09'等是0开头时被默认转8进制问题
 * @param {string|number} value 转换的值
 * @param {number} radix 进制数，默认10进制
 * @returns {number} 返回转换后的数字
 */
declare function parseInt(value: string | number, radix?: number): number;
/**
 * 转为小数类型
 * @param {string|number} value 转换的值
 * @returns {number} 返回转换后的数字
 */
declare function parseFloat(value: string | number): number;

/**
 * 数组最小值
 * @param {Array} array 数组
 * @returns {number} 返回最小值
 */
declare function arrayMin(array: any[]): number;
/**
 * 数组最大值
 * @param {array} array 数组
 * @returns {number} 返回最大值
 */
declare function arrayMax(array: any[]): number;
/**
 * 数组求和
 * @param {Array} array 数组
 * @returns {number} 返回和
 */
declare function arraySum(array: any[]): number;
/**
 * 数组求平均值
 * @param {Array} array 数组
 * @returns {number} 返回平均数
 */
declare function arrayAvg(array: any[]): number;
/**
 * 数组中是否包含指定的元素
 * @param {string|number} value 元素
 * @param {Array} array 查找的数组
 * @returns {boolean} 返回结果
 */
declare function inArray(value: string | number, array: any[]): boolean;
/**
 * 比较两个数组是否相等
 * @param {Array} array1 数组1
 * @param {Array} array2 数组2
 * @returns {boolean} 返回结果
 */
declare function arrayEquals(array1: any[], array2: any[]): boolean;
/**
 * 生成指定长度的数组
 * @param {number} length 长度，默认 0
 * @returns {Array} 返回数组
 */
declare function arrayCreate(length?: number): number[];
/**
 * 数组指定位置添加元素
 * @description 如果数组为空，则在0位置添加元素
 * @param {Array} array 数组
 * @param {number} index 下标位置，默认0
 * @param {*} value 添加的元素
 * @returns {Array} 返回操作后的数组
 */
declare function arrayInsert(array?: any[], index?: number, value?: any): any[];
/**
 * 数组指定位置前面添加元素
 * @description 如果数组为空，则在0位置添加元素
 * @param {Array} array 数组
 * @param {number} index 下标位置，默认0
 * @param {*} value 添加的元素
 * @returns {Array} 返回操作后的数组
 */
declare function arrayInsertBefore(array?: any[], index?: number, value?: any): any[];
/**
 * 数组指定位置后面添加元素
 * @description 如果数组为空，则在0位置添加元素
 * @param {Array} array 数组
 * @param {number} index 下标位置，默认0
 * @param {*} value 添加的元素
 * @returns {Array} 返回操作后的数组
 */
declare function arrayInsertAfter(array?: any[], index?: number, value?: any): any[];
/**
 * 数组指定位置删除元素
 * @param {Array} array 数组
 * @param {number} index 下标位置，默认0
 * @returns {Array} 返回操作后的数组
 */
declare function arrayRemove(array?: any[], index?: number): any[];
/**
 * 数组指定位置前面删除元素
 * @param {Array} array 数组
 * @param {number} index 下标位置，默认0
 * @returns {Array} 返回操作后的数组
 */
declare function arrayRemoveBefore(array?: any[], index?: number): any[];
/**
 * 数组指定位置后面删除元素
 * @param {Array} array 数组
 * @param {number} index 下标位置，默认0
 * @returns {Array} 返回操作后的数组
 */
declare function arrayRemoveAfter(array?: any[], index?: number): any[];
/**
 * 数组置顶
 * @param {Array} array 数组
 * @param {number} index 下标位置，默认0
 * @returns {Array} 返回操作后的数组
 */
declare function arrayTop(array?: any[], index?: number): any[];
/**
 * 数组置尾
 * @param {Array} array 数组
 * @param {number} index 下标位置，默认0
 * @returns {Array} 返回操作后的数组
 */
declare function arrayBottom(array?: any[], index?: number): any[];
/**
 * 数组向上移动
 * @param {Array} array 数组
 * @param {number} index 下标位置，默认0
 * @returns {Array} 返回操作后的数组
 */
declare function arrayUp(array?: any[], index?: number): any[];
/**
 * 数组向下移动
 * @param {Array} array 数组
 * @param {number} index 下标位置，默认0
 * @returns {Array} 返回操作后的数组
 */
declare function arrayDown(array?: any[], index?: number): any[];
/**
 * 数组交换元素
 * @param {Array} array 数组
 * @param {number} sourceIndex 原索引
 * @param {number} targetIndex 目标索引
 * @returns {Array} 返回操作后的数组
 */
declare function arraySwap(array: any[], sourceIndex: number, targetIndex: number): any[];
/**
 * 数组排序
 * @param {Array} array 数组
 * @param {number} mode 排序模式，参考常量集合中 数组常量，默认是升序
 * @returns {Array} 返回操作后的数组
 */
declare function arraySort(array: any[], mode?: number): any[];
/**
 * 数组属性混合排序
 * @description 排序默认为asc升序
 * @param {Array} array 数组
 * @param {Array} props 排序的属性
 * @returns {Array} 返回操作后的数组
 */
declare function arraySortBy(array: any[], props: any[]): any[];
/**
 * 数组元素去重
 * @param {Array} array 数组
 * @returns {Array} 返回操作后的数组
 */
declare function arrayUnique(array: any[]): any[];
/**
 * 数组打乱元素
 * @description 可以适用于一些抽奖人员列表打乱顺序
 * @param {Array} array 数组
 * @returns {Array} 返回操作后的数组
 */
declare function arrayShuffle(array: any[]): any[];
/**
 * 普通数组转树形结构
 * @description 包含id和pid属性关系的一维数组，转为children的树形结构
 * @param {Array} array 数组
 * @param {Object} setting 配置项
 * @returns {Array} 返回树形节点
 */
declare function arrayToTree(array: any[], setting?: {
    key: string;
    parentKey: string;
    childrenKey: string;
}): any[];
/**
 * 树形结构转普通数组
 * @param {Array} nodes 树形节点
 * @param {Object} setting 配置项
 * @returns {Array} 返回普通数组
 */
declare function treeToArray(nodes: any[], setting?: {
    childrenKey: string;
}): any[];
/**
 * 数组求并集
 * @description 数组1 和 数组2 合并一起的元素集合
 * @param {Array} array1 数组1
 * @param {Array} array2 数组2
 * @returns {Array} 返回数组
 */
declare function arrayUnion(array1: any[], array2: any[]): any[];
/**
 * 数组求交集
 * @description 数组1 和 数组2 相同的元素集合
 * @param {Array} array1 数组1
 * @param {Array} array2 数组2
 * @returns {Array} 返回数组
 */
declare function arrayIntersect(array1: any[], array2: any[]): any[];
/**
 * 数组求差集
 * @description 数组1 中不包含 数组2 的元素集合
 * @param {Array} array1 数组1
 * @param {Array} array2 数组2
 * @returns {Array} 返回数组
 */
declare function arrayDifference(array1: any[], array2: any[]): any[];
/**
 * 数组求补集
 * @description 数组1 和 数组2 不相同的元素集合
 * @param {Array} array1 数组1
 * @param {Array} array2 数组2
 * @returns {Array} 返回数组
 */
declare function arrayComplement(array1: any[], array2: any[]): any[];

/**
 * map转object
 * @param {Map} map 参数
 * @returns {Object} 返回Object
 */
declare function mapToObject(map: Map<any, any>): Record<any, any>;
/**
 * map转json字符串
 * @param {Map} map 参数
 * @returns {string} 返回Json字符串
 */
declare function mapToJson(map: Map<any, any>): string;
/**
 * object转map
 * @param {Object} obj 参数
 * @returns {Map} 返回Map
 */
declare function objectToMap(obj: Record<any, any>): Map<any, any>;
/**
 * json字符串转map
 * @param {string} json json字符串
 * @returns {Map} 返回Map
 */
declare function jsonToMap(json: string): Map<any, any>;
/**
 * json对象转json字符串
 * @param {Object} json json对象
 * @param {boolean} replacer 是否处理循环引用
 * @returns {string} 返回Json字符串
 */
declare function stringifyJson(json: Record<any, any>, replacer?: boolean): string;
/**
 * json字符串转json对象
 * @param {string} json json字符串
 * @returns {Object} 返回Json对象
 */
declare function parseJson(json: string): Record<any, any> | null;
/**
 * 浅拷贝数据
 * @param {*} source 拷贝的数据
 * @returns {*} 返回浅拷贝的数据
 */
declare function clone(source: any): any;
/**
 * 深拷贝数据
 * @param {*} source 拷贝的数据
 * @returns {*} 返回深拷贝的数据
 */
declare function cloneDeep(source: any): any;
/**
 * 比较两个对象是否相等
 * @description 方法只能对比简单的对象，不能包含function，另外对象的属性顺序不一致也是相等的
 * @param {Object} obj1 对象1
 * @param {Object} obj2 对象2
 * @returns {boolean} 返回true和false
 */
declare function objectEquals(obj1: Record<any, any>, obj2: Record<any, any>): boolean;
/**
 * 合并对象
 * @param {Object} target 目标对象
 * @param {Object[]} source 原对象列表
 * @returns {Object} 返回合并后的对象
 */
declare function merge(target: Record<any, any>, ...source: Record<any, any>[]): any;
/**
 * 根据字符串属性路径获取目标对象的值
 * @example
 * let res = {code:200, data:{rows:[], pages:{current:1,pageSize:20}}}
 * this._getValueByPath(res, 'data.pages.pageSize'); // 这里会输出20
 * @param {Object} target 目标对象
 * @param {string} path 字符串属性路径
 * @returns {*} 返回目标对象的值
 */
declare function getValueByPath(target: Record<any, any>, path?: string): any;
/**
 * 根据字符串属性路径设置目标对象的值
 * @example
 * let res = {code:200, data:{rows:[], pages:{current:1,pageSize:20}}}
 * this._setValueByPath(res, 'data.pages.pageSize', 30); // 打印res对象会发现pageSize的值改为了30
 * @param {Object} target 目标对象
 * @param {string} path 字符串属性路径
 * @param {*} value 值
 * @returns {*} 返回修改过后的目标对象
 */
declare function setValueByPath(target: Record<any, any>, path: string | undefined, value: any): Record<any, any>;

/**
 * @module 函数
 */
/**
 * 防抖函数
 * @description 事件执行后，在延迟时间内如果再次执行，会清空定时器重新延迟执行，举例：用户在输入框进行输入搜索，最终是会获取到最后一次输入，节约请求资源
 * @param {Function} fn 目标函数
 * @param {number} delay 延迟时间，单位毫秒，默认 1*1000 毫秒
 * @param {boolean} immediate 是否立即执行，默认true
 * @returns {Function} 返回function()
 */
declare function debounce<T extends (...args: any[]) => any>(fn: T, delay?: number, immediate?: boolean): (...args: Parameters<T>) => ReturnType<T> | void;
/**
 * 节流函数
 * @description 高频触发时，在指定时间间隔内只执行一次，举例：监听页面滚动，不会频繁触发，只会在固定时间内获取一次
 * @param {Function} fn 目标函数
 * @param {number} interval 时间间隔，单位毫秒，默认1000毫秒
 * @returns {Function} 返回function()
 */
declare function throttle<T extends (...args: any[]) => any>(fn: T, interval?: number): (...args: Parameters<T>) => ReturnType<T> | void;
/**
 * 睡眠延迟执行
 * @description 需要配合 async/await 来达到延迟效果
 * @param {number} delay 延迟时间，单位毫秒，默认1000毫秒
 */
declare function sleep(delay?: number): Promise<unknown>;

/**
 日期配置类型
 @param format 日期格式字符串，支持的占位符如下：
  | 占位符 | 说明 | 示例（2025-01-05 08:05:08 周一） |
  |--------|-----------------------|---------------------------------|
  | yyyy | 4 位年份 | 2025 |
  | yy | 2 位年份 | 25 |
  | MM | 2 位月份（补 0） | 01 |
  | M | 1 位月份（不补 0） | 1 |
  | dd | 2 位日期（补 0） | 05 |
  | d | 1 位日期（不补 0） | 5 |
  | HH | 24 小时制（2 位，补 0） | 08 |
  | H | 24 小时制（1 位，不补 0）| 8 |
  | hh | 12 小时制（2 位，补 0） | 08 |
  | h | 12 小时制（1 位，不补 0）| 8 |
  | mm | 2 位分钟（补 0） | 05 |
  | m | 1 位分钟（不补 0） | 5 |
  | ss | 2 位秒数（补 0） | 08 |
  | s | 1 位秒数（不补 0） | 8 |
  | SSS | 3 位毫秒（补 0） | 123 |
  | S | 1 位毫秒（不补 0） | 1 |
  | E | 周几（迷你名） | 一（zh） / Mon（en） |
  | EE | 周几（短名） | 周一（zh） / Mon（en） |
  | EEE | 周几（全名） | 星期一（zh） / Monday（en） |
  | Q | 季度（迷你名） | 1（zh） / 1（en） |
  | QQ | 季度（短名） | Q1（zh） / Q1（en） |
  | QQQ | 季度（全名） | 第一季度（zh） / Quarter 1（en）|
  | a | 上午 / 下午（小写） | am /pm |
  | A | 上午 / 下午（大写） | AM / PM |
  | aa | 上午 / 下午（中文） | 上午 / 下午 |
  | AA | 上午 / 下午（中文大写） | 上午 / 下午 |
 @example
 yyyy-MM-dd HH:mm:ss → 2025-01-05 08:05:08
 yyyy-M-d h:m:s → 2025-1-5 8:5:8
 yyyy-MM-dd EE → 2025-01-05 周一
 @param lang 语言，可选值：zh（默认）/ en
 */
interface DateOptions {
    format?: string;
    lang?: string;
}
/**
 * 今天
 *@returns {string} 返回日期字符串
 */
declare function today(): string;
/**
 * 昨天
 * @returns {string} 返回日期字符串
 */
declare function yesterday(): string;
/**
 * 明天
 *@returns {string} 返回日期字符串
 */
declare function tomorrow(): string;
/**
 * 上周（7天前日期）
 * @param {Date} date 日期参数，默认当前日期
 * @returns {string} 返回日期字符串
 */
declare function lastWeek(date?: Date): string;
/**
 * 下周（7天后日期）
 * @param {Date} date 日期参数，默认当前日期
 * @returns {string} 返回日期字符串
 */
declare function nextWeek(date?: Date): string;
/**
 * 上个月（30天前日期）
 * @param {Date} date 日期参数，默认当前日期
 * @returns {string} 返回日期字符串
 */
declare function lastMonth(date?: Date): string;
/**
 * 下个月（30天后日期）
 * @param {Date} date 日期参数，默认当前日期
 * @returns {string} 返回日期字符串
 */
declare function nextMonth(date?: Date): string;
/**
 * 上一年（365天前日期）
 * @param {Date} date 日期参数，默认当前日期
 * @returns {string} 返回日期字符串
 */
declare function lastYear(date?: Date): string;
/**
 * 下一年（365天后日期）
 * @param {Date} date 日期参数，默认当前日期
 * @returns {string} 返回日期字符串
 */
declare function nextYear(date?: Date): string;
/**
 * 是否为上午
 * @param {Date} date 日期参数，默认当前日期
 * @returns {boolean} 返回结果
 */
declare function isAM(date?: Date): boolean;
/**
 * 是否为下午
 * @param {Date} date 日期参数，默认当前日期
 * @returns {boolean} 返回结果
 */
declare function isPM(date?: Date): boolean;
/**
 * 是否为今天
 * @param {Date} date 日期参数，默认当前日期
 * @returns {boolean} 返回结果
 */
declare function isToday(date?: Date): boolean;
/**
 * 是否为昨天
 * @param {Date} date 日期参数，默认当前日期
 * @returns {boolean} 返回结果
 */
declare function isYesterday(date?: Date): boolean;
/**
 * 是否为前天
 * @param {Date} date 日期参数，默认当前日期
 * @returns {boolean} 返回结果
 */
declare function isBeforeYesterday(date?: Date): boolean;
/**
 * 是否为明天
 * @param {Date} date 日期参数，默认当前日期
 * @returns {boolean} 返回结果
 */
declare function isTomorrow(date?: Date): boolean;
/**
 * 是否为后天
 * @param {Date} date 日期参数，默认当前日期
 * @returns {boolean} 返回结果
 */
declare function isAfterTomorrow(date?: Date): boolean;
/**
 * 是否为工作日
 * @param {Date} date 日期参数，默认当前日期
 * @returns {boolean} 返回结果
 */
declare function isWorkday(date?: Date): boolean;
/**
 * 是否为周末（周六和周日）
 * @param {Date} date 日期参数，默认当前日期
 * @returns {boolean} 返回结果
 */
declare function isWeekend(date?: Date): boolean;
/**
 * 是否为本周第一天
 * @param {Date} date 日期参数，默认当前日期
 * @returns {boolean} 返回结果
 */
declare function isFirstDayOfWeek(date?: Date): boolean;
/**
 * 是否为本周最后一天
 * @param {Date} date 日期参数，默认当前日期
 * @returns {boolean} 返回结果
 */
declare function isLastDayOfWeek(date?: Date): boolean;
/**
 * 是否为本月第一天
 * @param {Date} date 日期参数，默认当前日期
 * @returns {boolean} 返回结果
 */
declare function isFirstDayOfMonth(date?: Date): boolean;
/**
 * 是否为本月最后一天
 * @param {Date} date 日期参数，默认当前日期
 * @returns {boolean} 返回结果
 */
declare function isLastDayOfMonth(date?: Date): boolean;
/**
 * 是否为本年第一天
 * @param {Date} date 日期参数，默认当前日期
 * @returns {boolean} 返回结果
 */
declare function isFirstDayOfYear(date?: Date): boolean;
/**
 * 是否为本年最后一天
 * @param {Date} date 日期参数，默认当前日期
 * @returns {boolean} 返回结果
 */
declare function isLastDayOfYear(date?: Date): boolean;
/**
 * 是否为闰年
 * @description 闰年366天，平年365天
 * @param {Date} date 日期参数，默认当前日期
 * @returns {boolean} 返回结果
 */
declare function isLeapYear(date?: Date): boolean;
/**
 * 是否为平年
 * @description 闰年366天，平年365天
 * @param {Date} date 日期参数，默认当前日期
 * @returns {boolean} 返回结果
 */
declare function isCommonYear(date?: Date): boolean;
/**
 * 是否在日期之前
 * @param {Date} startDate 开始日期
 * @param {Date} endDate 结束日期，默认当前日期
 * @returns {boolean} 返回结果
 */
declare function isBefore(startDate: Date, endDate?: Date): boolean;
/**
 * 是否在日期之后
 * @param {Date} startDate 开始日期
 * @param {Date} endDate 结束日期，默认当前日期
 * @returns {boolean} 返回结果
 */
declare function isAfter(startDate: Date, endDate?: Date): boolean;
/**
 * 是否在两个日期之间
 * @param {Date} date 要比较的日期
 * @param {Date} startDate 开始日期
 * @param {Date} endDate 结束日期
 * @returns {boolean} 返回结果
 */
declare function isBetween(date: Date, startDate: Date, endDate: Date): boolean;
/**
 * 两个日期是否为同一天
 * @param {Date} startDate 开始日期
 * @param {Date} endDate 结束日期
 * @returns {boolean} 返回结果
 */
declare function isSame(startDate: Date, endDate: Date): boolean;
/**
 * 两个日期是否为同一周
 * @param {Date} startDate 开始日期
 * @param {Date} endDate 结束日期
 * @returns {boolean} 返回结果
 */
declare function isSameWeek(startDate: Date, endDate: Date): boolean;
/**
 * 两个日期是否为同一个月
 * @param {Date} startDate 开始日期
 * @param {Date} endDate 结束日期
 * @returns {boolean} 返回结果
 */
declare function isSameMonth(startDate: Date, endDate: Date): boolean;
/**
 * 两个日期是否为同一年
 * @param {Date} startDate 开始日期
 * @param {Date} endDate 结束日期
 * @returns {boolean} 返回结果
 */
declare function isSameYear(startDate: Date, endDate: Date): boolean;
/**
 * 两个日期是否相同或之前
 * @param {Date} startDate 开始日期
 * @param {Date} endDate 结束日期
 * @returns {boolean} 返回结果
 */
declare function isSameOrBefore(startDate: Date, endDate: Date): boolean;
/**
 * 两个日期是否相同或之后
 * @param {Date} startDate 开始日期
 * @param {Date} endDate 结束日期
 * @returns {boolean} 返回结果
 */
declare function isSameOrAfter(startDate: Date, endDate: Date): boolean;
/**
 * 获得此刻的日期
 * @returns {Date} 返回日期
 */
declare function getNow(): Date;
/**
 * 获得当前日期字符串
 * @param {Date} date 日期参数，默认当前日期
 * @param options 配置项 配置项
 * @returns {string} 返回日期字符串
 */
declare function getDate(date?: Date, options?: DateOptions): string;
/**
 * 获得当前日期时间字符串
 * @param {Date} date 日期参数，默认当前日期
 * @param options 配置项 配置项
 * @returns {string} 返回日期时间字符串
 */
declare function getDateTime(date?: Date, options?: DateOptions): string;
/**
 * 获取当前时间戳
 * @param {Date} date 日期参数，默认当前日期
 * @returns {number} 返回时间戳
 */
declare function getTimestamp(date?: Date): number;
/**
 * 获取当前Unix时间戳
 * @param {Date} date 日期参数，默认当前日期
 * @returns {number} 返回Unix时间戳
 */
declare function getUnixTimestamp(date?: Date): number;
/**
 * 获得当前日期的对象形式
 * @param {Date} date 日期参数，默认当前日期
 * @returns {Object} 返回日期的对象形式
 */
declare function getDateObject(date?: Date): {
    year: number;
    month: number;
    date: number;
    hours: number;
    minutes: number;
    seconds: number;
    milliseconds: number;
};
/**
 * 获得当前日期的数组形式
 * @param {Date} date 日期参数，默认当前日期
 * @returns {Object} 返回日期的数组形式
 */
declare function getDateArray(date?: Date): number[];
/**
 * 获得当前日期是周几
 * @param {Date} date 日期参数，默认当前日期
 * @param options 配置项
 * @returns {number|string} 返回周几，会根据语言返回
 */
declare function getWeek(date?: Date, options?: DateOptions): number | string;
/**
 * 获得当前日期是第几季度
 * @param {Date} date 日期参数，默认当前日期
 * @param options 配置项
 * @returns {number|string} 返回第几季度，会根据语言返回
 */
declare function getQuarter(date?: Date, options?: DateOptions): number | string;
/**
 * 获得当前日期是所在周的第几天
 * @param {Date} date 日期参数，默认当前日期
 * @returns {number|string} 返回天数
 */
declare function getDayOfWeek(date?: Date): number | string;
/**
 * 获得当前日期是所在月的第几天
 * @param {Date} date 日期参数，默认当前日期
 * @returns {number} 返回天数
 */
declare function getDayOfMonth(date?: Date): number;
/**
 * 获得当前日期是所在年的第几天
 * @param {Date} date 日期参数，默认当前日期
 * @returns {number} 返回天数
 */
declare function getDayOfYear(date?: Date): number;
/**
 * 获得当前日期是所在月的第几周
 * @param {Date} date 日期参数，默认当前日期
 * @returns {number} 返回周数
 */
declare function getWeekOfMonth(date?: Date): number;
/**
 * 获得当前日期是所在年的第几周
 * @param {Date} date 日期参数，默认当前日期
 * @returns {number} 返回周数
 */
declare function getWeekOfYear(date?: Date): number;
/**
 * 获得当前日期所在的周共几天
 * @returns {number} 返回天数
 */
declare function getDaysOfWeek(): number;
/**
 * 获得当前日期所在的月共几天
 * @param {Date} date 日期参数，默认当前日期
 * @returns {number} 返回天数
 */
declare function getDaysOfMonth(date?: Date): number;
/**
 * 获得当前日期所在的年共几天
 * @param {Date} date 日期参数，默认当前日期
 * @returns {number} 返回天数
 */
declare function getDaysOfYear(date?: Date): number;
/**
 * 获得当前日期是所在月的第几周
 * @param {Date} date 日期参数，默认当前日期
 * @returns {number} 返回周数
 */
declare function getWeeksOfMonth(date?: Date): number;
/**
 * 获得当前日期是所在年的第几周
 * @param {Date} date 日期参数，默认当前日期
 * @returns {number} 返回周数
 */
declare function getWeeksOfYear(date?: Date): number;
/**
 * 获得当前日期所在周的第一天
 * @param {Date} date 日期参数，默认当前日期
 * @returns {string} 返回日期字符串
 */
declare function getFirstDateOfWeek(date?: Date): string;
/**
 * 获得当前日期所在周的最后一天
 * @param {Date} date 日期参数，默认当前日期
 * @returns {string} 返回日期字符串
 */
declare function getLastDateOfWeek(date?: Date): string;
/**
 * 获取当前日期所在周的所有日期
 * @param {Date} date 日期参数，默认当前日期
 * @returns {string[]} 返回日期数组
 */
declare function getFullDateOfWeek(date?: Date): string[];
/**
 * 获得当前日期所在月的第一天
 * @param {Date} date 日期参数，默认当前日期
 * @returns {string} 返回日期字符串
 */
declare function getFirstDateOfMonth(date?: Date): string;
/**
 * 获得当前日期所在月的最后一天
 * @param {Date} date 日期参数，默认当前日期
 * @returns {string} 返回日期字符串
 */
declare function getLastDateOfMonth(date?: Date): string;
/**
 * 获取当前日期所在月的所有日期
 * @param {Date} date 日期参数，默认当前日期
 * @returns {string[]} 返回日期数组
 */
declare function getFullDateOfMonth(date?: Date): string[];
/**
 * 获取当前日期所在年的第一天
 * @param {Date} date 日期参数，默认当前日期
 * @returns {string} 返回日期字符串
 */
declare function getFirstDateOfYear(date?: Date): string;
/**
 * 获取当前日期所在年的最后一天
 * @param {Date} date 日期参数，默认当前日期
 * @returns {string} 返回日期字符串
 */
declare function getLastDateOfYear(date?: Date): string;
/**
 * 获取当前日期所在年的所有日期
 * @param {Date} date 日期参数，默认当前日期
 * @returns {string} 返回日期字符串
 */
declare function getFullDateOfYear(date?: Date): string[];
/**
 * 计算两个日期相差的天数，不满一天为0
 * @param {Date} startDate 开始日期
 * @param {Date} endDate 结束日期
 * @returns {number} 返回两个日期相差的天数，结果为正数或者负数
 */
declare function getDiffDay(startDate: Date, endDate: Date): number;
/**
 * 计算两个日期相差的周数，不满一周为0
 * @param {Date} startDate 开始日期
 * @param {Date} endDate 结束日期
 * @returns {number} 返回两个日期相差的周数，结果为正数或者负数
 */
declare function getDiffWeek(startDate: Date, endDate: Date): number;
/**
 * 计算两个日期相差的月数，不满一月为0
 * @param {Date} startDate 开始日期
 * @param {Date} endDate 结束日期
 * @returns {number} 返回两个日期相差的月数，结果为正数或者负数
 */
declare function getDiffMonth(startDate: Date, endDate: Date): number;
/**
 * 计算两个日期相差的年数，不满一年为0
 * @param {Date} startDate 开始日期
 * @param {Date} endDate 结束日期
 * @returns {number} 返回两个日期相差的年数，结果为正数或者负数
 */
declare function getDiffYear(startDate: Date, endDate: Date): number;
/**
 * 获得两个日期之间的年月日数组
 * @param {Date} startDate 开始日期
 * @param {Date} endDate 结束日期
 * @returns {Array} 返回年月日数组
 */
declare function getBetweenDates(startDate: Date, endDate: Date): string[];
/**
 * 获得两个日期之间的年月数组
 * @description 支持：日期字符串，日期对象，时间戳，Unix时间戳
 * @param {Date} startDate 开始日期
 * @param {Date} endDate 结束日期
 * @returns {Array} 返回年月数组
 */
declare function getBetweenMonths(startDate: Date, endDate: Date): string[];
/**
 * 获得两个日期之间的年数组
 * @param {Date} startDate 开始日期
 * @param {Date} endDate 结束日期
 * @returns {Array} 返回年数组
 */
declare function getBetweenYears(startDate: Date, endDate: Date): number[];
/**
 * 获得过去时间的字符串显示
 * @description 例如：刚刚，1分钟前，1小时前等
 * @param {Date} date 日期参数
 * @param options 配置项
 * @returns {string} 返回字符串
 */
declare function getPastTime(date: Date, options?: DateOptions): string;
/**
 * 获得剩余时间的字符串显示
 * @description 例如：1天10小时20分钟30秒
 * @param {Date} date 日期参数
 * @param options 配置项
 * @returns {string} 返回字符串
 */
declare function getOverTime(date: Date, options?: DateOptions): string;
/**
 * 通过日期获得年龄
 * @param {Date} date 日期参数
 * @returns {number} 返回周岁年龄
 */
declare function getAge(date: Date): number;
/**
 * 通过日期获得星座
 * @param {Date} date 日期参数
 * @param options 配置项
 * @returns {string} 返回星座
 */
declare function getZodiac(date: Date, options?: DateOptions): string;
/**
 * 通过日期获得生肖
 * @param {Date} date 日期参数
 * @param options 配置项
 * @returns {string} 返回生肖
 */
declare function getChineseZodiac(date: Date, options?: DateOptions): string;
/**
 * 日期加减年
 * @param {Date} date 日期参数，默认当前日期
 * @param {number} num 加减数量，用正数和负数表示；默认+1
 * @returns {Date} 返回加减后的日期
 */
declare function addYear(date?: Date, num?: number): Date;
/**
 * 日期加减月
 * @param {Date} date 日期参数，默认当前日期
 * @param {number} num 加减数量，用正数和负数表示；默认+1
 * @returns {Date} 返回加减后的日期
 */
declare function addMonth(date?: Date, num?: number): Date;
/**
 * 日期加减天
 * @param {Date} date 日期参数，默认当前日期
 * @param {number} num 加减数量，用正数和负数表示；默认+1
 * @returns {Date} 返回加减后的日期
 */
declare function addDate(date?: Date, num?: number): Date;
/**
 * 日期加减小时
 * @param {Date} date 日期参数，默认当前日期
 * @param {number} num 加减数量，用正数和负数表示；默认+1
 * @returns {Date} 返回加减后的日期
 */
declare function addHours(date?: Date, num?: number): Date;
/**
 * 日期加减分钟
 * @param {Date} date 日期参数，默认当前日期
 * @param {number} num 加减数量，用正数和负数表示；默认+1
 * @returns {Date} 返回加减后的日期
 */
declare function addMinutes(date?: Date, num?: number): Date;
/**
 * 日期加减秒
 * @param {Date} date 日期参数，默认当前日期
 * @param {number} num 加减数量，用正数和负数表示；默认+1
 * @returns {Date} 返回加减后的日期
 */
declare function addSeconds(date?: Date, num?: number): Date;
/**
 * 日期加减毫秒
 * @param {Date} date 日期参数，默认当前日期
 * @param {number} num 加减数量，用正数和负数表示；默认+100
 * @returns {Date} 返回加减后的日期
 */
declare function addMillisecond(date?: Date, num?: number): Date;
/**
 * 日期加减周
 * @param {Date} date 日期参数，默认当前日期
 * @param {number} num 加减数量，用正数和负数表示；默认+1
 * @returns {Date} 返回加减后的日期
 */
declare function addWeek(date?: Date, num?: number): Date;
/**
 * 日期加减季度
 * @param {Date} date 日期参数，默认当前日期
 * @param {number} num 加减数量，用正数和负数表示；默认+1
 * @returns {Date} 返回加减后的日期
 */
declare function addQuarter(date?: Date, num?: number): Date;
/**
 * UTC 日期对象转本地时区日期对象
 * @description 将 UTC 时间的 Date 对象转换为本地时间的 Date 对象（时间戳不变，仅调整时区偏移）
 * @param {Date} date UTC 日期对象，默认当前 UTC 时间
 * @returns {Date} 本地时区日期对象（时间戳 = UTC时间戳 + 时区偏移毫秒数）
 * @example
 * // UTC时间：2025-01-26 00:00:00
 * const utcDate = new Date('2025-01-26T00:00:00Z');
 * const localDate = fromDateUTC(utcDate);
 * console.log(toDateString(localDate)); // 2025-01-26 08:00:00（北京本地时间）
 */
declare function fromDateUTC(date?: Date): Date;
/**
 * 本地时区日期转 UTC 日期对象
 * @description 将本地时间的 Date 对象转换为 UTC 时间的 Date 对象（时间戳不变，仅调整时区偏移）
 * @param {Date} date 本地日期对象，默认当前本地时间
 * @returns {Date} UTC 日期对象（时间戳 = 本地时间戳 - 时区偏移毫秒数）
 * @example
 * // 北京本地时间：2025-01-26 08:00:00（东8区）
 * const localDate = new Date('2025-01-26 08:00:00');
 * const utcDate = toDateUTC(localDate);
 * console.log(utcDate.toISOString()); // 2025-01-26T00:00:00.000Z（UTC时间）
 */
declare function toDateUTC(date?: Date): Date;
/**
 * 格式化日期为 UTC 字符串（符合 ISO 8601 标准）
 * @description 直接输出 UTC 时间的字符串，无需手动转换时区
 * @param {Date} date 本地日期对象，默认当前本地时间
 * @param {DateOptions} options 格式化配置，默认 yyyy-MM-dd HH:mm:ss
 * @returns {string} UTC 日期字符串
 * @example
 * const localDate = new Date('2025-01-26 08:00:00');
 * console.log(toUTCString(localDate)); // 2025-01-26 00:00:00
 */
declare function toDateUTCString(date?: Date, options?: DateOptions): string;
/**
 * 日期字符串转为日期对象
 * @description 支持日期字符串，时间戳，Unix时间戳
 * @param {string|number} value 日期参数
 * @returns {Date} 返回日期对象
 */
declare function toDate(value: string | number): Date;
/**
 * 日期对象转为日期字符串
 * @description 支持日期字符串，日期对象，时间戳，unix时间戳
 * @param {Date} date 日期参数
 * @param options 配置项
 * @returns {string} 返回日期字符串
 */
declare function toDateString(date: Date, options?: DateOptions): string;

/**
 * 两个数字相加
 * @param {string|number} arg1 第一个数字
 * @param {string|number} arg2 第二个数字
 * @returns {number} 返回计算后的数字
 */
declare function add(arg1: string | number, arg2: string | number): number;
/**
 * 两个数字相减
 * @param {string|number} arg1 第一个数字
 * @param {string|number} arg2 第二个数字
 * @returns {number} 返回计算后的数字
 */
declare function subtract(arg1: string | number, arg2: string | number): number;
/**
 * 两个数字相乘
 * @param {string|number} arg1 第一个数字
 * @param {string|number} arg2 第二个数字
 * @returns {number} 返回计算后的数字
 */
declare function multiply(arg1: string | number, arg2: string | number): number;
/**
 * 两个数字相除
 * @param {string|number} arg1 第一个数字
 * @param {string|number} arg2 第二个数字
 * @returns {number} 返回计算后的数字
 */
declare function divide(arg1: string | number, arg2: string | number): number;
/**
 * 两个数字取模
 * @param {string|number} arg1 第一个数字
 * @param {string|number} arg2 第二个数字
 * @returns {number} 返回计算后的数字
 */
declare function modulo(arg1: string | number, arg2: string | number): number;
/**
 * 最大公约数
 * @param {string|number} arg1 第一个数字
 * @param {string|number} arg2 第二个数字
 * @returns {number} 返回计算后的数字
 */
declare function gcd(arg1: string | number, arg2: string | number): number;
/**
 * 最小公倍数
 * @param {string|number} arg1 第一个数字
 * @param {string|number} arg2 第二个数字
 * @returns {number} 返回计算后的数字
 */
declare function scm(arg1: string | number, arg2: string | number): number;
/**
 * 强制保留小数位数
 * @description 默认保留两位小数，解决原生的toFixed()会五舍六入的问题
 * @param {string|number} num 数字
 * @param {number} decimals 保留小数的位数，默认2位
 * @param {number} mode 保留小数模式
 * @returns {string} 返回保留后的数字字符串
 */
declare function toFixed(num: string | number, decimals?: number, mode?: number): string;
/**
 * 尽可能保留小数位数
 * @param {string|number} num 数字
 * @param {number} decimals 保留小数的位数，默认2位
 * @param {number} mode 保留小数模式
 * @returns {number} 返回保留后的数字
 */
declare function toDecimal(num: string | number, decimals?: number, mode?: number): number;

/**
 * 正则校验的方法
 * @description 类型为REGEXP对应的正则
 * @param {string} value 校验的参数
 * @param {RegExp} regex 使用的REGEXP中的正则
 * @returns {boolean} 返回校验的结果
 */
declare function regexpTest(value: string, regex: RegExp): boolean;
/**
 * 是中文
 * @param {string} value 校验的参数
 * @returns {boolean} 返回校验的结果
 */
declare function isChinese(value: string): boolean;
/**
 * 是英文
 * @param {string} value 校验的参数
 * @returns {boolean} 返回校验的结果
 */
declare function isEnglish(value: string): boolean;
/**
 * 是外链
 * @description 支持http，https，mail，tel电话
 * @param {string} value 校验的参数
 * @returns {boolean} 返回校验的结果
 */
declare function isExternal(value: string): boolean;
/**
 * 是小写字母
 * @param {string} value 校验的参数
 * @returns {boolean} 返回校验的结果
 */
declare function isLowerCase(value: string): boolean;
/**
 * 是大写字母
 * @param {string} value 校验的参数
 * @returns {boolean} 返回校验的结果
 */
declare function isUpperCase(value: string): boolean;
/**
 * 是11位手机号码
 * @param {string} value 校验的参数
 * @returns {boolean} 返回校验的结果
 */
declare function isMobile(value: string): boolean;
/**
 * 是邮箱
 * @param {string} value 校验的参数
 * @returns {boolean} 返回校验的结果
 */
declare function isEmail(value: string): boolean;
/**
 * 是身份证号码（15-18位）
 * @param {string} value 校验的参数
 * @returns {boolean} 返回校验的结果
 */
declare function isIdCard(value: string): boolean;
/**
 * 是url链接
 * @param {string} value 校验的参数
 * @returns {boolean} 返回校验的结果
 */
declare function isUrl(value: string): boolean;

/**
 * @module 随机数
 */
/**
 * 生成指定大小的随机整数
 * @description n和m参数表示最小和最大范围值，默认0-9之间范围
 * @param {number} min 随机数的最小值，默认 0
 * @param {number} max 随机数的最大值，默认 9
 * @returns {number} 返回指定大小的随机整数
 */
declare function getRandom(min?: number, max?: number): number;
/**
 * 生成固定位数的随机整数
 * @description 默认是1，代表生成0-9之间一位，如果是2，则生成10-99之间两位，以此类推
 * @param {number} len 固定的位数
 * @returns {number} 返回固定位数的随机数
 */
declare function getRandomDigit(len?: number): number;

/**
 * 格式化文件大小自动转为 B，KB，MB，GB
 * @param {number} size 文件的大小，单位byte字节
 * @returns {string} 返回格式化后的字符串
 */
declare function formatFileSize(size: number): string;
/**
 * 获得文件名称
 * @param {string} fileName 文件的全名称，例如：测试图片.jpg
 * @returns {string} 返回文件的名称
 */
declare function getFileName(fileName: string): string | undefined;
/**
 * 获得文件后缀名
 * @param {string} value 文件地址路径或者文件全名称，例如：http://xxx.com/mytest.jpg，测试图片.jpg
 * @returns {string} 返回文件后缀名
 */
declare function getFileSuffix(value: string): string | undefined;
/**
 * file转blob
 * @param {File} file file文件
 * @returns {Promise} 返回Promise的blob
 */
declare function fileToBlob(file: File): Promise<Blob>;
/**
 * file转base64
 * @param {File} file file文件
 * @returns {Promise} 返回Promise的base64
 */
declare function fileToBase64(file: File): Promise<string>;
/**
 * file转url
 * @description 适用于本地上传图片并预览，需要注意 URL.revokeObjectURL(file) 内存释放
 * @param {File} file file文件
 * @returns {Promise} 返回Promise的url
 */
declare function fileToUrl(file: File): Promise<string>;
/**
 * url赚file
 * @param {string} url url地址
 * @returns {Promise} 返回Promise的file
 */
declare function urlToFile(url: string): Promise<File>;
/**
 * blob转file
 * @param {Blob} blob blob数据
 * @param {string} fileName 文件名称，默认以时间戳命名
 * @returns {Promise} 返回Promise的file
 */
declare function blobToFile(blob: Blob, fileName?: string): Promise<File>;
/**
 * blob转文本
 * @param {Blob} blob blob数据
 * @returns {Promise} 返回Promise的文本
 */
declare function blobToText(blob: Blob): Promise<string>;
/**
 * blob转base64
 * @param {Blob} blob blob数据
 * @returns {Promise} 返回Promise的base64
 */
declare function blobToBase64(blob: Blob): Promise<string>;
/**
 * base64转file
 * @param {string} base64 base64数据
 * @param {string} fileName 文件名称，默认以时间戳命名
 * @returns {Promise} 返回Promise的file
 */
declare function base64ToFile(base64: string, fileName?: string): Promise<File>;
/**
 * base64转成blob
 * @param {string} base64 base64数据
 * @returns {Promise} 返回Promise的blob
 */
declare function base64ToBlob(base64: string): Promise<Blob>;
/**
 * 图片url转base64
 * @param {string} imgUrl 图片url地址
 * @returns {Promise} 返回Promise的base64
 */
declare function urlToBase64(imgUrl: string): Promise<string>;
/**
 * 下载blob格式的文件
 * @param {Blob} blob blob数据
 * @param {string} fileName 下载的文件名，不写后缀名则默认为原文件类型
 */
declare function downloadBlobFile(blob: Blob, fileName: string): void;
/**
 * 通过文件url地址下载
 * @param {string} fileUrl url文件地址
 * @param {string} fileName 下载的文件名，不写后缀名则默认为原文件类型
 */
declare function downloadFileUrl(fileUrl: string, fileName: string): void;

/**
 * @module 颜色
 */
/**
 * rgb颜色转hex
 * @param {string} rgb rgb颜色字符串
 * @returns {string} 返回生成的hex颜色
 */
declare function rgbToHex(rgb: string): string;
/**
 * rgba颜色转hex
 * @param {string} rgba rgba颜色字符串
 * @returns {string} 返回生成的hex颜色
 */
declare function rgbaToHex(rgba: string): string;
/**
 * rgba颜色转hsl
 * @param {string} rgba rgb颜色字符串
 * @returns {string} 返回生成的hsl颜色
 */
declare function rgbaToHsl(rgba: string): string;
/**
 * hex颜色转rgb
 * @param {string} hex hex颜色字符串
 * @returns {string} 返回生成的rgb颜色
 */
declare function hexToRgb(hex: string): string;
/**
 * hex颜色转rgba
 * @param {string} hex hex颜色字符串
 * @param {number} opacity 透明度
 * @returns {string} 返回生成的rgba颜色
 */
declare function hexToRgba(hex: string, opacity?: number): string;
/**
 * hex颜色转hsl
 * @param {string} hex hex颜色字符串
 * @returns {string} 返回生成的hsl颜色
 */
declare function hexToHsl(hex: string): string;
/**
 * 随机生成hex颜色
 * @returns {string} 返回生成的十六进制颜色
 */
declare function getDrawHex(): string;
/**
 * 随机生成rgb颜色
 * @returns {string} 返回生成的 rgb 颜色
 */
declare function getDrawRgb(): string;
/**
 * 随机生成rgba颜色
 * @returns {string} 返回生成的 rgba 颜色
 */
declare function getDrawRgba(): string;

/**
 * @module 校验
 */
/**
 * 判断是整数
 * @param {*} value 参数
 * @returns {boolean} result 返回结果
 */
declare function isInteger(value: any): boolean;
/**
 * 判断是小数
 * @param {*} value 参数
 * @returns {boolean} result 返回结果
 */
declare function isDecimal(value: any): boolean;
/**
 * 判断类型是数字 Number
 * @param {*} value 参数
 * @returns {boolean} 返回结果
 */
declare function isNumber(value: any): boolean;
/**
 * 判断类型是字符串 String
 * @param {*} value 参数
 * @returns {boolean} 返回结果
 */
declare function isString(value: any): boolean;
/**
 * 判断类型是数组 Array
 * @param {*} value 参数
 * @returns {boolean} 返回结果
 */
declare function isArray(value: any): boolean;
/**
 * 判断类型是对象 Object
 * @param {*} value 参数
 * @returns {boolean} 返回结果
 */
declare function isObject(value: any): boolean;
/**
 * 判断类型是布尔 boolean
 * @param {*} value 参数
 * @returns {boolean} 返回结果
 */
declare function isBoolean(value: any): boolean;
/**
 * 判断类型是日期 Date
 * @param {*} value 参数
 * @returns {boolean} 返回结果
 */
declare function isDate(value: any): boolean;
/**
 * 判断类型是函数 Function
 * @param {*} value 参数
 * @returns {boolean} 返回结果
 */
declare function isFunction(value: any): boolean;
/**
 * 判断类型是函数字符串 FunctionString
 * @description 支持普通函数，异步函数，箭头函数
 * @param {*} value 参数
 * @returns {boolean} 返回结果
 */
declare function isFunctionString(value: any): boolean;
/**
 * 判断类型是异步函数 AsyncFunction
 * @param {*} value 参数
 * @returns {boolean} 返回结果
 */
declare function isAsyncFunction(value: any): boolean;
/**
 * 判断类型是 Symbol
 * @param {*} value 参数
 * @returns {boolean} 返回结果
 */
declare function isSymbol(value: any): boolean;
/**
 * 判断类型是正则 RegExp
 * @param {*} value 参数
 * @returns {boolean} 返回结果
 */
declare function isRegExp(value: any): boolean;
/**
 * 判断类型是错误 Error
 * @param {*} value 参数
 * @returns {boolean} 返回结果
 */
declare function isError(value: any): boolean;
/**
 * 判断类型是 Promise
 * @param {*} value 参数
 * @returns {boolean} 返回结果
 */
declare function isPromise(value: any): boolean;
/**
 *判断类型是 Map
 * @param {*} value 参数
 * @returns {boolean} 返回结果
 */
declare function isMap(value: any): boolean;
/**
 * 判断类型是 WeakMap
 * @param {*} value 参数
 * @returns {boolean} 返回结果
 */
declare function isWeakMap(value: any): boolean;
/**
 * 判断类型是 Set
 * @param {*} value 参数
 * @returns {boolean} 返回结果
 */
declare function isSet(value: any): boolean;
/**
 * 判断类型是 WeakSet
 * @param {*} value 参数
 * @returns {boolean} 返回结果
 */
declare function isWeakSet(value: any): boolean;
/**
 * 判断类型是 BigInt
 * @param {*} value 参数
 * @returns {boolean} 返回结果
 */
declare function isBigInt(value: any): boolean;
/**
 * 判断类型是 Json
 * @param {*} value 参数
 * @returns {boolean} 返回结果
 */
declare function isJson(value: any): boolean;
/**
 * 判断值为真
 * @param {*} value 校验的参数
 * @returns {boolean} 返回结果
 */
declare function isTrue(value: any): boolean;
/**
 * 判断值为假
 * @param {*} value 校验的参数
 * @returns {boolean} 返回结果
 */
declare function isFalse(value: any): boolean;
/**
 * 判断非数字
 * @param {*} value 参数
 * @returns {boolean} 返回结果
 */
declare function isNaN(value: any): boolean;
/**
 * 判断是数字
 * @description 等同于isNumber()
 * @param {*} value 参数
 * @returns {boolean} 返回结果
 */
declare function isNotNaN(value: any): boolean;
/**
 * 判断对象为空
 * @description 判断值是否为空，如果对象初始化了值则不为空
 * @param {*} value 校验的参数
 * @returns {boolean} 返回结果
 */
declare function isNull(value: any): boolean;
/**
 * 判断对象不为空
 * @description 判断值是否为空，如果对象初始化了值则不为空
 * @param {*} value 校验的参数
 * @returns {boolean} 返回结果
 */
declare function isNotNull(value: any): boolean;
/**
 * 判断值为空
 * @description 判断是否是有意义不为空的值，如果值是{},[]空的数据则为空
 * @param {*} value 校验的参数
 * @returns {boolean} 返回结果
 */
declare function isEmpty(value: any): boolean;
/**
 * 判断值不为空
 * @description 判断是否是有意义不为空的值，如果值是{},[]空的数据则为空
 * @param {*} value 校验的参数
 * @returns {boolean} 返回结果
 */
declare function isNotEmpty(value: any): boolean;
/**
 * 判断值是空白的
 * @description 同时会校验空值，空对象，以及空白符号
 * @param {*} value 校验的参数
 * @returns {boolean} 返回结果
 */
declare function isBlank(value: any): boolean;
/**
 * 判断值不是空白的
 * @description 同时会校验空值，空对象，以及空白符号
 * @param {*} value 校验的参数
 * @returns {boolean} 返回结果
 */
declare function isNotBlank(value: any): boolean;
/**
 * 判断值是undefined
 * @param {*} value 校验的参数
 * @returns {boolean} 返回结果
 */
declare function isUndefined(value: any): boolean;
/**
 * 判断值不是undefined
 * @param {*} value 校验的参数
 * @returns {boolean} 返回结果
 */
declare function isNotUndefined(value: any): boolean;
/**
 * 判断两个值是否相等
 * @param {*} value1 参数1
 * @param {*} value2 参数2
 * @returns {boolean} 返回结果
 */
declare function equals(value1: any, value2: any): boolean;
/**
 * 判断两个值是否相等（忽略大小写）
 * @param {*} value1 参数1
 * @param {*} value2 参数2
 * @returns {boolean} 返回结果
 */
declare function equalsIgnoreCase(value1: any, value2: any): boolean;
/**
 * 深度对比数据
 * @description 可以对比任意数据，对象、数组、日期等也可深度对比，对象不区分先后顺序
 * @param {*} x 数据1
 * @param {*} args 数据2
 * @returns {boolean} 返回对比结果
 */
declare function deepCompare(x: any, ...args: any[]): boolean;

/**
 * 根据keycode获得键名
 * @param  {number} keycode 键值
 * @returns {string} 返回键名
 */
declare function getKeyName(keycode: number): string;
/**
 * 根据keyname获得键值
 * @param  {string} keyname
 * @returns {string} 返回键值
 */
declare function getKeyCode(keyname: string): string | undefined;

/**
 * @module 生成Id
 */
/**
 * 生成UUID
 * @param {Number} len 生成的长度，默认32位
 * @param {Number} radix 进制数，默认16进制
 * @example
 * getUUID() // 输出：0a559343dbbf0e7e6c1de90163e7aa0a
 * @returns {String} 返回字符串
 */
declare function getUUID(len?: number, radix?: number): string;
/**
 * 生成GUID
 * @example
 * getGUID() // 输出：275ec770-0853-6767-4875-7b270220ce9c
 * @returns {String} 返回字符串
 */
declare function getGUID(): string;

/**
 * Base64编码
 * @param str 待编码的UTF8字符串
 * @param urlSafe 是否生成URL安全的Base64（默认false）
 * @returns Base64字符串
 */
declare function base64Encode(str: string, urlSafe?: boolean): string;
/**
 * Base64解码
 * @param str 待解码的Base64字符串
 * @returns 解码后的UTF8字符串
 */
declare function base64Decode(str: string): string;
/**
 * URL安全Base64编码
 * @param str 待编码的UTF8字符串
 * @returns URL安全的Base64字符串
 */
declare function base64EncodeURI(str: string): string;
/**
 * URL安全Base64解码
 * @param str 待解码的URL安全Base64字符串
 * @returns 解码后的UTF8字符串
 */
declare function base64DecodeURI(str: string): string;
/**
 * Uint8Array转Base64字符串
 * @param uint8Array 待编码的字节数组
 * @param urlSafe 是否生成URL安全的Base64（默认false）
 * @returns Base64字符串
 */
declare function base64FromUint8Array(uint8Array: Uint8Array, urlSafe?: boolean): string;
/**
 * Base64字符串转Uint8Array
 * @param base64Str 待解码的Base64字符串
 * @param urlSafe 是否为URL安全的Base64（默认false）
 * @returns 解码后的字节数组
 */
declare function base64ToUint8Array(base64Str: string, urlSafe?: boolean): Uint8Array;
/**
 * 十六进制字符串转Base64字符串
 * @param hexStr 待编码的十六进制字符串
 * @param urlSafe 是否生成URL安全的Base64（默认false）
 * @returns Base64字符串
 */
declare function base64FromHex(hexStr: string, urlSafe?: boolean): string;
/**
 * Base64字符串转十六进制字符串
 * @param base64Str 待解码的Base64字符串
 * @param urlSafe 是否为URL安全的Base64（默认false）
 * @returns 解码后的十六进制字符串
 */
declare function base64ToHex(base64Str: string, urlSafe?: boolean): string;

/**
 * md5 加密
 * @param {string} str 字符串
 * @returns {string} 返回加密后的十六进制字符串
 */
declare function md5(str: string): string;
/**
 * md5 加密
 * @param {string} str 字符串
 * @returns {*} 返回加密后的二进制原始值
 */
declare function md5Raw(str: string): any;
/**
 * md5_hmac 加密
 * @param {string} str 字符串
 * @param {string} key 秘钥
 * @returns {string} 返回加密后的十六进制字符串
 */
declare function md5Hmac(str: string, key: string): string;
/**
 * md5_hmac 加密
 * @param {string} str 字符串
 * @param {string} key 秘钥
 * @returns {string} 返回加密后的二进制原始值
 */
declare function md5HmacRaw(str: string, key: string): any;

/**
 * sha256 加密
 * @param {string} str 字符串
 * @returns {string} 返回加密后的字符串
 */
declare function sha256(str: string): string;
/**
 * sha256_raw 加密
 * @param {string} str 字符串
 * @returns {string} 返回加密后的原始值
 */
declare function sha256Raw(str: string): any;
/**
 * sha256_hmac 加密
 * @param {string} str 字符串
 * @param {string} key 秘钥
 * @returns {string} 返回加密后的字符串
 */
declare function sha256Hmac(str: string, key: string): string;
/**
 * sha256_hmac_raw 加密
 * @param {string} str 字符串
 * @param {string} key 秘钥
 * @returns {string} 返回加密后的原始值
 */
declare function sha256HmacRaw(str: string, key: string): any;
/**
 * sha224 加密
 * @param {string} str 字符串
 * @returns {string} 返回加密后的字符串
 */
declare function sha224(str: string): string;
/**
 * sha224_raw 加密
 * @param {string} str 字符串
 * @returns {string} 返回加密后的原始值
 */
declare function sha224Raw(str: string): any;
/**
 * sha224_hmac 加密
 * @param {string} str 字符串
 * @param {string} key 秘钥
 * @returns {string} 返回加密后的字符串
 */
declare function sha224Hmac(str: string, key: string): string;
/**
 * sha224_hmac_raw 加密
 * @param {string} str 字符串
 * @param {string} key 秘钥
 * @returns {string} 返回加密后的原始值
 */
declare function sha224HmacRaw(str: string, key: string): any;

/**
 * sm3 加密
 * @param {string} str 字符串
 * @returns {string} 返回加密后的字符串
 */
declare function sm3Encrypt(str: string): string;
/**
 * sm3_hmac 加密
 * @param {string} str 字符串
 * @param {string} key 配置
 * @returns {string} 返回加密后的字符串
 */
declare function sm3EncryptHmac(str: string, key: string): string;

declare namespace MODE {
    export { SM4_MODE_ECB as ECB };
    export { SM4_MODE_CBC as CBC };
}
declare namespace OUTPUT {
    export { SM4_OUTPUT_HEX as HEX };
    export { SM4_OUTPUT_UTF8 as UTF8 };
    export { SM4_OUTPUT_ARRAY as ARRAY };
    export { SM4_OUTPUT_UINT8ARRAY as UINT8ARRAY };
    export { SM4_OUTPUT_ARRAYBUFFER as ARRAYBUFFER };
}
declare const SM4_MODE_ECB: "ecb";
declare const SM4_MODE_CBC: "cbc";
declare const SM4_OUTPUT_HEX: "hex";
declare const SM4_OUTPUT_UTF8: "utf8";
declare const SM4_OUTPUT_ARRAY: "array";
declare const SM4_OUTPUT_UINT8ARRAY: "uint8array";
declare const SM4_OUTPUT_ARRAYBUFFER: "arraybuffer";

/**
 * sm4传参和返回的类型，不管是传参还是返回值固定是这几个
 */
type SM4DataType = string | Uint8Array | ArrayBuffer | number[];
/**
 * sm4通用配置
 */
interface SM4Options {
    mode?: keyof typeof MODE;
    iv?: SM4DataType;
    padding?: "pkcs#7";
    output?: keyof typeof OUTPUT;
}
/**
 * sm4 加密
 * @param {string} str 字符串
 * @param {string} key 秘钥
 * @param {Object} options 配置
 * @returns {string} 加密后的字符串
 */
declare function sm4Encrypt(str: string, key: SM4DataType, options?: SM4Options): SM4DataType;
/**
 * sm4 解密
 * @param {string} str 字符串
 * @param {string} key 秘钥
 * @param {Object} options 配置
 * @returns {string} 解密后的数据
 */
declare function sm4Decrypt(str: string, key: SM4DataType, options?: SM4Options): SM4DataType;
/**
 * 生成sm4的key
 * @param {string} inputFormat 输入类型 可以任意字符串，其中固定的uint8array、array、hex这3个字符串，会对应生成类型数据
 * @returns {SM4DataType} 生成的key
 */
declare const generateSM4Key: (inputFormat?: string) => SM4DataType;
/**
 * 生成sm4的iv
 * @param {string} inputFormat 输入类型 可以任意字符串，其中固定的uint8array、array、hex这3个字符串，会对应生成类型数据
 * @returns {SM4DataType} 生成的iv
 */
declare const generateSM4Iv: (inputFormat?: string) => SM4DataType;
declare const SM4: {
    MODE: {
        ECB: string;
        CBC: string;
    };
    PADDING: string;
    OUTPUT: {
        HEX: string;
        UTF8: string;
        ARRAY: string;
        UINT8ARRAY: string;
        ARRAYBUFFER: string;
    };
};

/**
 * @module 脱敏
 */
/**
 * 指定位置的字符串转为星号
 * @param {string|number} value 字符串参数
 * @param {number} start 转换开始位置
 * @param {number} len 显示星号的长度
 * @returns {string} 返回转化后字符串
 */
declare function formatStartOf(value: string, start: number, len: number): string;
/**
 * 姓名中间转为星号
 * @param {string} value 姓名
 * @returns {string} 返回转化后字符串
 */
declare function formatStartOfName(value: string): string;
/**
 * 手机号码固定位数转为星号
 * @param {string} value 手机号码
 * @param {number} start 前缀长度，默认3位
 * @param {number} len 显示星号的长度，默认4位
 * @returns {string} 返回转化后字符串
 */
declare function formatStartOfMobile(value: string, start?: number, len?: number): string;
/**
 * 身份证号码固定位数转为星号
 * @param {string} value 身份证号码
 * @param {number} start 前缀长度，默认4位
 * @param {number} len 显示星号的长度，默认8位
 * @returns {string} 返回转化后字符串
 */
declare function formatStartOfIDCard(value: string, start?: number, len?: number): string;
/**
 * 银行卡号固定位数转为星号
 * @param {string} value 银行卡号
 * @param {number} start 前缀长度，默认4位
 * @param {number} len 显示星号的长度，默认10位
 * @returns {string} 返回转化后字符串
 */
declare function formatStartOfBankCard(value: string, start?: number, len?: number): string;

/**
 * 根据身份证号码获取信息
 * @description 能获取到 籍贯，出生日期，年龄，性别
 * @param {string} idCard 身份证号码，支持一代15位和二代18位
 * @returns {Object} 返回身份证信息对象
 */
declare function getInfoByIDCard(idCard: string): {
    province: string | undefined;
    birthday: string | undefined;
    age: number | undefined;
    sex: string | undefined;
} | undefined;
/**
 * 根据身份证号码获得生日
 * @param {string} idCard 身份证号码，支持一代15位和二代18位
 * @returns {string} 返回生日
 */
declare function getBirthdayByIDCard(idCard: string): string | undefined;
/**
 * 根据身份证号码获得年龄
 * @param {string} idCard 身份证号码，支持一代15位和二代18位
 * @returns {number} 返回年龄
 */
declare function getAgeByIDCard(idCard: string): number | undefined;
/**
 * 根据身份证号码获得性别
 * @param {string} idCard 身份证号码，支持一代15位和二代18位
 * @returns {string} 返回性别
 */
declare function getSexByIDCard(idCard: string): string | undefined;
/**
 * 根据身份证号码获得省份
 * @param {string} idCard 身份证号码，支持一代15位和二代18位
 * @returns {string} 返回省份
 */
declare function getProvinceByIDCard(idCard: string): string | undefined;

/**
 * @module 分页
 */
/**
 * 获得分页起始数
 * @param {Object} pagination 分页参数
 * @returns {Array} 返回起始数
 */
declare function getLimit(pagination?: {
    page: number;
    pageSize: number;
    total: number;
    totalPage: number;
    pagerCount: number;
}): number[];
/**
 * 获得总条数
 * @param {Object} pagination 分页参数
 * @returns {number} 返回总条数
 */
declare function getTotalPage(pagination?: {
    page: number;
    pageSize: number;
    total: number;
    totalPage: number;
    pagerCount: number;
}): number;
/**
 * 获得彩虹分页器
 * @param {Object} pagination 分页参数
 * @param {Function} callback 回调函数
 * @returns {Promise} 返回彩虹分页器数据
 */
declare function getRainbowPager(pagination: {
    page: number;
    pageSize: number;
    total: number;
    totalPage: number;
    pagerCount: number;
} | undefined, callback: (pager: number[]) => void): Promise<number[]>;
/**
 * 获得上一页
 * @param {Object} pagination 分页参数
 * @param {Function} callback 回调函数
 * @returns {Promise} 返回上一页
 */
declare function getPrevPage(pagination: {
    page: number;
    pageSize: number;
    total: number;
    totalPage: number;
    pagerCount: number;
} | undefined, callback: (page: number) => void): Promise<number>;
/**
 * 获得下一页
 * @description 最后一页会根据totalPage参数判断，如果不传此参数，则会根据参数中pageSize和total重新计算总页数
 * @param {Object} pagination 分页参数
 * @param {Function} callback 回调函数
 * @returns {Promise} 返回下一页
 */
declare function getNextPage(pagination: {
    page: number;
    pageSize: number;
    total: number;
    totalPage: number;
    pagerCount: number;
} | undefined, callback: (page: number) => void): Promise<number>;

/**
 * 获得协议名
 * @param {string} url url地址，默认当前url地址
 * @returns {string} 返回协议名
 */
declare function getProtocol(url?: string): string | undefined;
/**
 * 获得主机地址
 * @param {string} url url地址，默认当前url地址
 * @returns {string} 返回主机地址
 */
declare function getHost(url?: string): string | undefined;
/**
 * 获得主机名称
 * @param {string} url url地址，默认当前url地址
 * @returns {string} 返回主机名称
 */
declare function getHostName(url?: string): string | undefined;
/**
 * 获得端口号
 * @param {string} url url地址，默认当前url地址
 * @returns {string} 返回端口号
 */
declare function getPort(url?: string): string | undefined;
/**
 * 获得地址路径
 * @param {string} url url地址，默认当前url地址
 * @returns {string} 返回地址路径
 */
declare function getUrlPath(url?: string): string | undefined;
/**
 * 获得hash字符串
 * @param {string} url url地址，默认当前url地址
 * @returns {string} 返回hash字符串
 */
declare function getUrlHash(url?: string): string | undefined;
/**
 * 获得查询参数字符串
 * @param {string} url url地址，默认当前url地址
 * @returns {string} 返回查询参数字符串
 */
declare function getSearchString(url?: string): string | undefined;
/**
 * 查询参数字符串中是否包含某个参数
 * @param {string} url url地址，默认当前url地址
 * @param {string} name 参数名
 * @returns {boolean} 返回结果
 */
declare function hasSearchParam(url: string | undefined, name: string): boolean;
/**
 * 查询参数字符串中获得某个参数的值
 * @param {string} url url地址，默认当前url地址
 * @param {string} name 参数名
 * @returns {string} 返回查询到的值
 */
declare function getSearchParam(url?: string, name?: string): string | undefined;
/**
 * 查询参数字符串中设置某个参数的值
 * @param {string} name 参数名
 * @param {string|number|Array} value 参数值，如果是数组，则解析为：&ids[0]=1&ids[2]=2
 * @param {string} url url地址，默认当前url地址
 * @returns {string} 返回查询参数字符串
 */
declare function setSearchParam(url: string | undefined, name: string | undefined, value: string | number | number[] | string[]): string;
/**
 * 查询参数字符串转为对象
 * @param {string} url url地址，默认当前url地址
 * @returns {Object} 返回参数对象
 */
declare function parseSearchParam(url?: string): Record<string, any>;
/**
 * 对象转为查询参数字符串
 *  @param {Object} params 参数对象
 *  @param {string} url url地址，如果不为空，则会拼接好查询参数字符串的url地址
 *  @returns {string} 返回参数字符串
 */
declare function stringifySearchParam(params: Record<string, any>, url?: string): string;
/**
 * 查询参数字符串中在最前面追加新参数和值
 * @param {string} url url地址，默认当前url地址
 * @param {string} name 参数名
 * @param {string|number|Array} value 参数值，如果是数组，则解析为：&ids[0]=1&ids[2]=2
 * @returns {string} 返回查询参数字符串
 */
declare function prependSearchParam(url: string | undefined, name: string, value: string | number | number[] | string[]): string;
/**
 * 查询参数字符串中在某个参数的前面追加新参数和值
 * @param {string} url url地址，默认当前url地址
 * @param {string} name 参数名
 * @param {string|number|Array} value 参数值，如果是数组，则解析为：&ids[0]=1&ids[2]=2
 * @param {string} beforeParam 在前面追加参数的名称
 * @returns {string} 返回查询参数字符串
 */
declare function prependToSearchParam(url: string | undefined, beforeParam: string, name: string, value: string | number | number[] | string[]): string;
/**
 * 查询参数字符串中在最后面追加新参数和值
 * @param {string} url url地址，默认当前url地址
 * @param {string} name 参数名
 * @param {string,number,Array} value 参数值，如果是数组，则解析为：&ids[0]=1&ids[2]=2
 * @returns {string} 返回查询参数字符串
 */
declare function appendSearchParam(url: string | undefined, name: string, value: string | number | number[] | string[]): string;
/**
 * 查询参数字符串中在某个参数的后面追加新参数和值
 * @param {string} url url地址，默认当前url地址
 * @param {string} name 参数名
 * @param {string,number,Array} value 参数值，如果是数组，则解析为：&ids[0]=1&ids[2]=2
 * @param {string} afterName 在后面追加参数的名称
 * @returns {string} 返回查询参数字符串
 */
declare function appendToSearchParam(url: string | undefined, afterName: string, name: string, value: string | number | number[] | string[]): string;
/**
 * 查询参数字符串中移除某个参数和值
 * @param {string} url url地址，默认当前url地址
 * @param {string} name 参数名
 * @returns {string} 返回查询参数字符串
 */
declare function removeSearchParam(url: string | undefined, name: string): string;

/**
 * 浏览器是否支持 Cookie
 * @returns {boolean} 返回true和false
 */
declare function isSupportCookie(): boolean;
/**
 * 通过name获取cookie
 * @param {string} name 参数name
 * @returns {string} 返回获取的值
 */
declare function getCookie(name: string): string;
/**
 * 通过name设置cookie
 * 注：timestamp参数不填，则默认为session级别，浏览器关闭即cookie过期
 * @param {string} name 参数name
 * @param {string} value 设置的value
 * @param {number} timestamp 过期的时间戳值，默认为一天，设置一天过期则为：24*60*60*1000
 */
declare function setCookie(name: string, value: string, timestamp?: number): void;
/**
 * 通过name删除cookie
 * @param {string} name 参数name
 */
declare function removeCookie(name: string): void;
/**
 * 清空当前站点域名的cookie
 * @param {string} domain 域名地址，默认是当前站点域名
 */
declare function clearCookie(domain?: string): void;

/**
 * 通过key从localStorage缓存中获取数据
 * @param {string} key key值
 * @returns {string} 返回数据
 */
declare function getLocalStorage(key: string): string | undefined;
/**
 * 设置localStorage缓存数据
 * @param {string} key key值
 * @param {string} value value值
 */
declare function setLocalStorage(key: string, value: string): void;
/**
 * 通过key从localStorage缓存中删除数据
 * @param {string} key key值
 */
declare function removeLocalStorage(key: string): void;
/**
 * 清空localStorage缓存中所有数据
 */
declare function clearLocalStorage(): void;

/**
 * 通过key从sessionStorage缓存中获取数据
 * @param {string} key key值
 * @returns {string} 返回数据
 */
declare function getSessionStorage(key: string): string | undefined;
/**
 * 设置sessionStorage缓存数据
 * @param {string} key key值
 * @param {string} value value值
 */
declare function setSessionStorage(key: string, value: string): void;
/**
 * 通过key从sessionStorage缓存中删除数据
 * @param {string} key key值
 */
declare function removeSessionStorage(key: string): void;
/**
 * 清空sessionStorage缓存中所有数据
 */
declare function clearSessionStorage(): void;

/**
 * @module 浏览器Storage
 */
/**
 * 浏览器是否支持 Storage
 * @returns {boolean} 返回true和false
 */
declare function isSupportStorage(): boolean;

/**
 * @module 浏览器Dom
 */
/**
 * 判断元素包含某个类名
 * @param {HTMLElement} elem 元素
 * @param {string} className 类名
 * @return {boolean} 返回true和false
 */
declare function hasClass(elem: HTMLElement, className: string): boolean;
/**
 * 元素添加类名
 * @param {HTMLElement} elem 元素
 * @param {string} className 类名
 */
declare function addClass(elem: HTMLElement, className: string): void;
/**
 * 元素删除类名
 * @param {HTMLElement} elem 元素
 * @param {string} className 类名
 */
declare function removeClass(elem: HTMLElement, className: string): void;
/**
 * 元素替换类名
 * @param {HTMLElement} elem 元素
 * @param {string} newClassName 新的类名
 * @param {string} oldClassName 被替换掉的旧类名
 */
declare function replaceClass(elem: HTMLElement, newClassName: string, oldClassName: string): void;
/**
 * 添加元素的style样式
 * @param {HTMLElement} elem 元素
 * @param {Object} styles 样式属性集合
 */
declare function addStyle(elem: HTMLElement, styles?: Record<string, string>): void;
/**
 * 获取元素的style样式
 * @param {HTMLElement} elem 元素
 * @param {string} name 属性
 * @returns {string|undefined} 返回样式的值
 */
declare function getStyle(elem: HTMLElement, name: string): string | unknown;
/**
 * 删除元素的style样式
 * @param {HTMLElement} elem 元素
 * @param {string} name 属性
 */
declare function removeStyle(elem: HTMLElement, name: string): void;
/**
 * html标签转义
 * @param {string} htmlStr html字符串
 * @returns {string} 返回转义后的字符串
 */
declare function htmlEncode(htmlStr: string): string;
/**
 * html标签解码
 * @param {string} htmlStr html字符串
 * @returns {string} 返回解析后的字符串
 */
declare function htmlDecode(htmlStr: string): string;

/**
 * @module 浏览器Device
 */
/**
 * 获取浏览器信息
 * @description 会获取到浏览器对应的名称以及版本
 * @returns {Object} 返回浏览器信息
 */
declare function getBrowserInfo(): {
    name: string;
    version: string;
} | undefined;
/**
 * 判断是pc端
 * @returns {boolean} 返回true和false
 */
declare function isPc(): boolean;
/**
 * 判断是手机端
 * @description 包含 android、iphone、黑莓手机、微软手机 等多种操作系统机型
 * @returns {boolean} 返回true和false
 */
declare function isPhone(): boolean;
/**
 * 判断是 android
 * @returns {boolean} 返回true和false
 */
declare function isAndroid(): boolean;
/**
 * 判断是 ios
 * @returns {boolean} 返回true和false
 */
declare function isIos(): boolean;
/**
 * 判断是 windows phone
 * @returns {boolean} 返回true和false
 */
declare function isWindowsPhone(): boolean;
/**
 * 判断是 windows
 * @returns {boolean} 返回true和false
 */
declare function isWindows(): boolean;
/**
 * 判断是 linux
 * @returns {boolean} 返回true和false
 */
declare function isLinux(): boolean;
/**
 * 判断是 Mac
 * @returns {boolean} 返回true和false
 */
declare function isMac(): boolean;
/**
 * 判断是iphone
 *@returns {boolean} 返回true和false
 */
declare function isIphone(): boolean;
/**
 * 判断是ipad
 *@return {boolean} 返回true和false
 */
declare function isIpad(): boolean;
/**
 * 判断是微信内置浏览器
 * @returns {boolean} 返回true和false
 */
declare function isWeixin(): boolean;
/**
 * 判断是QQ内置浏览器
 * @returns {boolean} 返回true和false
 */
declare function isQQ(): boolean;

/**
 * @module 浏览器Clipboard
 */
/**
 * 获得剪切板数据
 * @description 获得的剪切板的数据是会返回多个可用的MIME类型，比如是纯文本就返回一个['text/plain']，是复制的html则会返回两个可用的['text/plain','text/html']，是复制的图片则是['image/png']
 * @returns {Promise} 返回剪切板的数据，是数组形式，如果是文本则是字符串，否则是blob数据
 */
declare function getClipboard(): Promise<any>;
/**
 * 获得剪切板文本
 * @returns {Promise} 返回剪切板文本
 */
declare function getClipboardText(): Promise<any>;
/**
 * 设置剪切板数据
 * @description 可以设置文本或者blob类型的数据
 * @param {string|Blob} data 写入的数据，可以是文本或blob数据
 * @returns {Promise} 返回结果
 */
declare function setClipboard(data: string | Blob): Promise<any>;
/**
 * 设置剪切板文本
 * @param {string} text 写入的文本
 * @returns {Promise} 返回结果
 */
declare function setClipboardText(text: string): Promise<any>;
/**
 * 清空剪切板
 * @returns {Promise} 返回结果
 */
declare function clearClipboard(): Promise<any>;

declare function testLoaded(): void;

export { DATE, ID_CARD, KEYCODE, LANG, MATH, REGEXP, SM4, SORT, add, addClass, addDate, addHours, addMillisecond, addMinutes, addMonth, addQuarter, addSeconds, addStyle, addWeek, addYear, appendSearchParam, appendToSearchParam, arrayAvg, arrayBottom, arrayComplement, arrayCreate, arrayDifference, arrayDown, arrayEquals, arrayInsert, arrayInsertAfter, arrayInsertBefore, arrayIntersect, arrayMax, arrayMin, arrayRemove, arrayRemoveAfter, arrayRemoveBefore, arrayShuffle, arraySort, arraySortBy, arraySum, arraySwap, arrayToTree, arrayTop, arrayUnion, arrayUnique, arrayUp, base64Decode, base64DecodeURI, base64Encode, base64EncodeURI, base64FromHex, base64FromUint8Array, base64ToBlob, base64ToFile, base64ToHex, base64ToUint8Array, blobToBase64, blobToFile, blobToText, clearClipboard, clearCookie, clearLocalStorage, clearSessionStorage, clone, cloneDeep, debounce, deepCompare, divide, downloadBlobFile, downloadFileUrl, equals, equalsIgnoreCase, fileToBase64, fileToBlob, fileToUrl, formatFileSize, formatRmbChinese, formatStartOf, formatStartOfBankCard, formatStartOfIDCard, formatStartOfMobile, formatStartOfName, formatTemplate, formatThousand, formatTitle, fromDateUTC, gcd, generateSM4Iv, generateSM4Key, getAge, getAgeByIDCard, getBetweenDates, getBetweenMonths, getBetweenYears, getBirthdayByIDCard, getBrowserInfo, getChineseZodiac, getClipboard, getClipboardText, getCookie, getDate, getDateArray, getDateObject, getDateTime, getDayOfMonth, getDayOfWeek, getDayOfYear, getDaysOfMonth, getDaysOfWeek, getDaysOfYear, getDiffDay, getDiffMonth, getDiffWeek, getDiffYear, getDrawHex, getDrawRgb, getDrawRgba, getFileName, getFileSuffix, getFirstDateOfMonth, getFirstDateOfWeek, getFirstDateOfYear, getFullDateOfMonth, getFullDateOfWeek, getFullDateOfYear, getGUID, getHost, getHostName, getInfoByIDCard, getKeyCode, getKeyName, getLastDateOfMonth, getLastDateOfWeek, getLastDateOfYear, getLimit, getLocalStorage, getNextPage, getNow, getOverTime, getPastTime, getPort, getPrevPage, getProtocol, getProvinceByIDCard, getQuarter, getRainbowPager, getRandom, getRandomDigit, getSearchParam, getSearchString, getSessionStorage, getSexByIDCard, getStyle, getTimestamp, getTotalPage, getUUID, getUnixTimestamp, getUrlHash, getUrlPath, getValueByPath, getWeek, getWeekOfMonth, getWeekOfYear, getWeeksOfMonth, getWeeksOfYear, getZodiac, hasClass, hasSearchParam, hexToHsl, hexToRgb, hexToRgba, htmlDecode, htmlEncode, inArray, inString, isAM, isAfter, isAfterTomorrow, isAndroid, isArray, isAsyncFunction, isBefore, isBeforeYesterday, isBetween, isBigInt, isBlank, isBoolean, isChinese, isCommonYear, isDate, isDecimal, isEmail, isEmpty, isEnglish, isError, isExternal, isFalse, isFirstDayOfMonth, isFirstDayOfWeek, isFirstDayOfYear, isFunction, isFunctionString, isIdCard, isInteger, isIos, isIpad, isIphone, isJson, isLastDayOfMonth, isLastDayOfWeek, isLastDayOfYear, isLeapYear, isLinux, isLowerCase, isMac, isMap, isMobile, isNaN, isNotBlank, isNotEmpty, isNotNaN, isNotNull, isNotUndefined, isNull, isNumber, isObject, isPM, isPc, isPhone, isPromise, isQQ, isRegExp, isSame, isSameMonth, isSameOrAfter, isSameOrBefore, isSameWeek, isSameYear, isSet, isString, isSupportCookie, isSupportStorage, isSymbol, isToday, isTomorrow, isTrue, isUndefined, isUpperCase, isUrl, isWeakMap, isWeakSet, isWeekend, isWeixin, isWindows, isWindowsPhone, isWorkday, isYesterday, jsonToMap, lastMonth, lastWeek, lastYear, mapToJson, mapToObject, md5, md5Hmac, md5HmacRaw, md5Raw, merge, modulo, multiply, nextMonth, nextWeek, nextYear, objectEquals, objectToMap, padZeroEnd, padZeroStart, parseFloat, parseInt, parseJson, parseSearchParam, prependSearchParam, prependToSearchParam, regexpTest, removeClass, removeCookie, removeLocalStorage, removeSearchParam, removeSessionStorage, removeStyle, replaceAll, replaceClass, rgbToHex, rgbaToHex, rgbaToHsl, scm, setClipboard, setClipboardText, setCookie, setLocalStorage, setSearchParam, setSessionStorage, setValueByPath, sha224, sha224Hmac, sha224HmacRaw, sha224Raw, sha256, sha256Hmac, sha256HmacRaw, sha256Raw, sleep, sm3Encrypt, sm3EncryptHmac, sm4Decrypt, sm4Encrypt, stringifyJson, stringifySearchParam, subtract, testLoaded, throttle, toCamelCase, toDate, toDateString, toDateUTC, toDateUTCString, toDecimal, toFixed, toKebabCase, toLowerCase, toPascalCase, toSnakeCase, toUpperCase, today, tomorrow, treeToArray, trim, trimAll, trimEnd, trimStart, urlToBase64, urlToFile, yesterday };
export type { DateOptions, SM4DataType, SM4Options };
