import * as _ls_stack_utils_debounce0 from "@ls-stack/utils/debounce";
import { DebounceOptions } from "@ls-stack/utils/debounce";
//#region src/useDebouncedCallback.d.ts
/**
* Hook that debounces a callback function with a stable reference.
*
* The returned debounced function reference stays stable across renders while
* always calling the latest version of the callback.
*
* @example
* ```tsx
* function SearchInput({ onSearch }: { onSearch: (query: string) => void }) {
* const debouncedSearch = useDebouncedCallback(onSearch, 300);
*
* return debouncedSearch(e.target.value)} />;
* }
* ```;
*
* @param callback - The function to debounce
* @param debounceMs - The number of milliseconds to delay
* @param options - Debounce options (leading, trailing, maxWait)
* @returns Debounced function with cancel, flush, and pending methods
*/
declare function useDebouncedCallback void>(callback: T, debounceMs: number, options?: DebounceOptions): _ls_stack_utils_debounce0.DebouncedFunc;
//#endregion
export { useDebouncedCallback };