import { HttpClient, HttpEvent } from '@angular/common/http';
import { Observable, Subject } from 'rxjs';
import { AbstractHttpService } from '@wm/core';
import { HttpClientService } from '@wavemaker/variables';
import * as i0 from "@angular/core";
export declare class HttpServiceImpl extends AbstractHttpService implements HttpClientService {
    private httpClient;
    nonBodyTypeMethods: string[];
    sessionTimeoutObservable: Subject<unknown>;
    sessionTimeoutQueue: any[];
    localeObject: any;
    constructor(httpClient: HttpClient);
    /**
     * This method handles session timeout.
     * @param options
     * @param resolve
     * @param reject
     */
    handleSessionTimeout(options: any, subscriber401?: any): void;
    /**
     * Generates a request with provided options
     * @param options, request params/options
     */
    private generateRequest;
    /**
     * Make a http call and returns an observable that can be cancelled
     * @param options, options using which the call needs to be made
     */
    sendCallAsObservable(options: any, params?: any): any;
    sendCall(requestParams: any, variable: any, params?: any): Promise<unknown>;
    /**
     * Makes a http call and return a promise
     * @param options, options using which the call needs to be made
     */
    send(options: any): Promise<unknown>;
    cancel(variable: any, $file?: any): void;
    setLocale(locale: any): void;
    getLocale(): any;
    getHeader(error: any, headerKey: any): any;
    isPlatformSessionTimeout(error: any): boolean;
    get(url: string, options?: any): Promise<string>;
    post(url: any, data: any, options: any): Promise<unknown>;
    put(url: any, data: any, options: any): Promise<unknown>;
    patch(url: any, data: any, options: any): Promise<unknown>;
    delete(url: any, options: any): Promise<unknown>;
    head(url: any, options: any): Promise<unknown>;
    jsonp(url: any, options: any): Promise<unknown>;
    upload(url: any, data: any, options: any): Observable<HttpEvent<any>>;
    uploadFile(url: any, data: any, variable: any, options?: any): Promise<unknown>;
    /**
     * registers a callback to be trigerred on session timeout
     * @param callback
     */
    registerOnSessionTimeout(callback: any): void;
    /**
     * trigger the registered methods on session timeout
     */
    on401(): void;
    pushToSessionFailureQueue(callback: any): void;
    /**
     * Execute queued requests, failed due to session timeout
     */
    executeSessionFailureRequests(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<HttpServiceImpl, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<HttpServiceImpl>;
}
