import { InjectionToken, Injector } from '@angular/core';
import { HttpClient, HttpInterceptor, HttpHandler } from '@angular/common/http';
import * as i0 from "@angular/core";
export interface HttpCustomClient {
    /**
     * Enables caching for this request.
     * @param {boolean} forceUpdate Forces request to be made and updates cache entry.
     * @return {HttpCustomClient} The new instance.
     */
    cache(forceUpdate?: boolean): HttpCustomClient;
    /**
     * Skips default error handler for this request.
     * @return {HttpCustomClient} The new instance.
     */
    skipErrorHandler(): HttpCustomClient;
    /**
    * Skips default API Prefix for this request.
    * @return {HttpCustomClient} The new instance.
    */
    skipApiPrefix(): HttpCustomClient;
    /**
   * Skips default Token Interceptor for this request.
   * @return {HttpCustomClient} The new instance.
   */
    skipToken(): HttpCustomClient;
    /**
  * Skips default Header Interceptor for this request.
  * @return {HttpCustomClient} The new instance.
  */
    skipHeader(): HttpCustomClient;
}
/**
 * Allows to override default dynamic interceptors that can be disabled with the HttpService extension.
 * Except for very specific needs, you should better configure these interceptors directly in the constructor below
 * for better readability.
 *
 * For static interceptors that should always be enabled (like ApiPrefixInterceptor), use the standard
 * HTTP_INTERCEPTORS token.
 */
export declare const HTTP_DYNAMIC_INTERCEPTORS: InjectionToken<HttpInterceptor>;
/**
 * Extends HttpClient with per request configuration using dynamic interceptors.
 */
export declare class HttpService extends HttpClient implements HttpCustomClient {
    private httpHandler;
    private injector;
    private interceptors;
    constructor(httpHandler: HttpHandler, injector: Injector, interceptors?: HttpInterceptor[]);
    cache(forceUpdate?: boolean): HttpService;
    skipErrorHandler(): HttpService;
    skipApiPrefix(): HttpService;
    skipToken(): HttpService;
    skipHeader(): HttpService;
    request(method?: any, url?: any, options?: any): any;
    private removeInterceptor;
    private addInterceptor;
    static ɵfac: i0.ɵɵFactoryDeclaration<HttpService, [null, null, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<HttpService>;
}
