import { HttpClient, HttpHeaders } from '@angular/common/http';
import { IApiConfiguration } from './api.model';
import { SdCacheService } from '@sd-angular/core/cache';
import { SdTokenService } from './token.service';
export declare class SdApiService {
    #private;
    private httpClient;
    private configuration;
    private cacheService;
    private tokenService;
    private uploadId;
    private translate;
    constructor(httpClient: HttpClient, configuration: IApiConfiguration, cacheService: SdCacheService, tokenService: SdTokenService);
    get http(): HttpClient;
    post: <T = any>(url: string, body?: any, headers?: HttpHeaders, options?: {
        responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';
    }) => Promise<T>;
    postCache: <T = any>(url: string, body?: any, options?: {
        cacheType?: 'default' | 'session' | 'local';
        cacheHours?: number;
        headers?: HttpHeaders;
    }) => Promise<T>;
    put: <T = any>(url: string, body?: any, headers?: HttpHeaders) => Promise<T>;
    getWithParams: <T = any>(url: string, params: any, options?: {
        headers?: HttpHeaders;
        responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';
    }) => Promise<T>;
    getCacheWithParams: <T = any>(url: string, params: any, headers?: HttpHeaders, options?: {
        reload?: boolean;
        cacheType?: 'default' | 'session' | 'local';
        cacheHours?: number;
        headers?: HttpHeaders;
    }) => Promise<T>;
    get: <T = any>(url: string, headers?: HttpHeaders, options?: {
        responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';
        encodeURI?: boolean;
    }) => Promise<T>;
    getCache: <T = any>(url: string, options?: {
        reload?: boolean;
        cacheType?: 'default' | 'session' | 'local';
        cacheHours?: number;
        headers?: HttpHeaders;
        encodeURI?: boolean;
    }) => 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) => Promise<any>;
}
