import { HttpRequestRetryPolicy } from "../types";
import { ContentType, HttpGetRequestParams, HttpRequestParams, HttpRequestWithBinaryBodyParams, HttpRequestWithJsonBodyParams, HttpResponse, RestClient } from "../types/RestClient";
/** Default implementation for {@link RestClient} interface that uses `axios` library for sending the requests. */
export declare class AxiosRestClient implements RestClient {
    private static readonly retryCountUpperBound;
    private _retryPolicy;
    constructor(retryPolicy: HttpRequestRetryPolicy | null);
    sendGetRequest<TBody>(params: HttpGetRequestParams & {
        responseType: ContentType.Json;
    }): Promise<HttpResponse<TBody>>;
    sendGetRequest(params: HttpGetRequestParams & {
        responseType: ContentType.Png;
    }): Promise<HttpResponse<Uint8Array>>;
    sendPostRequest<TBody>(params: HttpRequestWithJsonBodyParams): Promise<HttpResponse<TBody>>;
    sendPutRequest<TBody>(params: HttpRequestWithBinaryBodyParams): Promise<HttpResponse<TBody>>;
    sendPatchRequest<TBody>(params: HttpRequestWithJsonBodyParams): Promise<HttpResponse<TBody>>;
    sendDeleteRequest<TBody>(params: HttpRequestParams): Promise<HttpResponse<TBody>>;
    private executeRequest;
    private executeWithRetry;
}
//# sourceMappingURL=AxiosRestClient.d.ts.map