/**
 * Debounce a function, making it only callable after a certain amount of time has passed.
 * @param func The function to debounce.
 * @param timeout The amount of time to wait before calling the function.
 * @returns A debounced version of the function.
 * @template Params The parameters of the function.
 * @example
 * ```tsx
 * const debouncedFunction = debounce((...args) => {
 *  console.log(args);
 * }, 1000);
 * debouncedFunction(1);
 * ```
 */
export declare function debounce<Params extends any[]>(func: (...args: Params) => any, timeout: number): (...args: Params) => void;
