import { ComponentStore } from '@metad/store'; import { BehaviorSubject, Observable, ReplaySubject } from 'rxjs'; import { PeriodFunctions, PresentationVariant, SelectionVariant } from '../annotations'; import { DataSettings } from '../data-settings'; import { DataSourceOptions } from '../data-source'; import { DSCoreService } from '../ds-core.service'; import { EntityService } from '../entity'; import { EntityType, Property, QueryReturn } from '../models'; import { Annotation, AnnotationTerm, Dimension, Measure, QueryOptions } from '../types'; export interface EntityBusinessState { dataSettings: DataSettings; selectionVariant?: SelectionVariant; presentationVariant?: PresentationVariant; dataSourceOptions: DataSourceOptions; } export declare class EntityBusinessService extends ComponentStore { dsCoreService: DSCoreService; protected __id__: string; get dataSettings(): DataSettings; set dataSettings(value: DataSettings); readonly dataSettings$: Observable; readonly _dataSource$: Observable; readonly entitySet$: Observable; get selectionVariant(): SelectionVariant; set selectionVariant(value: SelectionVariant); get presentationVariant(): PresentationVariant; set presentationVariant(value: PresentationVariant); readonly presentationVariant$: Observable; get slicers(): (string | import("../types").ISlicer | import("../types").IFilter | import("../types").IAdvancedFilter)[]; set slicers(value: (string | import("../types").ISlicer | import("../types").IFilter | import("../types").IAdvancedFilter)[]); private _initialise$; readonly initialise$: Observable; loading$: BehaviorSubject; protected result$: BehaviorSubject>; readonly dataSource$: Observable; get entityService(): EntityService; protected entityService$: BehaviorSubject>; internalError$: ReplaySubject; protected refresh$: ReplaySubject; /** * @deprecated use `getEntityType` or `selectEntityType` method */ entityType: EntityType; constructor(dsCoreService: DSCoreService); /** * @experiment Use async await as the asynchronous processing method for getXXX method; * use Observable as the asynchronous processing method for selectXXX method; * * @returns */ getEntityType(): Promise; /** * @experiment Use async await as the asynchronous processing method of getXXX method * * @returns */ getProperty(name: Dimension | Measure | string): Promise; selectEntityType(): Observable; query(options?: QueryOptions): Observable>; /** * If you change the query conditions and logic first, you can override this method in the subclass * * @param options `QueryOptions` */ selectQuery(options?: QueryOptions): Observable>; refresh(force?: boolean): void; selectResult>(): Observable; calculateFilters(queryOptions?: QueryOptions): QueryOptions; getAnnotation(term: AnnotationTerm, qualifier?: string): Observable; getCalculatedMember(measure: string, type: PeriodFunctions, calendar?: string): Property; getIndicator(idOrCode: string): import("../models").Indicator; selectIndicator(idOrCode: string): Observable; }