export declare const raf: (cb: FrameRequestCallback) => void;
interface ThrottleOptions {
    leading?: boolean;
    trailing?: boolean;
    interval?: number;
}
interface DebounceOptions {
    leading?: boolean;
    trailing?: boolean;
    delay?: number;
}
/**
 * 将一个方法进行节流
 *
 * @param method 需要节流的方法，需自行绑定 this
 * @param options 节流配置项，可设置间隔时间和 leading/trailing 行为
 *
 * @returns 节流后的方法
 */
export declare function throttle<T extends (...args: any[]) => any>(method: T, options?: number | ThrottleOptions): (...args: Parameters<T>) => void;
/**
 * 将一个方法进行防抖
 *
 * @param method 需要防抖的方法，需自行绑定 this
 * @param options 防抖配置项，可设置延迟时间和 leading/trailing 行为
 *
 * @returns 防抖后的方法
 */
export declare function debounce<T extends (...args: any[]) => any>(method: T, options?: number | DebounceOptions): (...args: Parameters<T>) => void;
/**
 * 对给定的方法进行微任务级别的防抖
 *
 * @param method 需要防抖的方法，需自行绑定 this
 * @param options 配置项，可设置 leading/trailing 行为
 *
 * @returns 防抖后的方法
 */
export declare function debounceMinor<T extends (...args: any[]) => any>(method: T, options?: {
    leading?: boolean;
    trailing?: boolean;
}): (...args: Parameters<T>) => Promise<Awaited<ReturnType<T>>>;
/**
 * 对给定的方法进行渲染帧级别的防抖
 *
 * @param method 需要防抖的方法，需自行绑定 this
 * @param options 配置项，可设置 leading/trailing 行为
 *
 * @returns 防抖后的方法
 */
export declare function debounceFrame<T extends (...args: any[]) => any>(method: T, options?: {
    leading?: boolean;
    trailing?: boolean;
}): (...args: Parameters<T>) => Promise<Awaited<ReturnType<T>>>;
/**
 * 在下一微任务，仅执行一次传入的方法
 *
 * @param method 需要执行的方法
 * @param args 方法的额外参数，在方法调用前多次传入将会覆盖之前的参数
 */
export declare function nextTickOnce<T extends (...args: any[]) => any>(method: T, ...args: any[]): undefined;
/**
 * 在下一渲染帧，仅执行一次传入的方法
 *
 * @param method 需要执行的方法
 * @param args 方法的额外参数，在方法调用前多次传入将会覆盖之前的参数
 */
export declare function nextFrameOnce<T extends (...args: any[]) => any>(method: T, ...args: any[]): undefined;
/**
 * 按指定的并发数，并行地为系列源数据执行操作
 *
 * @param maxConcurrency 最大的并发数
 * @param source 源数据
 * @param iteratorFn 处理操作的异步函数
 *
 * @returns 等待所有任务执行完的 Promise 对象
 */
export declare function runParallel<T>(maxConcurrency: number, source: T[], iteratorFn: (item: T, source: T[]) => Promise<any>): Promise<any[]>;
export {};
