import { DataContainer, DcuplInitOptions, ViewDefinition, ListItem, ModelDefinition, RawItem, ChangeDetector, DependencyGraph } from '@dcupl/common'; import { DcuplModel } from './model/model'; import { QualityController } from '../quality/quality.controller'; import { Dcupl } from '../dcupl'; type ModelParserCalculationTimingEntry = { modelName: string; step: string; value: number; }; export declare class ModelParser { cdRef: ChangeDetector; qualityController: QualityController; dcuplInstance: Dcupl; unprocessedModelDescriptions: Map; protected unprocessedData: DataContainer[]; dependencyGraph: DependencyGraph; views: Map; models: Map; initOptions: DcuplInitOptions; private calculationTimings; constructor(cdRef: ChangeDetector, qualityController: QualityController, dcuplInstance: Dcupl); init(): Promise; private prepareModels; private validateModels; /** * initDependencyGraph * The dependencies are only affected by references. Derived properties/references do not count since they * are only possible if references are already present to derive from. Same goes for resolved references. */ private initDependencyGraph; update(): Promise; reprocessData(): Promise; protected getSortedCalculationTimings(): ModelParserCalculationTimingEntry[]; addModel(model: ModelDefinition): void; private mergeModels; addData(container: DataContainer): void; addView(view: ViewDefinition): void; private setError; private getMergedContainers; private mergeContainers; private connectDataWithModels; handleAlternativeKey(containers: DataContainer[]): DataContainer[]; private handleDataContainer; _getModelKeys(): string[]; _getViewKeys(options?: { modelKey: string; }): string[]; } export {};