import { HttpClient, HttpHeaders } from '@angular/common/http';
import { ConfigurationService } from '../configuration/configuration.service';
import { TranslateService } from '../translate/translate.service';
import { NotifyService } from '../notify/notify.service';
export declare class ApiService {
    private httpClient;
    private notifyService;
    private configurationService;
    private translateService;
    private host;
    private get key();
    private tokenHeaderKey;
    private uploadId;
    private setCustomHeader;
    private beforeRemote;
    private afterRemote;
    private get token();
    get defaultHeader(): HttpHeaders;
    private get headers();
    constructor(httpClient: HttpClient, notifyService: NotifyService, configurationService: ConfigurationService, translateService: TranslateService);
    private init;
    post<T = any>(url: string, body?: any, headers?: HttpHeaders): Promise<T>;
    put<T = any>(url: string, body?: any, headers?: HttpHeaders): Promise<T>;
    get<T = any>(url: string, headers?: HttpHeaders, options?: {
        responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';
    }): Promise<T>;
    delete<T = any>(url: string, headers?: HttpHeaders): Promise<T>;
    uploadSingle: (url: string, option?: {
        extensions?: string[];
        maxSizeInMb?: number;
        validator?: (fileName: string) => string;
    }) => Promise<any>;
    upload: (url: string, file: File, option?: {
        extensions?: string[];
        maxSizeInMb?: number;
        validator?: (fileName: string) => string;
    }) => Promise<any>;
    setTokenHeaderValue: (tokenHeaderValue: string) => void;
    getTokenHeaderValue: () => string;
    get hasTokenHeaderValue(): boolean;
    clearToken(): void;
    getHost(): string;
}
