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, EvaluateCaseNode, EvaluateFallbackNode, EvaluateStatementNode, EventDeclarationNode, EveryDeclarationNode, EveryExpressionNode, ExpressionStatementNode, ExpressionUnion, ForStatementNode, FunctionDeclarationNode, FunctionDefinitionNode, FunctionParameterUnion, IdentifierNode, IfStatementNode, ImportDeclarationNode, InterfaceNode, InterfacePropertyDeclarationNode, LiteralBooleanNode, LiteralDoubleNode, LiteralFloatNode, LiteralIntNode, LiteralNullNode, LiteralStringNode, LiteralUndefinedNode, LiteralUnion, MemberExpressionNode, ObjectExpressionNode, ObjectPropertyNode, ProgramDeclarationNode, ProgramPropertyDeclarationNode, RestElementNode, ReturnStatementNode, RootNode, StateDeclarationNode, 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, EvaluateArgumentsContext, EvaluateCaseContext, EvaluateFallbackContext, EvaluateStatementContext, EventDeclarationContext, EveryDeclarationContext, EveryExpressionContext, ExpressionContext, ExpressionStatementContext, ForStatementContext, FunctionDeclarationContext, FunctionDefinitionContext, FunctionNameIdentifierContext, FunctionParameterContext, IdentifierContext, IfStatementContext, ImportExternalContext, ImportNativeContext, InterfaceDeclarationContext, InterfacePropertyContext, LiteralContext, NamespacedMemberExpressionContext, NonComputedMemberExpressionContext, NullLiteralContext, NumberLiteralContext, ObjectExpressionInternalContext, ObjectPropertyContext, ProgramDeclarationContext, ProgramPropertyContext, RestElementContext, ReturnStatementContext, RootContext, StateBodyContext, StateDeclarationContext, StatementContext, StringLiteralContext, TokenContext, UnaryExpressionContext, UndefinedLiteralContext, UpdateExpressionContext, ValueContext, VariableDeclarationContext, VariableDeclaratorContext, WildcardContext } from "@/services/grammar/ts/language/BattleScriptParser";
import type { ParseTree } from "antlr4ts/tree/ParseTree";
import type { BattleScriptTransformerOptions } from "@/types/BattleScriptTransformerOptions";
export declare class BattleScriptToAST extends AbstractParseTreeVisitor<any> implements BattleScriptVisitor<any> {
    _options: BattleScriptTransformerOptions;
    functionCallLog: Set<string>;
    _filePath: string;
    _sourceCode: string;
    constructor(filePath: string, sourceCode: string);
    filePath: (newFilePath?: string) => void;
    sourceCode: (newSourceCode?: string) => void;
    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;
    visitEventDeclaration: (ctx: EventDeclarationContext) => EventDeclarationNode;
    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;
    visitImportNative: (ctx: ImportNativeContext) => ImportDeclarationNode;
    visitImportExternal: (ctx: ImportExternalContext) => ImportDeclarationNode;
    visitWildcard: (ctx: WildcardContext) => WildcardNode;
    protected defaultResult(): any;
}
//# sourceMappingURL=BattleScriptToAST.d.ts.map