export declare function debounce<Params extends any[]>(func: (...args: Params) => any, timeout: number): (...args: Params) => void;
type DebounceFn<T extends any[], R> = (...args: T) => Promise<R>;
export declare const debouncePromise: <T extends any[], R>(callback: DebounceFn<T, R>, delay: number) => DebounceFn<T, R>;
export declare function debounceWithCancel<T extends (...args: any[]) => void>(func: T, delay: number): T & {
    cancel: () => void;
};
export {};
