export type HttpClientConfig = {
    url?: string;
    allowUnauthorizedCertificates?: boolean;
};
export type HttpResponse<TResult> = {
    result: TResult;
    status: number;
};
export type RequestOptions = {
    timeout?: number;
    headers?: {
        [name: string]: string | Array<string>;
    };
};
export declare class HttpClient {
    config: HttpClientConfig;
    private httpSuccessResponseCode;
    private httpRedirectResponseCode;
    constructor(config?: HttpClientConfig);
    get<TResponse>(url: string, options?: RequestOptions): Promise<HttpResponse<TResponse>>;
    post<TPayload, TResult>(url: string, data: TPayload, options?: RequestOptions): Promise<HttpResponse<TResult>>;
    put<TResult>(url: string, data: TResult, options?: RequestOptions): Promise<HttpResponse<TResult>>;
    delete<TResult>(url: string, options?: RequestOptions): Promise<HttpResponse<TResult>>;
    private decorateSSLVerification;
    private addPrefixToUrl;
    private buildHeaders;
    private evaluateResponse;
    private responseIsAnError;
    private createAndThrowError;
    private tryParseStringtoJson;
    private throwErrorFromString;
    private throwErrorFromObject;
    private throwEngineError;
    private throwNonEngineError;
    private isEngineError;
}
