import { HttpClient, HttpErrorResponse } from '@angular/common/http';
import { BehaviorSubject, Observable } from 'rxjs';
import { Entity } from './entity.model';
export interface Filter {
    [name: string]: string | string[];
}
export declare abstract class EntityService<T extends Entity> {
    protected httpClient: HttpClient;
    protected readonly baseUrl: any;
    protected loadingSubject: BehaviorSubject<boolean>;
    loading$: Observable<boolean>;
    protected abstract entityPath: string;
    constructor(httpClient: HttpClient, environment: any);
    getById(id: number | string): Observable<T>;
    findAll(filter: Filter, order?: string, skip?: number, take?: number): Observable<T[]> | Observable<never>;
    getAll(): Observable<T[]>;
    delete(id: number | string): Observable<Object>;
    post(entity: T): Observable<Object>;
    put(id: number | string, entity: T): Observable<Object>;
    protected handleError(error: HttpErrorResponse): Observable<never>;
    protected convertToJson(body: any): any;
}
