import type { AstNodeBase, AstNodeLayout, BlockStatementNode, ExpressionUnion, IdentifierNode, LiteralUnion, MemberExpressionNode } from "@/types";
import type { BattleScriptToAST } from "@/services";
import type { StateModuleEventDeclarationContext } from "@/services/grammar/ts/language/BattleScriptParser";
import type { BattleScriptFromAST } from "@/services/fullAst/BattleScriptFromAST";
import type { VisitOptions } from "@/types/VisitOptions";
export interface StateModuleEventDeclarationNode extends AstNodeBase {
    kind: "STATE_MODULE_EVENT_DECLARATION";
    condition: ExpressionUnion;
    arguments: (IdentifierNode | MemberExpressionNode | LiteralUnion)[];
    body: BlockStatementNode;
}
export declare const StateModuleEventDeclarationNodeLayout: AstNodeLayout<StateModuleEventDeclarationNode>[];
export declare const stateModuleEventDeclarationToAstNode: (instance: BattleScriptToAST, ctx: StateModuleEventDeclarationContext) => StateModuleEventDeclarationNode;
export declare const stateModuleEventDeclarationFromAstNode: (instance: BattleScriptFromAST, node: StateModuleEventDeclarationNode, options?: VisitOptions) => string;
//# sourceMappingURL=StateModuleEventDeclarationNode.d.ts.map