import { Node, Options } from 'acorn'; export declare const PARSE_CONFIG: Options; export declare const AST_TYPE: { Literal: string; ExpressionStatement: string; LogicalExpression: string; BinaryExpression: string; UnaryExpression: string; MemberExpression: string; Identifier: string; ArrayExpression: string; CallExpression: string; TemplateLiteral: string; TemplateElement: string; ConditionalExpression: string; SequenceExpression: string; }; export declare enum PropBindType { static = "static", state = "rematch", computed = "computed", forItem = "for-item", expression = "expression", prop = "prop", slot = "slot", dataVar = "dataVar", stateData = "state", /** * @deprecated */ paramData = "params", params = "params", scope = "scope" } export declare enum ActionType { Rematch = "rematch", Material = "material", GeneralFunc = "general-func", LifeCycle = "lifecycle", PropEvent = "prop-event", HandlerFn = "handler-fn", Inline = "inline", Platform = "platform", DataSource = "dataSource" } export interface IDynamicValue { type: PropBindType; value: any; extra?: any; } export interface IDataBind { propertyPath: string; bindDataPath: string; type?: PropBindType; extra?: any; } interface NodeEx extends Node { $parent: NodeEx; $path: any[]; expressions: NodeEx[]; /** * LogicalExpression */ left: NodeEx; right: NodeEx; /** * UnaryExpression */ operator: string; prefix: boolean; /** * MemberExpression */ property: NodeEx; object: NodeEx; computed: boolean; /** * Literal */ name: string; value: any; regex: any; } /** * 检查全局变量静态访问是否符合要求 * @export * @param {*} expression */ export declare function parseMemberProperty(expression: NodeEx, checkMemberProperty?: (path: any[]) => void): (string | number)[]; interface IDynamicValueParserOptions { type: PropBindType; value?: string; expression?: any; pageId?: string; } export declare class DynamicValueParser { expression: NodeEx; expressionString: string; options: IDynamicValueParserOptions; constructor(expressionString: string, options?: Partial); /** * parser */ parse(): IDynamicValueParserOptions; linkBinaryExpression(expression: NodeEx): void; parseBinaryExpression(expression: NodeEx, options: this['options']): IDynamicValueParserOptions; parseSimpleExpression(expression: NodeEx, options: this['options']): IDynamicValueParserOptions; parseItemAliseExpression(expression: NodeEx, options: this['options']): this["options"]; _generatePrefix(memberProperty: (number | string)[], index: number): string; _replaceExpression(meta: { memberProperty: (number | string)[]; index: number; replacer: string; expressionString?: string; }): string; parseDataset(expression: NodeEx, meta: { memberProperty: (number | string)[]; index: number; replacer: string; }, options: this['options']): IDynamicValueParserOptions; } export {}; //# sourceMappingURL=index.d.ts.map