/** * Creates a throttled function that only invokes `func` at most once per every `wait` milliseconds. The throttled function comes with a `cancel` method to cancel delayed `func` invocations and a `flush` method to immediately invoke them. Provide `options` to indicate whether `func` should be invoked on the leading and/or trailing edge of the `wait` timeout. The `func` is invoked with the last arguments provided to the throttled function. * * **Note**: If `leading` and `trailing` options are `true`, `func` is invoked on the trailing edge of the timeout only if the throttled function is invoked more than once during the `wait` timeout. * * If `wait` is 0 and `leading` is `false`, `func` invocation is deferred until to the next tick, similar to `setTimeout` with a timeout of 0. * * Differences from lodash: * - does not return the results of the last invocation * - does not make any guarantees about the value of `this` in `func` * * Contribution to minified bundle size, when it is the only function imported: * - Lodash: 2,290 bytes * - Micro-dash: 339 bytes */ export declare function throttle any>(func: T, wait?: number, { leading, trailing }?: { leading?: boolean | undefined; trailing?: boolean | undefined; }): ((...args: Parameters) => void) & { cancel(): void; flush(): void; };