import { TransformVisitor } from "visitor-as"; import { ClassDeclaration, DiagnosticEmitter, FieldDeclaration } from "assemblyscript"; import { EventDeclaration } from "../ast"; import { EventConfig } from "../config"; /** * EventVisitor traversal `@event` class and implements Event interface for it. The fields must be scale types. * Note: Don't reuse a visitor if you have not reset the inner state. */ export declare class EventVisitor extends TransformVisitor { readonly emitter: DiagnosticEmitter; readonly config: EventConfig; private topicNum; private eventId; private hasBase; private topics; private data; eventDeclaration: EventDeclaration; constructor(emitter: DiagnosticEmitter, config: EventConfig); visitClassDeclaration(node: ClassDeclaration): ClassDeclaration; visitFieldDeclaration(node: FieldDeclaration): FieldDeclaration; /** * * @returns Return current number of found topic field */ getTopicNum(): number; private visitNonTopicField; private genEvent; private genEventId; }