import { ILoadbalance } from '../common';
import { Interceptor } from './interfaces/interceptor.interface';
import { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';
import { HttpOptions } from './interfaces/http-options.interface';
export declare class HttpClient {
    private readonly http;
    private readonly options;
    private lb;
    private interceptors;
    private service;
    constructor(http: AxiosInstance, options: HttpOptions);
    create(options?: HttpOptions): HttpClient;
    useLb(lb: ILoadbalance): this;
    useInterceptors(...interceptors: Interceptor[]): this;
    get(url: string, config?: AxiosRequestConfig): Promise<AxiosResponse | any>;
    delete(url: string, config?: AxiosRequestConfig): Promise<AxiosResponse | any>;
    head(url: string, config?: AxiosRequestConfig): Promise<AxiosResponse | any>;
    post(url: string, data?: any, config?: AxiosRequestConfig): Promise<AxiosResponse | any>;
    put(url: string, data?: any, config?: AxiosRequestConfig): Promise<AxiosResponse | any>;
    patch(url: string, data?: any, config?: AxiosRequestConfig): Promise<AxiosResponse | any>;
    request(options: AxiosRequestConfig): Promise<AxiosResponse | any>;
    private registerInterceptors;
    private send;
}
