import { AxiosInstance, AxiosRequestConfig, AxiosResponse, InternalAxiosRequestConfig } from 'axios';

export interface HttpResponse<T = any> extends AxiosResponse<T> {
}
export type HttpRequest<D = any> = AxiosRequestConfig<D>;
export interface HttpClientInterceptor {
    request(request: InternalAxiosRequestConfig): InternalAxiosRequestConfig | Promise<InternalAxiosRequestConfig>;
    requestError?(error: any): Promise<any> | any;
    response(response: HttpResponse): HttpResponse | Promise<HttpResponse>;
    responseError?(error: any): Promise<any> | any;
}
export declare function createHttpClientInterceptor(interceptors: HttpClientInterceptor[], http: AxiosInstance): AxiosInstance;
