import { Observable } from 'rxjs'; import { EntityManager } from '../api'; import { PropertyDescriptor } from '../descriptors'; import { IEntityService } from '../../services/IEntity.service'; export declare abstract class AbstractEntity { static entityManager: EntityManager; static entityService: IEntityService; private static _properties; private static _computedProperties; static get properties(): Map; static get primaryKey(): [string, PropertyDescriptor][]; static addProperty(prototype: any, key: string, descriptor: PropertyDescriptor): void; get primary(): any; get sanitized(): any; static onPreRead(id: any): void; static onPostRead(id: any): void; static onPreReadAll(): void; static onPostReadAll(): void; static onPreSave(id: any): void; static onPostSave(id: any): void; static onPreDelete(id: any): void; static onPostDelete(id: any): void; static read(id: any): Observable; static readAll(): Observable; static get count(): Observable; read(): Observable; save(): Promise>; delete(): Promise; } export declare const trackByPrimary: (_: any, item: T) => any;