/** * Cancelable debouncing of calls to trigger * @example waitTime * ```ts * const debounced = new Debouncer(a => console.log(a), 1, 100) * debounce.trigger('first') * debounce.trigger('second') * // after 1ms * // => 'second' * ``` * @example maxWaitTime * ```ts * const debounced = new Debouncer(a => console.log(a), 3, 4) * debounce.trigger('first') * // after 1ms * debounce.trigger('second') * // after 1ms * // => 'second' * debounce.trigger('third') * // after 2ms, 4ms elapsed since the first trigger * // => 'third' * ``` */ export declare class Debouncer any> { private cb; private waitTime; private maxWaitTime; private timeout; private maxTimeout; private args; private defer; /** * * @param cb - trigger callback * @param waitTime - time to wait before invoking cb * @param maxWaitTime - maximum wait time from first triggering */ constructor(cb: T, waitTime: number, maxWaitTime: number); private execute; /** * * @param args - arguments to pass to cb * @returns Promised resolved with cb return value */ trigger(...args: Parameters): Promise>; /** * Cancels pending invocation of cb * @example * ```ts * const debounced = new Debouncer(a => console.log(a), 3, 4) * debounce.trigger('first') * debounce.cancel() * // console.log will not be invoked * ``` */ cancel(): void; setCb(cb: T): void; } //# sourceMappingURL=debouncer.d.ts.map