/**
* Public API surface of the ArkTS protobuf runtime
*
* Version 2.0 - Visitor 模式核心架构
*
* 核心模块:
* - Message: 所有消息的抽象基类
* - Visitor: 字段访问者接口(Visitor 模式)
* - BinaryEncodingVisitor: 二进制编码 Visitor
* - JsonEncodingVisitor: JSON 编码 Visitor
* - UnknownFields: 未知字段存储(兼容性)
*
* 工具模块:
* - MessageRegistry: 消息类型注册表(可选)
* - MessageUtils: 消息工具函数
*
* 底层模块:
* - Writer/Reader: 二进制读写器
* - util: 工具函数(base64, zigzag 等)
* - RpcTransport: RPC 传输接口
*/
// ========== 核心模块 ==========
/**
* Message 基类和相关类型
*
* 所有生成的消息类都继承自 Message
*/
export { Message, MessageConstructor } from './Message'
/**
* Visitor 接口
*
* 用于实现 Visitor 模式,遍历消息字段
*/
export { Visitor } from './Visitor'
/**
* 未知字段存储
*
* 用于保存未知字段,提升前后兼容性
*/
export { UnknownFields } from './UnknownFields'
/**
* Binary 编码 Visitor
*
* 将消息编码为 Protobuf wire format
*/
export { BinaryEncodingVisitor } from './BinaryEncodingVisitor'
/**
* JSON 编码 Visitor
*
* 将消息编码为 Protobuf JSON mapping
*/
export { JsonEncodingVisitor } from './JsonEncodingVisitor'
// ========== 工具模块 ==========
/**
* 消息类型注册表(可选)
*
* ⚠️ 普通场景无需使用,只在以下场景需要:
* - 使用 google.protobuf.Any 类型
* - 需要根据类型名动态创建消息
*/
export { MessageRegistry } from './MessageRegistry'
/**
* 消息工具函数
*
* 提供批量操作、过滤、分组等实用功能
*/
export { MessageUtils } from './MessageUtils'
// ========== 底层模块 ==========
/**
* 二进制写入器
*
* 用于编码 Protobuf wire format
*/
export { Writer } from './Writer'
/**
* 二进制读取器
*
* 用于解码 Protobuf wire format
*/
export { Reader } from './Reader'
/**
* 工具函数集合
*
* 包含 base64、zigzag、WKT JSON 转换等
*/
export {
encodeUTF8,
decodeUTF8,
encodeBase64,
decodeBase64,
zigZag32,
unZigZag32,
zigZag64,
unZigZag64,
timestampToJson,
timestampFromJson,
durationToJson,
durationFromJson,
TimestampParts,
DurationParts
} from './util'
/**
* RPC 传输接口
*
* 用于 gRPC 客户端实现
*/
export { RpcTransport } from './RpcTransport'