/**
 * @description: 确保目标是一个数组
 * @param {any} target
 * @return {array}
 */
export declare function toArray(target: any): any[];
/**
 * @description: 限定数值范围
 * @param {number} n 被限定的值
 * @param {number} min 最小值
 * @param {number} max 最大值
 * @return {number} 限定后的值
 */
export declare function minmax(n: number, min: number, max: number): number;
/**
 * @description: 获取小数位数
 * @param {number | string} n 要操作的数值
 * @return {number}
 */
export declare function getDecimalsLength(n: number | string): number;
/**
 * @description: 把一个数四舍五入到指定位数小数
 * @param {number} n 要操作的数值
 * @param {number} precision 精准度，即小数个数
 * @return {number}
 */
export declare function round(n: number, precision?: number): number;
/**
 * @description: 把一个数舍入到指定数的倍数
 * @param {number} n 要舍入的数值
 * @param {number} m 结果值的因数
 * @return {number}
 */
export declare function mround(n: number, m: number): number;
/**
 * @description: 生成唯一ID，用于设置元素的ID，以便获取
 * @param {string} prefix
 * @return {string}
 */
export declare function uniqid(prefix?: string): string;
/**
 * @description: 获取阻尼值
 * @param {number} value
 * @param {number} min
 * @param {number} max
 * @param {number} damping
 * @return {number}
 */
export declare function getDampingValue(value: number, min: number, max: number, damping: number): number;
/**
 * @description: 获取矩形阻尼值
 * @param {number} offset 当前的偏移量
 * @param {number} areaSize 范围值
 * @param {number} viewSize 范围内某个视图尺寸值
 * @param {number} damping 阻尼系数
 * @return {number}
 */
export declare function getRectDampingValue(offset: number, areaSize: number, viewSize: number, damping: number): number;
/**
 * @description: 获取范围值
 * @param {number} offset 当前的偏移量
 * @param {number} areaSize 范围值
 * @param {number} viewSize 范围内某个视图尺寸值
 * @return {number}
 */
export declare function getInBoundValue(offset: number, areaSize: number, viewSize: number): number;
/**
 * @description: 获取溢出值范围
 * @param {number} overflow 最大溢出值
 * @param {number} areaSize 范围值
 * @param {number} viewSize 范围内某个视图尺寸值
 * @return {*}
 */
export declare function getOverflowRangeInArea(overflow: number, areaSize: number, viewSize: number): [number, number];
/**
 * @description: 扩散性遍历
 * @param {any[]} array 要遍历的数组
 * @param {(el: any, spreadIndex: number, index: number) => any} callback 回调函数，接收当前元素、扩散性下标、迭代下标作为参数，
 *  如果返回true，则中止遍历
 * @param {number} currIndex 遍历开始的下标
 * @param {number} direction 开始遍历的方向
 * @return {number} 扩散性下标、或开始下标
 */
export declare function spreadEach(array: any[], callback: (el: any, spreadIndex: number, index: number) => any, startIndex?: number, direction?: number): number;
/**
 * @description: 深度克隆对象，仅克隆数组和无格式对象，其他类型会被直接返回
 * @param {any} target
 * @return {any}
 */
export declare function deepClone(target: any): any;
/**
 * @description: 深拷贝其他对象到第一个对象
 * @param args 任意长度参数对象
 * @return 返回第一个参数对象
 */
export declare function extend(...args: any[]): any;
/**
 * @description: 判断两数组是否相等，浅比较
 * @param {any[]} arr1
 * @param {any[]} arr2
 * @return {boolean}
 */
export declare function arrayEqual(arr1: any[], arr2: any[]): boolean;
/**
 * @description: 判断一个对象是否为看得到的空
 * @param {any} target
 * @return {boolean}
 */
export declare function isVisibleEmpty(target: any): boolean;
/**
 * @description: 判断一个值是否为空
 * @param {any} value
 * @return {boolean}
 */
