import { BindParams, BindTapToRunResult, BindTapToRunRules, TapToRunRules, TapToRunQueryParams, TriggerTapToRunResult, TriggerTapToRunParams, UnbindTapToRunResult, UnbindTapToRunParams } from './type'; import { SmartDeviceAbility } from '../../types'; interface TapToRunOptions { /** * @description 设备 id,不填默认使用 getLaunchOptions 获取当前环境下的设备 ID */ deviceId?: string; } /** * 一键执行能力,提供场景规则的获取、绑定、解绑和触发 * @public * @since @ray-js/panel-sdk 1.11.0 * @remarks * 通过 SmartDeviceModel 的 abilities 配置挂载后使用。 * 仅支持单设备,不支持群组环境。 * @example * ```typescript * import { SmartDeviceModel, SmartTapToRunAbility } from '@ray-js/panel-sdk'; * * const sdm = new SmartDeviceModel({ abilities: [new SmartTapToRunAbility({})] }); * ``` */ export declare class SmartTapToRunAbility implements SmartDeviceAbility { /** @internal */ deviceId: string; /** @internal */ homeId: string; /** * @param props - 一键执行初始化配置,包含 deviceId */ constructor(props: TapToRunOptions); /** * 初始化一键执行能力,由 SmartDeviceModel 内部调用 * @internal */ init: () => Promise; /** @internal */ abilityOptions: { name: string; /** * 说明当前能力不支持群组环境 */ isSupportGroup: boolean; /** * 配置了此项说明该能力在 SDM 或 SGM 初始化时会同时等待该能力 init 异步方法完成后才会认为 SDM 或 SGM 整体初始化完毕了, * 一般用于一些能力需要 init 完毕以后才能正常使用的场景,比如当前这个设备支持情况的能力,在设备数据没初始化好之前,是没办法使用的。 */ waitForInit: boolean; }; /** @internal */ readonly bizDomain = "wirelessSwitchBindScene"; private getHomeId; private getGid; private getDeviceId; /** * 查询当前家庭下可绑定的一键执行列表,会去掉失效或自动化规则。 * @public * @since @ray-js/panel-sdk 1.11.0 * @param params - 查询参数 * @returns 可绑定的一键执行规则列表 * @remarks * 仅支持单设备,不支持群组环境。 * 注意,返回示例仅供参考,其包含字段大于返回参数定义范围,请勿使用除本文返回参数定义以外的返回数据,否则可能会导致程序异常。 * @example * ```typescript * const rules = await sdm.tapToRun.getTapToRunRules(); * rules.forEach(rule => { * console.log(rule.id, rule.name); * }); * ``` */ getTapToRunRules(params?: TapToRunQueryParams): Promise; /** * 忽略自动化条件,直接触发一键执行 * @public * @since @ray-js/panel-sdk 1.11.0 * @param options - 触发参数,包含 ruleId * @returns 执行是否成功 * @remarks * 仅支持单设备,不支持群组环境。 * 注意,返回示例仅供参考,其包含字段大于返回参数定义范围,请勿使用除本文返回参数定义以外的返回数据,否则可能会导致程序异常。 * @example * ```typescript * await sdm.tapToRun.trigger({ ruleId: 'rule_abc123' }); * console.log('一键执行已触发'); * ``` */ trigger(options: TriggerTapToRunParams): Promise; /** * 给一键执行绑定自动化触发条件 * @public * @since @ray-js/panel-sdk 1.11.0 * @param params - 绑定参数 * @typeOverride params BindParams * @returns 绑定结果 * @typeOverride returns Promise * @remarks * 仅支持单设备,不支持群组环境。 * 注意,返回示例仅供参考,其包含字段大于返回参数定义范围,请勿使用除本文返回参数定义以外的返回数据,否则可能会导致程序异常。 * @example * ```typescript * const result = await sdm.tapToRun.bind({ * dpId: '1', * dpValue: 'single_click', * ruleId: 'scene_abc123', * }); * console.log('绑定结果:', result); * ``` */ bind(params: BindParams): Promise; /** * 解绑一键执行规则 * @public * @since @ray-js/panel-sdk 1.11.0 * @param params - 解绑参数 * @typeOverride params UnbindTapToRunParams * @returns 解绑后剩余的场景列表 * @typeOverride returns Promise * @remarks * 仅支持单设备,不支持群组环境。 * 注意,返回示例仅供参考,其包含字段大于返回参数定义范围,请勿使用除本文返回参数定义以外的返回数据,否则可能会导致程序异常。 * @example * ```typescript * const remaining = await sdm.tapToRun.unbind({ bindId: 'bind_001' }); * console.log('解绑成功,剩余场景:', remaining); * ``` */ unbind(params: UnbindTapToRunParams): Promise; /** * 查询已绑定一键执行的联动列表 * @public * @since @ray-js/panel-sdk 1.11.0 * @param params - 查询参数 * @typeOverride params TapToRunQueryParams * @returns 已绑定的一键执行规则列表 * @typeOverride returns Promise * @remarks * 仅支持单设备,不支持群组环境。 * 注意,返回示例仅供参考,其包含字段大于返回参数定义范围,请勿使用除本文返回参数定义以外的返回数据,否则可能会导致程序异常。 * @example * ```typescript * const bindRules = await sdm.tapToRun.getBindTapToRunRules(); * bindRules.forEach(item => { * console.log('绑定 ID:', item.bindId); * item.associativeEntityValueList.forEach(rule => { * console.log('已绑定规则:', rule.id, rule.name); * }); * }); * ``` */ getBindTapToRunRules(params?: Omit): Promise; } export {};