import { HttpManager } from "./HttpManager";
import { LevelLogs } from "../common/LevelLogs";
declare class HTTPService extends LevelLogs {
    serverURL: any;
    _host: any;
    _logger: any;
    proxy: any;
    eventEmitter: any;
    httpManager: HttpManager;
    private _options;
    private _core;
    private mergedGot;
    private reqAgent;
    private reqAgentHttp;
    private reqAgentHttps;
    useRequestRateLimiter: boolean;
    apiHeadersConfiguration: any[];
    static getClassName(): string;
    getClassName(): string;
    static getAccessorName(): string;
    getAccessorName(): string;
    constructor(_core: any, _options: any, _logger: any, _proxy: any, _evtEmitter: any);
    checkHTTPStatus(): Promise<{
        nbHttpAdded: number;
        httpQueueSize: number;
        nbRunningReq: number;
        maxSimultaneousRequests: number;
        nbReqInQueue: number;
        retryAfterTime: number;
        retryAfterEndTime: number;
        retryAfterStartTime: number;
    }>;
    /**
     *
     */
    hasJsonStructure(str: any): boolean;
    get host(): any;
    start(): Promise<any>;
    stop(): Promise<any>;
    tokenExpirationControl(bodyjs: {
        errorCode: number;
        errorDetails: string;
    }): void;
    addAdditionalHeaders(httpConfig: {
        URL: string;
        method: string;
        headers: any;
    }): void;
    getUrlRaw(url: any, headers: any, params: any, nbRetryBeforeFailed?: number, timeBetweenRetry?: number): Promise<any>;
    _getUrlRaw(url: any, headers: any, params: any, nbRetryBeforeFailed?: number, timeBetweenRetry?: number): Promise<any>;
    headUrlRaw(url: any, headers?: any, nbRetryBeforeFailed?: number, timeBetweenRetry?: number): Promise<any>;
    _headUrlRaw(url: any, headers?: any, nbRetryBeforeFailed?: number, timeBetweenRetry?: number): Promise<any>;
    postUrlRaw(url: any, headers: any, data: any): Promise<any>;
    _postUrlRaw(url: any, headers: any, data: any): Promise<any>;
    putUrlRaw(url: any, headers: any, data: any): Promise<any>;
    _putUrlRaw(url: any, headers: any, data: any): Promise<any>;
    deleteUrlRaw(url: any, headers?: any, data?: Object, nbRetryBeforeFailed?: number, timeBetweenRetry?: number): Promise<any>;
    _deleteUrlRaw(url: any, headers?: any, data?: Object, nbRetryBeforeFailed?: number, timeBetweenRetry?: number): Promise<any>;
    getUrlJson(url: any, headers: any, params: any, nbRetryBeforeFailed?: number, timeBetweenRetry?: number): Promise<any>;
    _getUrlJson(url: any, headers: any, params: any, nbRetryBeforeFailed?: number, timeBetweenRetry?: number): Promise<any>;
    treatSystemError(verb: string, error: any, rejectCallback: any): any;
    get(url: any, headers: any, params: any, responseType?: string, nbRetryBeforeFailed?: number, timeBetweenRetry?: number): Promise<any>;
    _get(url: any, headers: any, params: any, responseType?: string, nbRetryBeforeFailed?: number, timeBetweenRetry?: number): Promise<any>;
    post(url: any, headers: any, data: any, contentType: any, nbRetryBeforeFailed?: number, timeBetweenRetry?: number): Promise<any>;
    _post(url: any, headers: any, data: any, contentType: any, nbRetryBeforeFailed?: number, timeBetweenRetry?: number): Promise<any>;
    head(url: any, headers?: any, nbRetryBeforeFailed?: number, timeBetweenRetry?: number): Promise<any>;
    _head(url: any, headers?: any, nbRetryBeforeFailed?: number, timeBetweenRetry?: number): Promise<any>;
    patch(url: any, headers: any, data: any, type: any, nbRetryBeforeFailed?: number, timeBetweenRetry?: number): Promise<any>;
    _patch(url: any, headers: any, data: any, type: any, nbRetryBeforeFailed?: number, timeBetweenRetry?: number): Promise<any>;
    put(url: any, headers: any, data: any, type: any, nbRetryBeforeFailed?: number, timeBetweenRetry?: number): Promise<any>;
    _put(url: any, headers: any, data: any, type: any, nbRetryBeforeFailed?: number, timeBetweenRetry?: number): Promise<any>;
    putBuffer(url: any, headers: any, buffer: any): Promise<any>;
    _putBuffer(url: any, headers: any, buffer: any): Promise<any>;
    putStream(url: any, headers: any, stream: any): Promise<any>;
    delete(url: any, headers?: any, data?: Object): Promise<any>;
    _delete(url: any, headers?: any, data?: Object): Promise<any>;
}
export { HTTPService };
