import { AbstractParseTreeVisitor } from "antlr4ts/tree/AbstractParseTreeVisitor";
import type { BattleScriptVisitor } from "@/services/grammar/ts/language/BattleScriptVisitor";
import type { ParserRuleContext } from "antlr4ts";
import type { AfterDeclarationNode, AfterExpressionNode, ArrayExpressionNode, AssignmentPatternNode, BlockStatementNode, BlockStatementUnion, BreakStatementNode, CallExpressionNode, CancelStatementNode, CatchStatementNode, CommentNode, ConstantDeclarationNode, ConstantDeclaratorNode, ContinueStatementNode, CustomTypeNode, DataTypeNode, DebuggerStatementNode, DefineStatementNode, EndStatementNode, EnumAssignmentNode, EnumDeclarationNode, EvaluateCaseNode, EvaluateFallbackNode, EvaluateStatementNode, EveryDeclarationNode, EveryExpressionNode, ExportNamedDeclarationNode, ExportSpecifierNode, ExpressionStatementNode, ExpressionUnion, ForStatementNode, ForwardStatementNode, FunctionDeclarationNode, FunctionDefinitionNode, FunctionParameterUnion, IdentifierNode, IfStatementNode, ImportDeclarationNode, ImportSpecifierNode, IncludeStatementNode, InterfaceNode, InterfacePropertyDeclarationNode, LiteralBooleanNode, LiteralDoubleNode, LiteralFloatNode, LiteralIntNode, LiteralNullNode, LiteralStringNode, LiteralUndefinedNode, LiteralUnion, MemberExpressionNode, ObjectExpressionNode, ObjectPropertyNode, OffsetStatementNode, ParityDeclarationNode, ProgramDeclarationNode, ProgramPropertyDeclarationNode, ProtocolDeclarationNode, ProtocolOpStatementNode, ProtocolReadTypeNode, ProtocolTypeNode, RequireStatementNode, RestElementNode, ReturnStatementNode, RewindStatementNode, RootNode, RuleStatementNode, SourceResolverSync, StateDeclarationNode, StateModuleEventDeclarationNode, StepDeclarationNode, TokenMetaData, TokenUnion, UnaryExpressionNode, VariableDeclarationNode, VariableDeclaratorNode, WildcardNode } from "@/types";
import type { AfterDeclarationContext, AfterExpressionContext, ArrayExpressionInternalContext, AssignmentExpressionContext, AssignmentPatternContext, BinaryExpressionContext, BlockStatementContext, BooleanLiteralContext, BreakStatementContext, CallExpressionContext, CancelStatementContext, CatchAsStatementContext, CatchStatementContext, CommentContext, ComputedMemberExpressionContext, ContinueStatementContext, CustomTypeContext, DataTypeContext, DebuggerStatementContext, DefineStatementContext, EndStatementContext, EnumAssignmentContext, EnumBodyContext, EnumDeclarationContext, EvaluateArgumentsContext, EvaluateCaseContext, EvaluateFallbackContext, EvaluateStatementContext, EveryDeclarationContext, EveryExpressionContext, ExpressionContext, ExpressionStatementContext, ForStatementContext, ForwardStatementContext, FunctionDeclarationContext, FunctionDefinitionContext, FunctionNameIdentifierContext, FunctionParameterContext, IdentifierContext, IfStatementContext, ImportExternalContext, ImportNativeContext, IncludeStatementContext, InterfaceDeclarationContext, InterfacePropertyContext, LiteralContext, NamespacedMemberExpressionContext, NonComputedMemberExpressionContext, NullLiteralContext, NumberLiteralContext, ObjectExpressionInternalContext, ObjectPropertyContext, OffsetStatementContext, ParityDeclarationContext, ProgramDeclarationContext, ProgramPropertyContext, ProtocolBodyContext, ProtocolDeclarationContext, ProtocolOpStatementContext, ProtocolTypeContext, RequireStatementContext, RestElementContext, ReturnStatementContext, RewindStatementContext, RootContext, RuleStatementContext, StateBodyContext, StateDeclarationContext, StateModuleBodyContext, StateModuleDeclarationContext, StateModuleEventDeclarationContext, StatementContext, StepDeclarationContext, StringLiteralContext, TokenContext, UnaryExpressionContext, UndefinedLiteralContext, UpdateExpressionContext, ValueContext, VariableDeclarationContext, VariableDeclaratorContext, WildcardContext, ProtocolReadTypeContext, ImportSpecifierContext, ExportSpecifierContext, ExportNamedContext, ExportReexportContext, ExportInlineContext, ExportStatementContext } from "@/services/grammar/ts/language/BattleScriptParser";
import type { ParseTree } from "antlr4ts/tree/ParseTree";
import type { BattleScriptTransformerOptions } from "@/types/BattleScriptTransformerOptions";
import type { StateModuleDeclarationNode } from "@/types/ast/nodes/StateModuleDeclarationNode";
export declare class BattleScriptToAST extends AbstractParseTreeVisitor<any> implements BattleScriptVisitor<any> {
    _options: BattleScriptTransformerOptions;
    functionCallLog: Set<string>;
    _filePath: string;
    _sourceCode: string;
    _sourceResolver?: SourceResolverSync;
    constructor(filePath: string, sourceCode: string, sourceResolver?: SourceResolverSync);
    filePath: (newFilePath?: string) => void;
    sourceCode: (newSourceCode?: string) => void;
    resolveSourceCode: (filePath: string) => string;
    extractInlineComment: (ctx: any) => string | undefined;
    optional: (ctx: any, key: string) => any;
    oneOfNodes: (node: ParserRuleContext) => any;
    contextMetaData: (ctx: ParserRuleContext, extra?: Record<string, unknown>) => TokenMetaData;
    visit(node: ParseTree, options?: BattleScriptTransformerOptions): any;
    visitRoot: (ctx: RootContext) => RootNode;
    visitProgramDeclaration: (ctx: ProgramDeclarationContext) => ProgramDeclarationNode;
    visitProgramProperty: (ctx: ProgramPropertyContext) => ProgramPropertyDeclarationNode;
    visitInterfaceDeclaration: (ctx: InterfaceDeclarationContext) => InterfaceNode;
    visitInterfaceProperty: (ctx: InterfacePropertyContext) => InterfacePropertyDeclarationNode;
    visitFunctionNameIdentifier: (ctx: FunctionNameIdentifierContext) => IdentifierNode;
    visitFunctionDeclaration: (ctx: FunctionDeclarationContext) => FunctionDeclarationNode;
    visitFunctionDefinition: (ctx: FunctionDefinitionContext) => FunctionDefinitionNode;
    visitStateBody: (ctx: StateBodyContext) => any;
    visitStateDeclaration: (ctx: StateDeclarationContext) => StateDeclarationNode;
    visitStatement: (ctx: StatementContext) => BlockStatementUnion;
    visitBlockStatement: (ctx: BlockStatementContext) => BlockStatementNode;
    visitCallExpression: (ctx: CallExpressionContext) => CallExpressionNode;
    visitIfStatement: (ctx: IfStatementContext) => IfStatementNode;
    visitExpressionStatement: (ctx: ExpressionStatementContext) => ExpressionStatementNode;
    visitBinaryExpression: (ctx: BinaryExpressionContext) => import("@/types").BinaryExpressionNode | import("@/types").OptimisedBinaryExpressionNode;
    visitUpdateExpression: (ctx: UpdateExpressionContext) => import("@/types").UpdateExpressionNode | import("@/types").OptimisedUpdateExpressionNode;
    visitUnaryExpression: (ctx: UnaryExpressionContext) => UnaryExpressionNode;
    visitExpression: (ctx: ExpressionContext) => ExpressionUnion;
    visitAssignmentExpression: (ctx: AssignmentExpressionContext) => import("@/types").AssignmentExpressionNode | import("@/types").OptimisedAssignmentExpressionNode;
    visitVariableDeclaration: (ctx: VariableDeclarationContext) => VariableDeclarationNode | ConstantDeclarationNode;
    visitVariableDeclarator: (ctx: VariableDeclaratorContext) => VariableDeclaratorNode;
    visitConstantDeclarator: (ctx: VariableDeclaratorContext) => ConstantDeclaratorNode;
    visitNonComputedMemberExpression: (ctx: NonComputedMemberExpressionContext) => MemberExpressionNode | import("@/types").OptimisedMemberExpressionNode;
    visitNamespacedMemberExpression: (ctx: NamespacedMemberExpressionContext) => MemberExpressionNode | import("@/types").OptimisedMemberExpressionNode;
    visitComputedMemberExpression: (ctx: ComputedMemberExpressionContext) => MemberExpressionNode;
    visitCustomType: (ctx: CustomTypeContext) => CustomTypeNode;
    visitDataType: (ctx: DataTypeContext) => DataTypeNode;
    visitReturnStatement: (ctx: ReturnStatementContext) => ReturnStatementNode;
    visitCatchStatement: (ctx: CatchStatementContext) => CatchStatementNode;
    visitCatchAsStatement: (ctx: CatchAsStatementContext) => CatchStatementNode;
    visitComment: (ctx: CommentContext) => CommentNode;
    visitIdentifier: (ctx: IdentifierContext) => IdentifierNode;
    visitRestElement: (ctx: RestElementContext) => RestElementNode;
    visitAssignmentPattern: (ctx: AssignmentPatternContext) => AssignmentPatternNode;
    visitFunctionParameter: (ctx: FunctionParameterContext) => FunctionParameterUnion;
    visitStringLiteral: (ctx: StringLiteralContext) => LiteralStringNode;
    visitNumberLiteral: (ctx: NumberLiteralContext) => LiteralIntNode | LiteralFloatNode | LiteralDoubleNode;
    visitBooleanLiteral: (ctx: BooleanLiteralContext) => LiteralBooleanNode;
    visitNullLiteral: (ctx: NullLiteralContext) => LiteralNullNode;
    visitUndefinedLiteral: (ctx: UndefinedLiteralContext) => LiteralUndefinedNode;
    visitArrayExpressionInternal: (ctx: ArrayExpressionInternalContext) => ArrayExpressionNode;
    visitObjectExpressionInternal: (ctx: ObjectExpressionInternalContext) => ObjectExpressionNode;
    visitObjectProperty: (ctx: ObjectPropertyContext) => ObjectPropertyNode;
    visitToken: (ctx: TokenContext) => TokenUnion;
    visitLiteral: (ctx: LiteralContext) => LiteralUnion;
    visitValue: (ctx: ValueContext) => any;
    visitEveryExpression: (ctx: EveryExpressionContext) => EveryExpressionNode;
    visitEveryDeclaration: (ctx: EveryDeclarationContext) => EveryDeclarationNode;
    visitAfterDeclaration: (ctx: AfterDeclarationContext) => AfterDeclarationNode;
    visitAfterExpression: (ctx: AfterExpressionContext) => AfterExpressionNode;
    visitCancelStatement: (ctx: CancelStatementContext) => CancelStatementNode;
    visitForStatement: (ctx: ForStatementContext) => ForStatementNode;
    visitEvaluateArguments: (ctx: EvaluateArgumentsContext) => ExpressionUnion[];
    visitEvaluateFallback: (ctx: EvaluateFallbackContext) => EvaluateFallbackNode;
    visitEvaluateCase: (ctx: EvaluateCaseContext) => EvaluateCaseNode;
    visitEvaluateStatement: (ctx: EvaluateStatementContext) => EvaluateStatementNode;
    visitContinueStatement: (ctx: ContinueStatementContext) => ContinueStatementNode;
    visitBreakStatement: (ctx: BreakStatementContext) => BreakStatementNode;
    visitDebuggerStatement: (ctx: DebuggerStatementContext) => DebuggerStatementNode;
    visitImportNative: (ctx: ImportNativeContext) => ImportDeclarationNode;
    visitImportExternal: (ctx: ImportExternalContext) => ImportDeclarationNode;
    visitImportSpecifier: (ctx: ImportSpecifierContext) => ImportSpecifierNode;
    visitIncludeStatement: (ctx: IncludeStatementContext) => IncludeStatementNode;
    visitExportSpecifier: (ctx: ExportSpecifierContext) => ExportSpecifierNode;
    visitExportNamed: (ctx: ExportNamedContext) => ExportNamedDeclarationNode;
    visitExportReexport: (ctx: ExportReexportContext) => ExportNamedDeclarationNode;
    visitExportInline: (ctx: ExportInlineContext) => any;
    visitExportStatement: (ctx: ExportStatementContext) => any;
    visitWildcard: (ctx: WildcardContext) => WildcardNode;
    visitProtocolBody: (ctx: ProtocolBodyContext) => any;
    visitProtocolDeclaration: (ctx: ProtocolDeclarationContext) => ProtocolDeclarationNode;
    visitProtocolType: (ctx: ProtocolTypeContext) => ProtocolTypeNode;
    visitDefineStatement: (ctx: DefineStatementContext) => DefineStatementNode;
    visitEndStatement: (ctx: EndStatementContext) => EndStatementNode;
    visitRequireStatement: (ctx: RequireStatementContext) => RequireStatementNode;
    visitStepDeclaration: (ctx: StepDeclarationContext) => StepDeclarationNode;
    visitEnumDeclaration: (ctx: EnumDeclarationContext) => EnumDeclarationNode;
    visitEnumBody: (ctx: EnumBodyContext) => any;
    visitEnumAssignment: (ctx: EnumAssignmentContext) => EnumAssignmentNode;
    visitStateModuleDeclaration: (ctx: StateModuleDeclarationContext) => StateModuleDeclarationNode;
    visitStateModuleBody: (ctx: StateModuleBodyContext) => any;
    visitStateModuleEventDeclaration: (ctx: StateModuleEventDeclarationContext) => StateModuleEventDeclarationNode;
    visitRuleStatement: (ctx: RuleStatementContext) => RuleStatementNode;
    visitParityDeclaration: (ctx: ParityDeclarationContext) => ParityDeclarationNode;
    visitForwardStatement: (ctx: ForwardStatementContext) => ForwardStatementNode;
    visitOffsetStatement: (ctx: OffsetStatementContext) => OffsetStatementNode;
    visitRewindStatement: (ctx: RewindStatementContext) => RewindStatementNode;
    visitProtocolOpStatement: (ctx: ProtocolOpStatementContext) => ProtocolOpStatementNode;
    visitProtocolReadType: (ctx: ProtocolReadTypeContext) => ProtocolReadTypeNode;
    protected defaultResult(): any;
}
//# sourceMappingURL=BattleScriptToAST.d.ts.map