import { OperationHistoryEnum, SafeAny } from '../../core';
/**
 * 防抖工具类
 */
export declare class DebounceUtil {
    static timeoutMap: Map<string, any>;
    /**
     * 创建防抖函数
     * @param func 需要防抖的函数
     * @param delay 延迟时间（毫秒）
     * @param key 可选的唯一标识符，用于管理多个防抖实例
     * @returns 防抖后的函数
     */
    static create<T extends (...args: SafeAny[]) => SafeAny>(func: T, delay: number, key?: string): (...args: Parameters<T>) => void;
    /**
     * 创建带有返回值的防抖函数（使用 Promise）
     * @param func 需要防抖的函数
     * @param delay 延迟时间（毫秒）
     * @param key 可选的唯一标识符
     * @returns 返回 Promise 的防抖函数
     */
    static createWithPromise<T extends (...args: SafeAny[]) => SafeAny>(func: T, delay: number, key?: string): (...args: Parameters<T>) => Promise<ReturnType<T>>;
    /**
     * 立即执行防抖函数（跳过延迟）
     * @param key 防抖函数的唯一标识符
     */
    static flush(key: OperationHistoryEnum): void;
    /**
     * 取消防抖函数的执行
     * @param key 防抖函数的唯一标识符
     */
    static cancel(key: string): void;
    /**
     * 清除所有防抖定时器
     */
    static clearAll(): void;
    /**
     * 获取当前活跃的防抖实例数量
     * @returns 活跃的防抖实例数量
     */
    static getActiveCount(): number;
}
/**
 * 防抖装饰器
 * @param delay 延迟时间（毫秒）
 * @param key 可选的唯一标识符
 * @returns 装饰器函数
 */
export declare function Debounce(delay: number, key?: string): (target: SafeAny, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
export declare const debounce: typeof DebounceUtil.create;
