import type { AstNodeBase, AstNodeLayout, LiteralStringNode } from "@/types";
import type { BattleScriptToAST } from "@/services";
import type { ProtocolDeclarationContext } from "@/services/grammar/ts/language/BattleScriptParser";
import type { ProtocolBodyUnion } from "@/types/ast/unions/ProtocolBodyUnion";
import type { BattleScriptFromAST } from "@/services/fullAst/BattleScriptFromAST";
import type { VisitOptions } from "@/types/VisitOptions";
export interface ProtocolDeclarationNode extends AstNodeBase {
    kind: "PROTOCOL_DECLARATION";
    name: LiteralStringNode;
    transport: LiteralStringNode;
    body: ProtocolBodyUnion[];
}
export declare const ProtocolDeclarationNodeLayout: AstNodeLayout<ProtocolDeclarationNode>[];
export declare const protocolDeclarationToAstNode: (instance: BattleScriptToAST, ctx: ProtocolDeclarationContext) => ProtocolDeclarationNode;
export declare const protocolDeclarationFromAstNode: (instance: BattleScriptFromAST, node: ProtocolDeclarationNode, options?: VisitOptions) => string;
//# sourceMappingURL=ProtocolDeclarationNode.d.ts.map