import { HashSet, OrderedHashSet } from "antlr4ng"; import type { IAttribute } from "../../../tool/IAttribute.js"; import { Rule } from "../../../tool/Rule.js"; import { IOutputModelFactory } from "../../IOutputModelFactory.js"; import { DispatchMethod } from "../DispatchMethod.js"; import { OutputModelObject } from "../OutputModelObject.js"; import { AttributeDecl } from "./AttributeDecl.js"; import { Decl } from "./Decl.js"; /** * This object models the structure holding all of the parameters, * return values, local variables, and labels associated with a rule. */ export declare class StructDecl extends Decl { derivedFromName: string; provideCopyFrom: boolean; readonly tokenDecls: OrderedHashSet; readonly tokenTypeDecls: OrderedHashSet; readonly tokenListDecls: OrderedHashSet; readonly ruleContextDecls: OrderedHashSet; readonly ruleContextListDecls: OrderedHashSet; readonly attributeDecls: HashSet; protected readonly generateListener: boolean; protected readonly generateVisitor: boolean; dispatchMethods: DispatchMethod[]; attrs: OrderedHashSet; getters: OrderedHashSet; ctorAttrs: AttributeDecl[]; interfaces: OutputModelObject[]; extensionMembers: OutputModelObject[]; signatures: OrderedHashSet; constructor(factory: IOutputModelFactory, r: Rule, name?: string); addDispatchMethods(r: Rule): void; addDecl(a: Decl | IAttribute): void; addDecls(attrList: IAttribute[]): void; implementInterface(value: OutputModelObject): void; addExtensionMember(member: OutputModelObject): void; isEmpty(): boolean; }