import type { V4DeviceOperate, V4OperateOptions, V4RpcMethod, V4RpcRequest, V4RpcResponse, V4SendOptions, V4SendPromise } from './types'; interface V4RpcOptions { responseTimeout?: number; } export declare class V4Rpc { private readonly pending; private readonly sendFrame; private readonly options; private requestIdCounter; constructor(sendFrame: (frame: unknown) => void, options?: V4RpcOptions); /** * 创建 V4 RPC 请求 * @param method RPC 方法名 * @param data 请求数据 */ createRequest(method: V4RpcMethod | (string & {}), data?: TData): V4RpcRequest; /** * 发送协议数据 * @param clientId 被控方 ID * @param data 数据 * @param options 选项 */ send(clientId: string, data: TData, options?: V4SendOptions): V4SendPromise; /** * 发送 device.op 指令 * @param clientId 被控方 ID * @param data 指令数据 * @param options 选项 */ sendOperate(clientId: string, data: V4DeviceOperate, options?: V4OperateOptions): V4SendPromise; /** * 处理 RPC 响应 * @param clientId 被控方 ID * @param response 响应数据 */ resolveResponse(clientId: string, response: V4RpcResponse): void; /** * 拒绝指定被控方的所有待完成指令 * @param clientId 被控方 ID */ rejectClientPending(clientId: string): void; /** * 拒绝所有待完成指令 * @param error 错误对象 */ rejectAllPending(error: Error): void; /** * 判断是否为 V4 RPC 响应帧 * @param data 帧数据 */ static isResponse(data: unknown): data is V4RpcResponse; /** * 获取 V4 请求 ID * @param data 帧数据 */ static getRequestId(data: unknown): string | undefined; private createRequestId; private responseTimeout; private operateResponseTimeout; private pendingKey; private rejectPending; } export {};