import { AxiosProgressEvent, AxiosResponse } from "axios";
import { RestSession } from "../../rest";
import { HttpMethod } from "./HttpMethod";
import { AuthMaterial } from "../../auth";
import { HttpHeaders } from "./HttpHeader";
export declare class HttpRestRequest {
    private readonly session;
    private acceptHeader;
    private requestConfig;
    private constructor();
    static createRequest(session: RestSession<any>): HttpRestRequest;
    setAcceptHeader(mimeType: string): HttpRestRequest;
    setAdditionalHeader(key: HttpHeaders, value: string): HttpRestRequest;
    buildRequest(httpMethod: HttpMethod, url: URL, httpEntity?: any, contentType?: string, authMaterial?: AuthMaterial): Promise<HttpRestRequest>;
    setAbortSignal(signal?: AbortSignal): HttpRestRequest;
    setOnUploadProgress(callback?: (progressEvent: AxiosProgressEvent) => void): HttpRestRequest;
    setOnDownloadProgress(callback?: (progressEvent: AxiosProgressEvent) => void): HttpRestRequest;
    private checkResponse;
    executeRequest(): Promise<any>;
    execute(): Promise<AxiosResponse>;
}
