/** * 协议工具类 - 提供状态转换、类型判断和请求引用管理功能 */ import { MessageStatus, Priority, ClientType, AnyMessage, CommandMessage, ProgressUpdateMessage, ProgramMessage } from './index'; /** * 协议工具类 */ export declare class ProtocolUtils { /** * 将 MessageStatus 枚举转换为字符串 */ static statusToString(status: MessageStatus): string; /** * 将字符串转换为 MessageStatus 枚举 * @throws {Error} 如果字符串不是有效的状态值 */ static stringToStatus(status: string): MessageStatus; /** * 将字符串转换为 Priority 枚举 * @throws {Error} 如果字符串不是有效的优先级值 */ static priorityToEnum(priority: string): Priority; /** * 将 Priority 枚举转换为字符串 */ static enumToPriority(priority: Priority): string; /** * 将字符串转换为 ClientType 枚举 * @throws {Error} 如果字符串不是有效的客户端类型 */ static clientTypeToEnum(clientType: string): ClientType; /** * 将 ClientType 枚举转换为字符串 */ static enumToClientType(clientType: ClientType): string; /** * 检查消息是否为命令消息 * 增强版本:不仅检查类型,还验证结构 */ static isCommandMessage(message: any): message is CommandMessage; /** * 检查消息是否为进度更新消息 * 增强版本:包含额外的结构验证 */ static isProgressUpdate(message: any): message is ProgressUpdateMessage; /** * 检查消息是否为程序消息 * 增强版本:包含额外的结构验证 */ static isProgramMessage(message: any): message is ProgramMessage; /** * 从任意消息中提取请求引用 * @returns 请求引用,如果消息类型不包含请求引用则返回 undefined */ static extractRequestRef(message: AnyMessage): string | undefined; /** * 生成唯一的请求引用 ID * @param prefix 可选的前缀,用于标识请求来源 * @returns 格式为 "prefix-timestamp-random" 或 "timestamp-random" */ static generateRequestRef(prefix?: string): string; /** * 生成带有特定格式的请求引用 * @param service 服务名称 * @param operation 操作名称 * @returns 格式为 "service:operation:timestamp:random" */ static generateStructuredRequestRef(service: string, operation: string): string; /** * 安全的枚举转换(不抛出异常) * @returns 枚举值或 null */ static tryParseStatus(status: string): MessageStatus | null; /** * 安全的优先级转换(不抛出异常) * @returns 枚举值或 null */ static tryParsePriority(priority: string): Priority | null; /** * 安全的客户端类型转换(不抛出异常) * @returns 枚举值或 null */ static tryParseClientType(clientType: string): ClientType | null; /** * 从请求引用中解析信息 * @returns 解析后的组件,如果格式不匹配则返回 null */ static parseRequestRef(requestRef: string): { prefix?: string; timestamp?: number; random?: string; service?: string; operation?: string; } | null; /** * 获取消息的类型名称(友好的字符串格式) */ static getMessageTypeName(message: AnyMessage): string; /** * 检查是否为请求消息(需要响应的消息) */ static isRequestMessage(message: AnyMessage): boolean; /** * 检查是否为响应消息 */ static isResponseMessage(message: AnyMessage): boolean; } //# sourceMappingURL=protocol-utils.d.ts.map