import { SmartDeviceAbility } from '../../types'; import { AddCustomAlarmOptions, AddCustomAlarmResult, BuiltInAlarmList, CustomAlarmList, DeleteCustomAlarmParams, DeleteCustomAlarmResult, GetCustomAlarmListParams, SetBuiltInAlarmStatusParams, SetBuiltInAlarmStatusResult, SetCustomAlarmStatusParams, SetCustomAlarmStatusResult } from './type'; /** * 智能告警能力,提供内置告警和自定义告警的增删改查 * @public * @since @ray-js/panel-sdk 1.8.0 * @remarks * 通过 SmartDeviceModel 的 abilities 配置挂载后使用。 * 仅支持单设备,不支持群组环境。 * @example * ```typescript * import { SmartDeviceModel, SmartAlarmAbility } from '@ray-js/panel-sdk'; * * const sdm = new SmartDeviceModel({ abilities: [new SmartAlarmAbility()] }); * ``` */ export declare class SmartAlarmAbility implements SmartDeviceAbility { /** * 初始化告警能力,由 SmartDeviceModel 内部调用 * @internal */ init: (deviceId?: string) => Promise; /** @internal */ readonly abilityOptions: { name: string; waitForInit: boolean; isSupportGroup: boolean; }; /** @internal */ deviceId: string; /** @internal */ homeId: null; /** @internal */ builtInAlarmList: BuiltInAlarmList; /** @internal */ isBuiltInAlarmListInited: boolean; /** @internal */ isBuiltInAlarmListLoading: boolean; /** @internal */ customAlarmList: CustomAlarmList; /** @internal */ isCustomAlarmListLoading: boolean; /** @internal */ readonly bizDomain = "miniAppPanelSDKAlarm"; /** * 判断设备是否支持告警规则 * @public * @since @ray-js/panel-sdk 1.8.0 * @returns 是否支持云告警推送。某些设备需要网关联网才能使用告警功能 * @remarks * 仅支持单设备,不支持群组环境。 * @example * ```typescript * const supported = await sdm.alarm.isSupportAlarm(); * if (supported) { * console.log('当前设备支持告警'); * } * ``` */ isSupportAlarm: () => Promise; /** * 根据设备 ID 查询该产品内置的告警列表信息 * @public * @since @ray-js/panel-sdk 1.8.0 * @param devId - 设备 ID,不传则使用当前设备 * @returns 内置告警列表 * @remarks * 仅支持单设备,不支持群组环境。 * 内置告警由产品在涂鸦 IoT 平台配置,用户只能启用/禁用,不能新增或删除。 * 注意,返回示例仅供参考,其包含字段大于返回参数定义范围,请勿使用除本文返回参数定义以外的返回数据,否则可能会导致程序异常。 * @example * ```typescript * const alarmList = await sdm.alarm.getBuiltInAlarmList(); * alarmList.forEach(alarm => { * console.log(alarm.id, alarm.name, alarm.enabled); * }); * ``` */ getBuiltInAlarmList: (devId?: string) => Promise; /** * 启用或禁用设备内置的告警规则 * @public * @since @ray-js/panel-sdk 1.8.0 * @param options - 操作参数 * @returns 元组 [是否操作成功, 更新后的内置告警列表] * @remarks * 仅支持单设备,不支持群组环境。 * 注意,返回示例仅供参考,其包含字段大于返回参数定义范围,请勿使用除本文返回参数定义以外的返回数据,否则可能会导致程序异常。 * @example * ```typescript * const [success, updatedList] = await sdm.alarm.setBuiltInAlarmStatus({ * disabled: false, * ruleIds: 'rule_001,rule_002', * }); * console.log('操作结果:', success, '更新后列表:', updatedList); * ``` */ setBuiltInAlarmStatus: (options: SetBuiltInAlarmStatusParams) => Promise; /** * 查询自定义创建的告警规则列表 * @public * @since @ray-js/panel-sdk 1.8.0 * @param options - 查询参数 * @returns 自定义告警规则列表,包含 triggerRuleId、triggerRuleVO、bizDomain、bindId 等信息 * @remarks * 仅支持单设备,不支持群组环境。 * 注意,返回示例仅供参考,其包含字段大于返回参数定义范围,请勿使用除本文返回参数定义以外的返回数据,否则可能会导致程序异常。 * @example * ```typescript * // 获取所有自定义告警 * const rules = await sdm.alarm.getCustomAlarmList(); * console.log('自定义告警数量:', rules.length); * * // 按功能点筛选 * const dpRules = await sdm.alarm.getCustomAlarmList({ dpId: '1' }); * ``` */ getCustomAlarmList: (options?: GetCustomAlarmListParams) => Promise; /** * 新增或编辑自定义的告警规则 * @public * @since @ray-js/panel-sdk 1.8.0 * @param options - 告警规则配置 * @returns 元组 [新增/更新的规则, 更新后的完整规则列表] * @remarks * 仅支持单设备,不支持群组环境。 * 注意,返回示例仅供参考,其包含字段大于返回参数定义范围,请勿使用除本文返回参数定义以外的返回数据,否则可能会导致程序异常。 * @example * ```typescript * const [newRule, allRules] = await sdm.alarm.addCustomAlarm({ * name: '高温告警', * condition: [['temp_current', '>', 40]], * preCondition: { * startTime: '08:00', * endTime: '22:00', * loops: '1111111', * }, * }); * console.log('新增规则:', newRule.bindId); * ``` */ addCustomAlarm: (options: AddCustomAlarmOptions) => Promise; /** * 启用或禁用自定义的告警规则 * @public * @since @ray-js/panel-sdk 1.8.0 * @param options - 操作参数 * @returns 元组 [是否操作成功, 更新后的完整规则列表] * @remarks * 仅支持单设备,不支持群组环境。 * 注意,返回示例仅供参考,其包含字段大于返回参数定义范围,请勿使用除本文返回参数定义以外的返回数据,否则可能会导致程序异常。 * @example * ```typescript * const [success, updatedRules] = await sdm.alarm.setCustomAlarmStatus({ * bindId: 12345, * enable: false, * }); * console.log('禁用结果:', success); * ``` */ setCustomAlarmStatus: (options: SetCustomAlarmStatusParams) => Promise; /** * 删除自定义的告警规则 * @public * @since @ray-js/panel-sdk 1.8.0 * @param options - 操作参数 * @returns 元组 [是否删除成功, 更新后的完整规则列表] * @remarks * 仅支持单设备,不支持群组环境。 * 注意,返回示例仅供参考,其包含字段大于返回参数定义范围,请勿使用除本文返回参数定义以外的返回数据,否则可能会导致程序异常。 * @example * ```typescript * const [success, remainingRules] = await sdm.alarm.deleteCustomAlarm({ * bindId: 12345, * }); * console.log('删除结果:', success, '剩余规则数:', remainingRules.length); * ``` */ deleteCustomAlarm: (options: DeleteCustomAlarmParams) => Promise; private __findCustomAlarmByBindIdAndReFetch__; private __startLoadingBuiltInAndRerender__; private __startLoadingCustomAndRerender__; private __updateBuiltInAlarmListAndRerender__; private __updateCustomAlarmListAndRerender__; }