import { HttpClient } from "@angular/common/http";
import { GlobalService } from "./global.service";
import { Observable } from "rxjs";
import { HttpParam, Ref, ResponseModel } from "../models";
export declare abstract class BaseService<T> {
    protected _baseApiUrl?: string;
    http: HttpClient;
    globalService: GlobalService;
    constructor(apiName?: string);
    get baseApiUrl(): string | undefined;
    get<T>(url: string, ...params: any[]): Observable<ResponseModel<T>> | Observable<ResponseModel<null>>;
    post<T>(url: string, model: object | any): Observable<ResponseModel<T>> | Observable<ResponseModel<null>>;
    put<T>(url: string, model: object | any): Observable<ResponseModel<T>> | Observable<ResponseModel<null>>;
    delete<T>(url: string, ...params: any[]): Observable<ResponseModel<T>> | Observable<ResponseModel<null>>;
    list<T>(httpParam?: HttpParam): Observable<ResponseModel<T[]>> | Observable<ResponseModel<T>> | Observable<ResponseModel<any>>;
    download<T>(url: string, ...params: any[]): Observable<Blob | MediaSource>;
    getRef(refName: string, fkId?: number | undefined, fk2Id?: string | undefined, fk3Id?: number | undefined, fk4Id?: string | undefined): Observable<ResponseModel<Ref[]>>;
    getRefUrl(url: string, refName: string, fkId?: number | undefined, fk2Id?: string | undefined, fk3Id?: number | undefined, fk4Id?: string | undefined): Observable<ResponseModel<Ref[]>>;
    downloadWithModel<T>(url: string, model: object): Observable<Blob | MediaSource>;
}
