export type ThrottledFunction = (() => void) & { reset: () => void; }; /** * Throttle a function with a given delay. * Similar to lodash. * * Throttling `F` for a delay of `D` means that * `F` will be called no more than 1 time every `D`. * In this implementation, `F` is called after `D` * has passed since the previous non-throttled invocation * * @param func Function to throttle * @param delay Throttle delay */ export declare function throttle(func: () => void, delay: number): ThrottledFunction; export declare function asyncResettable Promise>(func: T): { run: T; finished: () => boolean; wait: () => Promise | null; reset: () => void; };