import type { AnyCase } from './word-case';
export declare const numberRE: RegExp;
/**
 * 检测给定的值是否可以通过 parseFlat 或 Number 方法转为数字
 *
 * 开启严格模式则通过正则以更严格的方法判断
 *
 * @param value 需要检测的值
 * @param strict 是否为严格模式
 *
 * @returns 值是否可以转为数字
 */
export declare function isValidNumber(value: unknown, strict?: boolean): boolean;
/**
 * 将给定的值转成数字，NaN 的情况将会处理成 0
 *
 * @param value 需要转换的值
 *
 * @returns 转换后的数字
 */
export declare function toNumber(value: unknown): number;
/**
 * 为给定的整数开头填充 0，直至满足指定的长度
 *
 * @param number 需要处理的整数
 * @param length 填充至的长度
 *
 * @returns 填充后的字面值
 */
export declare function padStartZeros(number: number, length: number): string;
/**
 * 将小于 10 整数 N 变成 `0N` 的字符串，方法不会对入参校验
 *
 * @param number 需要处理的整数
 *
 * @returns 填充后的字面值
 */
export declare function doubleDigits(number: number): string;
/**
 * 返回数字的小数位数
 *
 * @param number 指定的数字
 *
 * @returns 数字的小数位数
 */
export declare function decimalLength(number: number | string): number;
/**
 * Return decimal length of a number
 *
 * @param number The input number
 * @deprecated Using `decimalLength` to replace it
 */
export declare function digitLength(number: number | string): number;
/**
 * 将给定的数字格式化为指定的位阶
 *
 * @param number 需要格式化的数字
 * @param segment 分隔的位数，默认为 3
 * @param separator 分隔的符号，默认为 ','
 *
 * @returns 格式化后的字面值
 */
export declare function segmentNumber(number: number | string, segment?: number, separator?: string): string;
/**
 * 将给定的实数保留一定的小数
 *
 * @param number 需要处理的实数
 * @param decimal 需要保留的小数
 *
 * @returns 保留小数后的值
 */
export declare function toFixed(number: number, decimal: number): number;
/**
 * 将给定的实数扩大一定的倍数并保留一定的小数
 *
 * @param number 要处理的实数
 * @param multiple 要扩大的倍数
 * @param decimal 要保留的小数
 *
 * @returns 扩大并保留小数后的值
 */
export declare function multipleFixed(number: number, multiple: number, decimal: number): number;
/**
 * 根据临界值对给定的数字进行舍入
 *
 * @param number 需要舍入的数
 * @param criticalValue 舍入的临界值 (0 ~ 1)，达到临界值进位反之舍弃
 *
 * @returns 舍入后的值
 */
export declare function round(number: number, criticalValue: number): number;
/**
 * 将给定的数字限定在指定的范围内
 *
 * @param number 需要限定范围的数
 * @param min 边界最小值，包含该值
 * @param max 边界最大值，包含该值
 *
 * @returns 限定在范围内的值
 */
export declare function boundRange(number: number | string, min: number, max: number): number;
/**
 * 将给定的被除数和除数，不断的取余直至达到次数限制或余数小于除数，返回系列余数
 *
 * @param number 被除数，需大于 0
 * @param divideBy 除数，需大于 1
 * @param limit 次数限制，默认为 0，小于 1 则不作限制
 *
 * @returns 相除过程的系列余数
 */
export declare function leaveNumber(number: number, divideBy: number, limit?: number): number[];
/**
 * 将给定的数字转换为序数词
 *
 * @param number 需要转换的数字
 *
 * @returns 转换后的序数词
 */
export declare function ordinalNumber(number: number): string;
export type SizeUnitWithAuto = AnyCase<'B' | 'KB' | 'MB' | 'GB' | 'TB' | 'AUTO'>;
export type SizeUnit = Exclude<SizeUnitWithAuto, AnyCase<'AUTO'>>;
/**
 * 根据给定的 Byte 数值，将其格式化成指定单位的大小
 *
 * @param byte 需要计算的 Byte 数值
 * @param unit 格式化的单位
 * @param precision 结果的精度
 * @param joinUtil 是否加入单位
 *
 * @returns 格式化后的值
 */
export declare function formatByteSize(byte: number, unit?: SizeUnitWithAuto): number;
export declare function formatByteSize(byte: number, unit?: SizeUnitWithAuto, precision?: number): number;
export declare function formatByteSize(byte: number, unit?: SizeUnitWithAuto, joinUtil?: true): number;
export declare function formatByteSize(byte: number, unit?: SizeUnitWithAuto, joinUtil?: true, precision?: number): number;
/**
 * 在给定的范围内随机一个数
 *
 * @param max 最大值
 * @param min 最小值，默认为 0
 *
 * @returns 生成的随机数
 */
export declare function random(max: number, min?: number): number;
/**
 * 将数字处理为的指定的有效位数
 *
 * @param number 需要处理的数字
 * @param precision 数字的有效位数
 *
 * @returns 处理后的数字
 *
 * @example
 * ```ts
 * toPrecision(0.09999999999999998) === 0.1 // true
 * ```
 */
export declare function toPrecision(number: number | string, precision?: number): number;
/**
 * 精确的乘法
 *
 * @param numbers 需要依次相乘的数字
 *
 * @returns 乘积
 */
export declare const times: (...numbers: (number | string)[]) => number;
/**
 * 精确的加法
 *
 * @param numbers 需要依次相加的数字
 *
 * @returns 和
 */
export declare const plus: (...numbers: (number | string)[]) => number;
/**
 * 精确的减法
 *
 * @param numbers 需要依次相减的数字
 *
 * @returns 差值
 */
export declare const minus: (...numbers: (number | string)[]) => number;
/**
 * 精确的除法
 *
 * @param numbers 需要依次相除的数字
 *
 * @returns 商
 */
export declare const divide: (...numbers: (number | string)[]) => number;
