/**
 * 递归调用关键词名称
 */
interface IRecursiveKeyName {
    children: string;
}
/**
 * 深克隆
 * @param obj
 */
export declare function cloneDeep<T>(obj: T, cache?: WeakMap<object, any>): T;
/**
 * 执行时间
 * @param fn 方法
 */
export declare function executionTime(fn: () => void): string;
/**
 * 防抖
 * @param fn 方法
 * @param delay 延迟
 */
export declare function antiShake(fn: () => void, delay: number): (this: any) => void;
/**
 * 节流
 * @param fn 方法
 * @param delay 延迟
 */
export declare function throttle(fn: () => void, delay: number): (this: any) => void;
/**
 * 打组方法
 * 例:
 * group([1,2,3,4,5],(item,index)=> item % 3) => [ [ 3 ], [ 1, 4 ], [ 2, 5 ] ]
 * @param arr
 * @param func
 * @returns
 */
export declare function group<T>(arr: Array<T>, func: (item: T, index: number) => any): unknown[];
/**
 * 通过条件一一对比
 * 例:
 * contrast([1,2,3],(curr,next)=>curr+next==3) => true
 * @param arr
 * @param func
 * @returns
 */
export declare function contrast<T>(arr: Array<T>, func: (curr: T, next: T) => any): boolean;
/**
 * 递归调用
 * @param arr 数组
 * @param func 方法
 */
export declare function recursive<T>(arr: Array<T>, func: (curr: T, parent?: T) => void, keyName?: IRecursiveKeyName, parent?: T): T[];
export {};
