import { IDGenerator } from '../utils/id-generator'; import { ANodeCompiler } from './anode-compiler'; import { AElement } from 'san'; import { Statement } from '../ast/renderer-ast-dfn'; import { ComponentInfo } from '../models/component-info'; /** * Element 的编译器 * * 每个 ElementCompiler 对象对应于一个 ComponentClass,可以用来编译该组件中的所有 HTML 标签,并递归地调用 ANodeCompiler 来编译标签内容。 */ export declare class ElementCompiler { private aNodeCompiler; private id; /** * @param aNodeCompiler 编译 aNode 的对象,编译标签内容时用 * @param id 抗冲突变量名产生器 */ constructor(aNodeCompiler: ANodeCompiler, id: IDGenerator); /** * 编译元素标签头 */ tagStart(aNode: AElement, componentInfo: ComponentInfo, dynamicTagName?: string, beforeEnd?: (aNode: AElement, propsAttrAssign: Record) => Generator): Generator; private compileProperty; private isLiteral; private compileBindProperties; /** * 编译元素闭合 */ tagEnd(aNode: AElement, dynamicTagName?: string): Generator; /** * 编译元素内容 */ inner(aNode: AElement): Generator; }