import { BehaviorSubject, Observable } from 'rxjs'; import { PeriodFunctions } from './annotations'; import { DataSource } from './data-source'; import { EntityService } from './entity'; import { EntityType, IDimensionMember, Property, QueryReturn, CalculatedProperty } from './models'; import { Annotation, Dimension, QueryOptions } from './types'; /** * Public abstract entity service class, including some commonly used public capabilities such as: * - Merging custom Entity attributes * - Supporting simple JavaScript entity field calculation expressions * - Provisional indicator definition */ export declare abstract class AbstractEntityService implements EntityService { readonly dataSource: DataSource; readonly entitySet: string; __id__: string; private destroySubject$; readonly destroy$: Observable; /** * Provisional indicators definition */ protected registerMeasures$: BehaviorSubject>; protected _entityType$: BehaviorSubject; readonly entityType$: Observable; get entityType(): EntityType; constructor(dataSource: DataSource, entitySet: string); abstract refresh(): void; abstract query(options?: QueryOptions): Observable>; abstract selectQuery(options?: QueryOptions): Observable>; abstract getCalculatedMember(measure: string, type: PeriodFunctions, calendar?: string): Property; /** * @deprecated use selectMembers */ getMembers(property: Dimension): Observable; selectMembers(property: Dimension): Observable; selectEntityType(): Observable; getAnnotation(term: string, qualifier: string): Observable; getIndicator(id: string): import("./models").Indicator; selectIndicator(idOrCode: string): Observable; registerMeasure(name: string, property: CalculatedProperty): void; getProvisionalMeasures(): CalculatedProperty[]; onDestroy(): void; }