import { Template } from '../models/template.model';
import { SimulatorState } from '../models/simulator-state.model';
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
import { DecisionPoint } from '../models/decisionpoint.model';
export declare class SimulatorEngineService {
    private template;
    private dataElementValues;
    private dataElementTexts;
    private endOfRoadReached;
    private lastConditionMetBranchLevel;
    private nonRelevantDataElementIds;
    simulatorStateChanged: BehaviorSubject<SimulatorState>;
    constructor();
    getTemplate(): Template;
    getAllDataElementValues(): Map<string, any>;
    getAllDataElementTexts(): Map<string, any>;
    getDataElementValue(dataElementId: string): any;
    getDataElementText(dataElementId: string): any;
    addOrUpdateDataElement(dataElementId: string, value: any, text: any): void;
    evaluateDecisionPoint(decisionPoint: DecisionPoint, branchingLevel: any): void;
    private resetValuesOfNonRelevantDataElements(nonRelevantDataElementIds);
    evaluateComputedElementDecisionPoint(elementId: string, decisionPoint: DecisionPoint, branchingLevel: any): void;
    private evaluateArithmeticExpression(computedValue);
    private evaluateComputedExpressions();
    private evaluateConditionalProperty(dataelement, nonRelevantDataElementIds?);
    private isCondtionMet();
    evaluateDecisionAndConditionalProperty(): Array<string>;
    private RevertConditionValues();
    private evaluateDecisionPoints();
    initialize(template: Template): void;
}
