import { AxiosInstance } from "axios";
export interface RateLimitedAxiosInstance extends AxiosInstance {
    getMaxRPS(): number;
    setMaxRPS(rps: number): void;
    setRateLimitOptions(options: RateLimitOptions): void;
}
export declare class RateLimitOptions {
    maxRequests?: number;
    perMilliseconds?: number;
    maxRPS?: number;
    timeoutMs?: number;
    retries?: number;
    onSend?: (inProcessing?: number, inQueue?: number, reqsPs?: number, retiresPs?: number) => void;
    onResponse?: (inProcessing?: number, inQueue?: number, reqsPs?: number, retiresPs?: number) => void;
    onPush?: (inProcessing?: number, inQueue?: number, reqsPs?: number, retiresPs?: number) => void;
    onQueueEmpty?: (inProcessing?: number, inQueue?: number, reqsPs?: number, retiresPs?: number) => void;
    onLimitReached?: (inProcessing?: number, inQueue?: number, reqsPs?: number, retiresPs?: number) => void;
    onRpsSample?: (inProcessing?: number, inQueue?: number, reqsPs?: number, retiresPs?: number) => void;
    onRetry?: (retryCount?: number) => void;
}
//# sourceMappingURL=axiosRateLimitTypes.d.ts.map