import { Transformer } from './interface'; type TColorData = { hue: number; saturation: number; }; /** * HS 颜色设置协议转换器,用于 HS 色值与 Zigbee DP 协议格式的双向转换 * * @public * @since @ray-js/panel-sdk 1.0.0 * @remarks * 适用于 Zigbee 灯类产品的 HS 颜色设置 DP(如 `hs_color_set`),将前端 hue(0-360)/saturation(0-1000) * 与设备协议的 2 字节(0-254 范围)十六进制格式互转。 * 注意:此转换器会对 hue 和 saturation 做范围映射(hue: 0-360 <-> 0-254,saturation: 0-1000 <-> 0-254)。 * * @example * ```ts * import { HSColourTransformer } from '@ray-js/panel-sdk'; * * const transformer = new HSColourTransformer(); * // 解析 DP 字符串为 HS 对象 * const hs = transformer.parser('fefe'); * // => { hue: 360, saturation: 1000 } * * // 将 HS 对象格式化为 DP 字符串 * const dpStr = transformer.formatter({ hue: 180, saturation: 500 }); * ``` */ declare class HSColourSetTransformer implements Transformer { /** * @internal */ uuid: string; /** * @internal */ defaultValue: TColorData; /** * 创建 HS 颜色设置转换器实例 * * @public * @since @ray-js/panel-sdk 1.0.0 * @param uuid - DP 标识符,默认为 `'hs_color_set'` * @param defaultValue - 默认 HS 值,当解析失败时返回此值 */ constructor(uuid?: string, defaultValue?: null); /** * 比较两个值是否相等 * * @internal * @param source - 源值 * @param target - 目标值 * @returns 是否相等 */ equal(source: any, target: any): boolean; /** * 将 DP 十六进制字符串解析为 HS 色值对象 * * @public * @since @ray-js/panel-sdk 1.0.0 * @param val - 4 位十六进制 DP 字符串(hue 2位 + saturation 2位,值域 0-254) * @returns 包含 hue(0-360)、saturation(0-1000) 的色值对象;空字符串时返回默认值 * * @example * ```ts * const hs = transformer.parser('7f7f'); * // => { hue: 180, saturation: 500 } * ``` */ parser(val?: string): TColorData; /** * 将十进制数值转为指定长度的十六进制字符串 * * @internal * @param value - 十进制数值 * @param length - 目标十六进制字符串长度 * @returns 补零后的十六进制字符串 */ to16(value: any, length: any): string; /** * 将 HS 色值对象格式化为 DP 十六进制字符串 * * @public * @since @ray-js/panel-sdk 1.0.0 * @param data - 包含 hue(0-360)、saturation(0-1000) 的色值对象 * @returns 4 位十六进制 DP 字符串(映射至 0-254 范围) * * @example * ```ts * const dpStr = transformer.formatter({ hue: 360, saturation: 1000 }); * // => 'fefe' * ``` */ formatter(data: any): string; } export default HSColourSetTransformer;