import type { AnyAsyncFunction, AnyFunction } from '../types.js'; import type { AsyncDebounceOptions, AsyncThrottleOptions, DebounceOptions, ThrottleOptions } from './debounce.js'; import type { MethodDecorator } from './decorator.util.js'; export declare function _Debounce(wait: number, opt?: DebounceOptions): MethodDecorator; export declare function _Throttle(wait: number, opt?: ThrottleOptions): MethodDecorator; /** * Like `@_Debounce`, but for async methods: every call returns a real Promise resolving with the * coalesced invocation's result, so `await`-ing never yields a stale value or a non-promise * * Be aware that the decorated method may resolve `undefined` if the config yields no invocation, * which the method's `T` type can't express. * * @experimental */ export declare function _AsyncDebounce(wait: number, opt?: AsyncDebounceOptions): MethodDecorator; /** * Like `@_Throttle`, but for async methods. * * @see {@link _AsyncDebounce} * * @experimental */ export declare function _AsyncThrottle(wait: number, opt?: AsyncThrottleOptions): MethodDecorator;