import { type DebouncedFunction, debounce } from "es-toolkit"; type Dep = Array; type Callback = (...args: Args) => Return; export type DebounceOptions = Parameters[2]; /** * Returns a memoized debounced function. * * @remarks * This hook wraps `es-toolkit`'s `debounce` function. * The callback is always up-to-date (via ref), so you don't need to include it in deps. * * @typeParam Args - The arguments of the callback. * @typeParam Return - The return type of the callback. * @param cb - The function to debounce. * @param timeout - The debounce delay in milliseconds. * @param dep - Additional dependencies to recreate the debounced function. * @param options - Debounce options (leading, trailing, etc.). * @returns The debounced function. * * @example * ```tsx * const debouncedSearch = useDebounceCallback((query) => { * search(query); * }, 500); * ``` */ export declare function useDebounceCallback(cb: Callback, timeout?: number, dep?: Dep, options?: DebounceOptions): DebouncedFunction>; export {};