/** 统一同步返回值与 PromiseLike 返回值的内部回调签名 */ type AsyncCallback = (...arguments_: Arguments) => Result | PromiseLike; /** Promise 感知的防抖函数 */ export interface DebouncedFunction { /** * 调度一次调用;同一等待窗口内的调用共享最后一组参数对应的结果。 * @param arguments_ - 传给原始回调的参数;后续调用会覆盖尚未执行批次保存的参数。 * @returns 当前批次的独立 Promise,最终与共享回调结果保持相同状态。 */ (...arguments_: Arguments): Promise; /** * 取消尚未执行的批次,并拒绝该批次的所有 Promise。 * @param reason - 可选拒绝原因;省略时使用内部取消错误。 */ cancel: (reason?: unknown) => void; /** * 立即执行待处理批次,不创建第二次回调执行。 * @returns 待处理批次的共享执行 Promise;没有批次时返回 `undefined`。 */ flush: () => Promise | undefined; /** @returns 当前存在尚未开始的批次时返回 `true`;正在执行但没有等待批次时返回 `false`。 */ pending: () => boolean; } /** * 创建 Promise 感知的防抖函数。 * * @remarks 同一窗口内的所有调用都会等待最后一组参数对应的执行结果;回调错误会原样 * 拒绝该批次的全部调用,不会留下永久 pending 的 Promise。 * @param callback - 同步或异步回调 * @param delayMs - 0 至 2,147,483,647 的有限等待时间,默认 300 毫秒。 * @returns 具有取消、立即执行和状态方法的防抖函数 * @throws `RangeError` 当延迟不在平台计时器支持范围内。 */ export declare function debounce(callback: AsyncCallback, delayMs?: number): DebouncedFunction>; export {};