import React, { ReactNode } from "react";
import { AnyAsyncFunction, AnyFunction, AsyncBatcherOptions, AsyncDebouncerOptions, AsyncQueuerOptions, AsyncRateLimiterOptions, AsyncThrottlerOptions, BatcherOptions, DebouncerOptions, QueuerOptions, RateLimiterOptions, ThrottlerOptions } from "@tanstack/pacer";

//#region src/provider/PacerProvider.d.ts
interface PacerProviderOptions {
  asyncBatcher?: Partial<AsyncBatcherOptions<any>>;
  asyncDebouncer?: Partial<AsyncDebouncerOptions<AnyAsyncFunction>>;
  asyncQueuer?: Partial<AsyncQueuerOptions<any>>;
  asyncRateLimiter?: Partial<AsyncRateLimiterOptions<AnyAsyncFunction>>;
  asyncThrottler?: Partial<AsyncThrottlerOptions<AnyAsyncFunction>>;
  batcher?: Partial<BatcherOptions<any>>;
  debouncer?: Partial<DebouncerOptions<AnyFunction>>;
  queuer?: Partial<QueuerOptions<any>>;
  rateLimiter?: Partial<RateLimiterOptions<AnyFunction>>;
  throttler?: Partial<ThrottlerOptions<AnyFunction>>;
}
interface PacerContextValue {
  defaultOptions: PacerProviderOptions;
}
interface PacerProviderProps {
  children: ReactNode;
  defaultOptions?: PacerProviderOptions;
}
declare function PacerProvider({
  children,
  defaultOptions
}: PacerProviderProps): React.JSX.Element;
declare function usePacerContext(): PacerContextValue | null;
declare function useDefaultPacerOptions(): PacerProviderOptions;
//#endregion
export { PacerProvider, PacerProviderOptions, PacerProviderProps, useDefaultPacerOptions, usePacerContext };
//# sourceMappingURL=PacerProvider.d.cts.map