import { AxiosRequestConfig } from 'axios';
import { RequestCallback } from './model/RequestCallback';
import RequestClientWrapperConfiguration from './model/RequestClientWrapperConfiguration';
import { RequestConfig } from './model/RequestConfig';
export default class RequestClientWrapper {
    private readonly requestClientWrapperConfiguration;
    private readonly logger;
    private readonly maximumConcurrentConnections;
    private readonly requestLogger;
    private readonly isJwtToken;
    requestQueue: RequestConfig[];
    pendingRequests: number;
    constructor(requestClientWrapperConfiguration: RequestClientWrapperConfiguration);
    get(url: string, params: AxiosRequestConfig, callback: RequestCallback): void;
    put(url: string, params: AxiosRequestConfig, callback: RequestCallback): void;
    patch(url: string, params: AxiosRequestConfig, callback: RequestCallback): void;
    post(url: string, params: AxiosRequestConfig, callback: RequestCallback): void;
    private handleRequest;
    delete(url: string, params: AxiosRequestConfig, callback: RequestCallback): void;
    prepareRequest(requestConfig: RequestConfig): Promise<void>;
    private makeRequest;
    private handleResponse;
    private getMaximumRetryLimitExceededMessage;
    private didRequestTimeout;
    private requestCompleted;
    private shouldRequestBeRetried;
    private isApiError;
    private retryRequest;
    private getJitterDelayMs;
    private didRequestFail;
    private parseJwt;
    private isItJwtToken;
}
