import { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios'; import { RateLimiterMemory } from 'rate-limiter-flexible'; export declare class RateLimitedAxios { rateLimiter: RateLimiterMemory; enableLogging: boolean; constructor(allowedCalls: number, intervall: number, enableLogging?: boolean); checkRateLimitAndWait(key?: string): Promise; get, D = any>(url: string, config?: AxiosRequestConfig, key?: string): Promise; delete, D = any>(url: string, config?: AxiosRequestConfig, key?: string): Promise; post, D = any>(url: string, data?: D, config?: AxiosRequestConfig, key?: string): Promise; put, D = any>(url: string, data?: D, config?: AxiosRequestConfig, key?: string): Promise; patch, D = any>(url: string, data?: D, config?: AxiosRequestConfig, key?: string): Promise; } export type RateLimitConfig = { allowedCalls: number; intervalSeconds: number; enableLogging?: boolean; }; export declare function useRateLimitInterceptor(axiosInstance: AxiosInstance, config: RateLimitConfig, key?: string): AxiosInstance;