/** * Custom hook for creating a debounced version of a callback function. * * Features: * - Delays callback execution until after a specified delay period * - Cancels previous pending calls when a new one is made * - Maintains stable function reference (only changes when delay changes) * - Always uses the latest callback via ref (avoids stale closures) * - Properly cleans up timeouts on unmount and delay changes * - Supports async callbacks * - Type-safe with generics * * @param callback - The function to debounce * @param delay - Delay in milliseconds before executing the callback * @returns Debounced version of the callback with the same signature * * @example * const debouncedSearch = useDebouncedCallback( * (searchTerm: string) => { * performSearch(searchTerm); * }, * 300 * ); * * // Later in event handler: * debouncedSearch(inputValue); */ export declare function useDebouncedCallback any>(callback: T, delay?: number): T;