export declare function isEmptyValue(value: any, whitespace?: boolean): boolean;
/**
 * @description: 判断一个值渲染到DOM中时是否可见
 * @param {any} value
 * @return {boolean}
 */
export declare function isRenderVisible(value: any): boolean;
/**
 * @description: 判断是否绑定为空值
 * @param {any} target
 * @return {boolean}
 */
export declare function isEmptyBinding(target: any): target is '' | null | undefined;
export interface DebounceOptions {
    leading?: boolean;
    trailing?: boolean;
    maxWait?: number;
}
export declare function debounce(func: (...args: any[]) => any, wait: any, options?: DebounceOptions): {
    (this: any, ...args: any[]): any;
    cancel: () => void;
    flush: () => any;
    pending: () => boolean;
};
export declare function throttle(func: (...args: any[]) => any, wait: any, options?: DebounceOptions): {
    (this: any, ...args: any[]): any;
    cancel: () => void;
    flush: () => any;
    pending: () => boolean;
};
/**
 * @description: 获取页面范围
 * @param {number} current 当前页码
 * @param {number} pageCount 总页数
 * @param {number} pageItemCount 要展示的页数
 * @return {[number, number]}
 */
export declare function getPageRange(current: number, pageCount: number, pageItemCount: number): number[];
interface AnyObject {
    [p: string]: any;
}
export declare function treeToMap(tree: AnyObject[], keyName: string, childrenName: string, parentName: string): {
    [p: string]: AnyObject;
};
/**
 * @description: 打乱数组
 * @param {any[]} arr 要打乱的数组
 * @param {boolean} inPlace 是否改变原数组
 * @return {any[]}
 */
export declare function shuffle(arr: any[], inPlace?: boolean): any[];
interface Rect {
    x: number;
    y: number;
    width: number;
    height: number;
}
/**
 * @description: 根据原始坐标尺寸和缩放后的坐标尺寸算出转换的原点
 * @param {Rect} rect
 * @param {Rect} scaleRect
 * @return {[number, number]}
 */
export declare function getTransformOrigin(rect: Rect, scaleRect: Rect): number[];
/**
 * @description: 将一个可选单位的字符串或数值拆分为数值和单位组成的数组
 * @param {number | string} target
 * @return {[number, string]}
 */
export declare function splitUnit(target: number | string): [number, string];
/**
 * @description: 链式获取对象值
 * @param object
 * @param chain 通过点分割的字符串或者字符串数组
 */
export declare function chainGet(object: any, chain?: string | string[]): any;
/**
 * @description: 链式设置对象值
 * @param object
 * @param chain 通过点分割的字符串或者字符串数组
 * @param value 要设置的值
 */
export declare function chainSet(object: any, chain: string | string[], value: any): void;
/**
 * @description: 移动数组中的元素
 * @param array
 * @param fromIndex
 * @param toIndex
 * @return 移动后的新数组
 */
export declare function arrayMove(array: any[], fromIndex: number, toIndex: number): any[];
export type StyleProp = string | Record<any, any> | null | undefined | false | StyleProp[];
export declare function stringifyStyle(...args: StyleProp[]): string;
export type ClassProp = string | number | null | undefined | Record<string, any> | ClassProp[];
export declare function classNames(...args: ClassProp[]): string;
export declare const noop: () => void;
export declare function nestedToMulti(nested: any[], values: (number | string)[], fieldKeys: {
    value: string;
    children: string;
}): any[];
export declare function random(min: number, max: number): number;
export declare function addSeparator(num: number | string, separator?: string, digit?: number): string;
export interface Coord {
    x: number;
    y: number;
}
export declare function getDistanceBetweenTwoPoints(c1: Coord, c2: Coord): number;
export declare function getMayPrimitiveOption(option: string | number | boolean | {
    [key: PropertyKey]: any;
}, key: string): any;
export declare function sleep(time: number): Promise<unknown>;
export {};
