interface DebounceSettingsLeading {
    leading: true;
    maxWait?: number;
    trailing?: boolean;
}
interface DebouncedFuncLeading<T extends (...args: unknown[]) => unknown> {
    cancel(): void;
    flush(): ReturnType<T>;
    (...args: any[]): ReturnType<T>;
}
declare const useDebounce: <T extends (...args: unknown[]) => unknown>(func: T, delay: number, options?: DebounceSettingsLeading) => DebouncedFuncLeading<T>;
export default useDebounce;
