import type { AnyFunction, RetryOptions } from '../types/common.js'; export type DebouncedFunction = ((...args: Parameters) => ReturnType | undefined) & { cancel: () => void; flush: () => ReturnType | undefined; }; export interface ThrottleOptions { leading?: boolean; trailing?: boolean; } export type ThrottledFunction = ((...args: Parameters) => ReturnType | undefined) & { cancel: () => void; }; export declare function debounce(fn: T, wait?: number, immediate?: boolean): DebouncedFunction; export declare function throttle(fn: T, wait?: number, options?: ThrottleOptions): ThrottledFunction; export declare function memoize(fn: T, resolver?: (...args: Parameters) => string): T; export declare function once(fn: T): T; export declare function sleep(ms: number): Promise; export declare function retry(task: () => Promise, options?: RetryOptions): Promise; export declare function compose(...fns: Array<(value: T) => T>): (value: T) => T; export declare function pipe(...fns: Array<(value: T) => T>): (value: T) => T; export declare function curry(fn: (...args: T) => R, arity?: number): (...args: unknown[]) => unknown; export declare class FunctionUtils { static debounce: typeof debounce; static throttle: typeof throttle; static memoize: typeof memoize; static once: typeof once; static sleep: typeof sleep; static retry: typeof retry; static compose: typeof compose; static pipe: typeof pipe; static curry: typeof curry; } //# sourceMappingURL=core.d.ts.map