import type { AstNodeBase, AstNodeLayout, BlockStatementNode, IdentifierNode } from "@/types";
import type { CatchAsStatementContext, CatchStatementContext } from "@/services/grammar/ts/language/BattleScriptParser";
import type { BattleScriptToAST } from "@/services";
import type { BattleScriptFromAST } from "@/services/fullAst/BattleScriptFromAST";
import type { VisitOptions } from "@/types/VisitOptions";
export interface CatchStatementNode extends AstNodeBase {
    kind: "CATCH_STATEMENT";
    subjects: IdentifierNode[];
    as?: IdentifierNode;
    body: BlockStatementNode;
}
export declare const CatchStatementNodeLayout: AstNodeLayout<CatchStatementNode>[];
export declare const catchStatementToAstNode: (instance: BattleScriptToAST, ctx: CatchStatementContext) => CatchStatementNode;
export declare const catchAsStatementToAstNode: (instance: BattleScriptToAST, ctx: CatchAsStatementContext) => CatchStatementNode;
export declare const catchStatementFromAstNode: (instance: BattleScriptFromAST, node: CatchStatementNode, options?: VisitOptions) => string;
//# sourceMappingURL=CatchStatementNode.d.ts.map