import { ANode } from 'san'; import { ComponentInfo } from '../models/component-info'; import { IDGenerator } from '../utils/id-generator'; import { Statement } from '../ast/renderer-ast-dfn'; import type { RenderOptions } from './renderer-options'; /** * ANode 编译 * * 负责单个 ComponentClass 的编译,每个 ANodeCompiler 对应于一个 ComponentInfo。 */ export declare class ANodeCompiler { private componentInfo; private ssrOnly; private id; private useProvidedComponentClass; private elementCompiler; private inScript; /** * @param componentInfo 要被编译的节点所在组件的信息 * @param ssrOnly san-ssr 当做模板引擎来使用(产出 HTML 更简单,但无法反解) * @param id 抗冲突变量名产生器 */ constructor(componentInfo: ComponentInfo, ssrOnly: boolean, id: IDGenerator, useProvidedComponentClass?: RenderOptions['useProvidedComponentClass']); compile(aNode: ANode, isRootElement: boolean): Generator; private generateRef; private compileText; private compileTemplate; private compileFragment; private compileDynamic; private compileIf; private compileFor; private compileSlot; private compileElement; /** * add attrs to root element */ private compileRootAttrs; private compileComponent; /** * renderOnly * ? typeof (info.preferRenderOnly) === "object" ? {cmpt: [...info.preferRenderOnly.cmpt, "ui-c"]} * : {cmpt: ["ui-c"]} : false */ private compileComponentRenderOnlyParam; private compileSlotRenderer; private childRenderData; }