type Props = { /** * 设备 ID */ devId: string; /** * Zigbee 设备时执行的回调 */ zigbee?: () => void; /** * SIG Mesh 设备时执行的回调 */ sigMesh?: () => void; /** * SIG Mesh 设备通过网关连接时执行的回调 */ sigMeshGateway?: () => void; /** * Wi-Fi 设备时执行的回调 */ wifi?: () => void; /** * 蓝牙设备时执行的回调 */ ble?: () => void; /** * 群组设备时执行的回调 */ group?: () => void; /** * 未匹配到任何协议类型时执行的兜底回调 */ default?: () => void; /** * 可选的依赖项,变化时会重新生成执行函数 */ deps?: any; }; /** * 根据设备通信协议类型执行对应的回调函数 * @public * @since @ray-js/panel-sdk 1.8.0 * @param props - 配置对象,包含 devId 及各协议类型的回调函数 * @param deps - 可选的依赖项,变化时会重新生成执行函数 * @returns 执行函数,调用后会根据设备协议类型触发相应回调 * @remarks * 该 Hook 会根据设备信息自动判断通信协议类型(Zigbee、SIG Mesh、Wi-Fi 等),并执行对应的回调。 * 设备信息会被缓存,首次获取后不再重复请求。 * @example * ```tsx * import { useProtocolRun } from '@ray-js/panel-sdk'; * * function ProtocolHandler() { * const run = useProtocolRun({ * devId: 'device123', * wifi: () => console.log('Wi-Fi 设备'), * zigbee: () => console.log('Zigbee 设备'), * sigMesh: () => console.log('SIG Mesh 设备'), * default: () => console.log('其他协议'), * }); * * useEffect(() => { * run(); * }, [run]); * } * ``` */ export declare const useProtocolRun: (props: Props, deps?: any) => () => void; export default useProtocolRun;