import { ClassDeclaration, FieldDeclaration, DiagnosticEmitter } from "assemblyscript"; import { TransformVisitor } from "visitor-as"; import { AskConfig } from "../config"; /** * SpreadLayoutVisitor traversal `@spreadLayout` class and implements SpreadLayout interface for it. The fields must be Codec types. * Note: Don't reuse a visitor if you have not reset the inner state. */ export declare class SpreadLayoutVisitor extends TransformVisitor { readonly emitter: DiagnosticEmitter; readonly config: AskConfig; private fields; private hasBase; constructor(emitter: DiagnosticEmitter, config: AskConfig); visitClassDeclaration(node: ClassDeclaration): ClassDeclaration; visitFieldDeclaration(node: FieldDeclaration): FieldDeclaration; private genSpreadLayout; private genPullSpread; private genPushSpread; private genClearSpread; }