import type { AstNodeBase, AstNodeLayout, BinaryOperator, ExpressionUnion, OptimisedBinaryExpressionNode, ValueUnion } from "@/types";
import type { BattleScriptToAST } from "@/services";
import type { BinaryExpressionContext } from "@/services/grammar/ts/language/BattleScriptParser";
import type { BattleScriptFromAST } from "@/services/fullAst/BattleScriptFromAST";
import type { VisitOptions } from "@/types/VisitOptions";
export interface BinaryExpressionNode extends AstNodeBase {
    kind: "BINARY_EXPRESSION";
    left: ValueUnion;
    operator: BinaryOperator;
    right: ExpressionUnion;
}
export declare const BinaryExpressionNodeLayout: AstNodeLayout<BinaryExpressionNode>[];
export declare const binaryExpressionToAstNode: (instance: BattleScriptToAST, ctx: BinaryExpressionContext) => BinaryExpressionNode | OptimisedBinaryExpressionNode;
export declare const binaryExpressionFromAstNode: (instance: BattleScriptFromAST, node: BinaryExpressionNode, options?: VisitOptions) => string;
//# sourceMappingURL=BinaryExpressionNode.d.ts.map