/** * Creates a debounced function that delays invoking the provided function until after the specified delay. * @param func - The function to debounce. * @param delay - The delay in milliseconds. * @returns A new debounced function. */ export declare function debounce void>(func: T, delay: number): T; /** * Creates a throttled function that only invokes the provided function at most once per specified interval. * @param func - The function to throttle. * @param interval - The interval in milliseconds. * @returns A new throttled function. */ export declare function throttle void>(func: T, interval: number): T; /** * Creates a function that is called only once. * @param func - The function to call only once. * @returns A new function that can be called only once. */ export declare function once void>(func: T): T; /** * Creates a memoized function that caches the result based on its arguments. * @param func - The function to memoize. * @returns A new memoized function. */ export declare function memoize any>(func: T): T; /** * Composes multiple functions into a single function. * @param funcs - The functions to compose. * @returns A new function that is the composition of the input functions. */ export declare function compose(...funcs: ((arg: T) => T)[]): (arg: T) => T; /** * Pipes a value through multiple functions. * @param funcs - The functions to pipe through. * @returns A new function that pipes a value through the input functions. */ export declare function pipe(...funcs: ((arg: T) => T)[]): (arg: T) => T; /** * Delays the execution of a function by a specified amount of time. * @param func - The function to delay. * @param wait - The delay time in milliseconds. * @returns A new function that delays the execution of the input function. */ export declare function delay void>(func: T, wait: number): T; /** * Retries a function a specified number of times if it fails. * @param func - The function to retry. * @param attempts - The number of attempts. * @returns A new function that retries the input function. */ export declare function retry Promise>(func: T, attempts: number): T; /** * Creates a debounced function for asynchronous functions. * @param func - The asynchronous function to debounce. * @param delay - The delay in milliseconds. * @returns A new debounced function. */ export declare function debounceAsync Promise>(func: T, delay: number): T;