import { ModelService, Library } from '../../model/domain'; import { Operand, Parameter, Format, ActionObserver } from '../../shared/domain'; import { OperatorMetadata, FunctionAdditionalInfo, OperatorAdditionalInfo, ConstBuilder, OperandFacade, OperandBuilder } from '../../operand/domain'; import { ExpressionConvert, ExpressionConverter, Executor, ExpressionListener, Expressions } from '../domain'; export declare class ExpressionsImpl implements Expressions { private readonly model; private readonly expressionConvert; private readonly operandFacade; private readonly executor; private readonly listener; constructor(model: ModelService, expressionConvert: ExpressionConvert, operandFacade: OperandFacade, executor: Executor, listener: ExpressionListener); get operatorAlias(): [string, any][]; get functionAlias(): [string, any][]; get operators(): [string, OperatorMetadata][]; get enums(): [string, [string, any][]][]; get formats(): [string, Format][]; get constants(): [string, any][]; get functions(): [string, OperatorMetadata][]; addOperator(sing: string, source: any, additionalInfo: OperatorAdditionalInfo): void; addFunction(sing: string, source: any, additionalInfo: FunctionAdditionalInfo): void; addEnum(key: string, values: [string, any][] | any): void; addFormat(key: string, pattern: string): void; addConstant(key: string, value: any): void; addOperatorAlias(alias: string, reference: string): void; addFunctionAlias(alias: string, reference: string): void; addLibrary(library: Library): void; getConstantValue(name: string): any | undefined; getEnumValue(name: string, option: string): any; getEnum(name: string): any; getFormat(name: string): Format | undefined; getOperator(operator: string, operands?: number): OperatorMetadata; getFunction(name: string): OperatorMetadata; priority(name: string, cardinality?: number): number; isEnum(name: string): boolean; isConstant(name: string): boolean; isOperator(name: string, operands?: number): boolean; isFunction(name: string): boolean; get constBuilder(): ConstBuilder; getBuilder(key: string): OperandBuilder; /** * Get parameters of expression * @param expression expression * @returns Parameters of expression */ parameters(expression: string): Parameter[]; /** * Get type of expression * @param expression expression * @returns Type of expression */ type(expression: string): string; build(expression: string, key?: string): Operand; clone(source: Operand, key?: string): Operand; /** * Evaluate and solve expression * @param expression string expression * @param data Data with variables * @returns Result of the evaluate expression */ eval(expression: string, data?: any): any; evalAsync(expression: string, data?: any): Promise; execute(task: string, data?: any): Promise; addConvert(key: string, converter: ExpressionConverter): ExpressionConvert; getConvert(key: string): ExpressionConverter; convert(source: any, from: string): [string, any]; subscribe(observer: ActionObserver): void; unsubscribe(observer: ActionObserver): void; }