import { IGetLinkageDeviceList, IBindRule, IGetBindRuleList, IRemoveRule, ILinkageDevice, ISceneListItem, IBindRuleListItem, IBindRuleResponse, IUnbindRule, ISceneListItemV2 } from './interface'; interface IRuleIdParams { /** 规则 ID */ ruleId: string; } interface ISceneListParams { /** 设备 ID */ devId: string; /** 家庭 ID */ gid: string; } /** * 查询家庭下支持联动的所有设备 * @param params - 查询设备列表参数 * @param params.gid 家庭 ID,可通过 getCurrentHomeInfo 获取 * @param params.sourceType 请求类型 * @returns 支持联动的设备列表 * @public * @since @ray-js/ray 1.4.61 * @example * ```typescript * import { getLinkageDeviceList } from '@ray-js/ray'; * * const fetchDevices = async () => { * try { * const devices = await getLinkageDeviceList({ * gid: 12345678, * sourceType: 'condition', * }); * devices.forEach(dev => { * console.log(`设备: ${dev.name}, ID: ${dev.devId}`); * }); * } catch (err) { * console.error('查询失败:', err); * } * }; * ``` */ declare const getLinkageDeviceList: (params: IGetLinkageDeviceList) => Promise; /** * 查询设备支持的一键执行场景,包含失效及自动化规则 * @param params - 查询参数 * @param params.devId 设备 ID * @param params.gid 家庭 ID * @returns 联动规则列表 * @public * @since @ray-js/ray 1.4.61 * @example * ```typescript * import { getSceneList } from '@ray-js/ray'; * * const fetchScenes = async () => { * try { * const scenes = await getSceneList({ * devId: 'device_001', * gid: '12345678', * }); * console.log('场景列表:', scenes); * } catch (err) { * console.error('查询失败:', err); * } * }; * ``` */ declare const getSceneList: ({ devId, gid }: ISceneListParams) => Promise; /** * 查询家庭下一键执行列表,会去掉失效或自动化规则 * @param params - 查询参数 * @param params.devId 设备 ID * @param params.gid 家庭 ID * @param params.containStandardZigBee 是否包含标准场景 * @defaultValue containStandardZigBee false * @returns 一键执行类型的联动规则列表 * @public * @since @ray-js/ray 1.5.15 * @example * ```typescript * import { getSceneListV2 } from '@ray-js/ray'; * * const fetchScenes = async () => { * try { * const scenes = await getSceneListV2({ * devId: 'device_001', * gid: '12345678', * containStandardZigBee: false, * }); * console.log('一键执行列表:', scenes); * } catch (err) { * console.error('查询失败:', err); * } * }; * ``` */ declare const getSceneListV2: ({ devId, gid, containStandardZigBee, }: { /** 设备 ID */ devId: string; /** 家庭 ID */ gid: string; /** 是否包含标准场景 */ containStandardZigBee?: boolean; }) => Promise; /** * 查询设备条件已绑定的场景 * @param params - 查询参数 * @param params.bizDomain 业务域 * @param params.devId 设备 ID * @param params.entityType 实体类型,1 为设备,2 为联动规则 * @param params.gid 家庭 ID * @returns 已绑定的规则列表 * @public * @since @ray-js/ray 1.4.61 * @example * ```typescript * import { getBindRuleList } from '@ray-js/ray'; * * const fetchBindRules = async () => { * try { * const rules = await getBindRuleList({ * bizDomain: 'wirelessSwitch', * devId: 'device_001', * entityType: 1, * gid: '12345678', * }); * rules.forEach(rule => { * console.log(`绑定ID: ${rule.bindId}, 启用: ${rule.enable}`); * }); * } catch (err) { * console.error('查询失败:', err); * } * }; * ``` */ declare const getBindRuleList: (params: IGetBindRuleList) => Promise; /** * 将按键条件与场景规则关联,建立设备按键与联动规则的绑定关系 * @param params - 绑定规则参数 * @param params.devId 设备 ID * @param params.associativeEntityId 与面板/设备建立绑定关系,通常为设备 ID、DP 点、群组、规则,dpId#value 等 * @param params.ruleId 关联场景 ID * @param params.entitySubIds 关联 DP 点 * @param params.expr 关联 DP 点、动作组合 * @param params.bizDomain 业务域 * @param params.gid 家庭 ID,可通过 getCurrentHomeInfo 获取 * @returns 绑定结果信息 * @public * @since @ray-js/ray 1.7.60 * @example * ```typescript * import { bindRule } from '@ray-js/ray'; * * const bindSceneRule = async () => { * try { * const result = await bindRule({ * devId: 'device_001', * associativeEntityId: '1', * ruleId: 'rule_001', * entitySubIds: '1', * expr: [['$dp1', '==', 'true']], * bizDomain: 'wirelessSwitch', * gid: '12345678', * }); * console.log('绑定成功, ID:', result.id); * } catch (err) { * console.error('绑定失败:', err); * } * }; * ``` */ declare const bindRule: (params: IBindRule) => Promise; /** * 解绑联动,删除按键条件与场景规则的绑定关系 * @param params - 解绑规则参数 * @param params.bindId 绑定 ID * @param params.gid 家庭 ID * @returns 是否解绑成功 * @public * @since @ray-js/ray 1.5.15 * @example * ```typescript * import { unbindRule } from '@ray-js/ray'; * * const unbindSceneRule = async () => { * try { * const success = await unbindRule({ * bindId: '123456', * gid: '12345678', * }); * console.log('解绑结果:', success); * } catch (err) { * console.error('解绑失败:', err); * } * }; * ``` */ declare const unbindRule: (params: IUnbindRule) => Promise; /** * 移除相关按键条件下的场景规则 * @param params - 移除规则参数 * @param params.bizDomain 业务域 * @param params.devId 设备 ID * @param params.associativeEntityId 绑定关系标识 * @param params.associativeEntityValue 规则 ID * @param params.gid 家庭 ID * @returns 是否删除成功 * @public * @since @ray-js/ray 1.7.60 * @example * ```typescript * import { removeRule } from '@ray-js/ray'; * * const removeSceneRule = async () => { * try { * const success = await removeRule({ * bizDomain: 'wirelessSwitch', * devId: 'device_001', * associativeEntityId: '1', * associativeEntityValue: 'rule_001', * gid: '12345678', * }); * console.log('移除结果:', success); * } catch (err) { * console.error('移除失败:', err); * } * }; * ``` */ declare const removeRule: (params: IRemoveRule) => Promise; /** * 一键触发场景联动,由云端执行关联的自动化规则 * @param params - 触发规则参数 * @param params.ruleId 规则 ID * @returns 是否执行成功 * @public * @since @ray-js/ray 1.7.60 * @example * ```typescript * import { triggerRule } from '@ray-js/ray'; * * const triggerSceneRule = async () => { * try { * const success = await triggerRule({ * ruleId: 'rule_001', * }); * console.log('触发结果:', success); * } catch (err) { * console.error('触发失败:', err); * } * }; * ``` */ declare const triggerRule: (params: IRuleIdParams) => Promise; /** * 开启已绑定规则,恢复规则的自动执行 * @param params - 启用规则参数 * @param params.ruleId 规则 ID * @returns 是否操作成功 * @public * @since @ray-js/ray 1.7.60 * @example * ```typescript * import { enableRule } from '@ray-js/ray'; * * const enableSceneRule = async () => { * try { * const success = await enableRule({ * ruleId: 'rule_001', * }); * console.log('开启规则结果:', success); * } catch (err) { * console.error('开启失败:', err); * } * }; * ``` */ declare const enableRule: (params: IRuleIdParams) => Promise; /** * 关闭已绑定规则,暂停规则的自动执行 * @param params - 禁用规则参数 * @param params.ruleId 规则 ID * @returns 是否操作成功 * @public * @since @ray-js/ray 1.7.60 * @example * ```typescript * import { disableRule } from '@ray-js/ray'; * * const disableSceneRule = async () => { * try { * const success = await disableRule({ * ruleId: 'rule_001', * }); * console.log('关闭规则结果:', success); * } catch (err) { * console.error('关闭失败:', err); * } * }; * ``` */ declare const disableRule: (params: IRuleIdParams) => Promise; export { getLinkageDeviceList, getSceneList, getSceneListV2, getBindRuleList, bindRule, unbindRule, removeRule, triggerRule, enableRule, disableRule, };