export declare enum DataType { Number = "number", String = "string", Date = "date", Boolean = "boolean" } export declare enum ExpressionType { Number = "number", String = "string", Date = "date", Boolean = "boolean", FunctionCall = "function_call", Attribute = "attribute", ComputedField = "computed_field" } export type DataValueType = number | string | boolean; export type FunctionType = 'equal' | 'notEqual' | 'gequal' | 'lequal' | 'and' | 'or' | 'lesser' | 'greater' | 'sum2' | 'sub2' | 'mul2' | 'div2' | 'concat' | 'substring' | 'lower' | 'upper' | 'if_' | 'pmt' | 'fv' | 'impt' | 'ppmt' | 'sum' | 'div' | 'sub' | 'mul' | 'avg' | 'wavg' | 'min' | 'max' | 'count' | 'isEmpty' | 'isNotEmpty' | 'startsWith' | 'endsWith' | 'contains' | 'isNull' | 'isNotNull' | 'in' | 'notIn' | 'between' | 'abs'; export { AtxFunc as FunctionInfo } from '../expressionParser/astFormatting'; interface BaseExpression { _type?: DataType; type: ExpressionType; } export interface AttributeExpression extends BaseExpression { type: ExpressionType.Attribute; from: string; on: string; } export type LiteralExpressionType = ExpressionType.Number | ExpressionType.String | ExpressionType.Date | ExpressionType.Boolean; export interface LiteralExpression extends BaseExpression { type: LiteralExpressionType; value: DataValueType; } export interface FunctionExpression extends BaseExpression { type: ExpressionType.FunctionCall; value: string; on: Array; isAggregate: boolean; expressionString?: string; } export interface ComputedFieldExpression extends BaseExpression { type: ExpressionType.ComputedField; computedFieldId: string; } export type Expression = AttributeExpression | LiteralExpression | FunctionExpression | ComputedFieldExpression;