import { HttpClient } from '@angular/common/http';
import { SdCacheService } from '@sd-angular/core/services/cache';
import { ISdApiConfiguration, SdDeleteOption, SdGetOption, SdPostOption, SdPutOption } from './api.model';
import * as i0 from "@angular/core";
export declare class SdApiService {
    #private;
    private httpClient;
    private configurations;
    private cacheService;
    constructor(httpClient: HttpClient, configurations: ISdApiConfiguration[], cacheService: SdCacheService);
    get http(): HttpClient;
    get: <T = any>(url: string, option?: SdGetOption) => Promise<T>;
    post: <T = any>(url: string, body?: any, option?: SdPostOption) => Promise<T>;
    put: <T = any>(url: string, body?: any, option?: SdPutOption) => Promise<T>;
    delete: <T = any>(url: string, option?: SdDeleteOption) => Promise<T>;
    upload: (url: string, option?: {
        extensions?: string[];
        maxSizeInMb?: number;
    }) => Promise<any>;
    uploadFile: (url: string, file: File) => Promise<any>;
    static ɵfac: i0.ɵɵFactoryDeclaration<SdApiService, [null, { optional: true; }, null]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SdApiService>;
}
