import { Transformer } from './interface'; /** * 将任意值转为数字,无法转换时返回 0 * * @internal * @param n - 待转换的值 * @returns 转换后的数字 */ export declare function toN(n: any): number; /** * 创建一个基于 Generator 的十六进制字符串步进解析器 * * @internal * @param value - 待解析的十六进制字符串 * @param isHex - 是否将截取的子串按十六进制解析为数字,默认 true * @returns Generator 迭代器,每次 next(length) 返回指定长度的解析结果 */ export declare function formatterTransform(value: string, isHex?: boolean): Generator; interface SceneColorType { hue: number; saturation: number; } /** 涂抹dp数据 */ export interface DreamlightSceneModeValueType { /** 版本号(1byte) */ version?: number; /** 场景号(自定义200+)(1byte) */ id: number; /** 变化方式(1byte) */ mode: number; /** 单元切换间隔(1byte) */ /** 单元变化时间(1byte) */ speed?: number; /** 混合的场景号 */ mixedIds?: number[]; /** * Option_A(1byte) * 非混合情景模式下: * segmented 7bit: 0-全段、1-分段 * loop 6bit: 0-不循环、1-循环 * excessive 5bit: 0-不过渡、1-过度 * direction 4bit: 0-顺时针方向、1-逆时针方向 * expand 3bit_2bit: 00-默认模式、01-拓展1、10-拓展2、11-拓展3 * 流星情景: 00-流星,01-流星雨,10-幻彩流星 * 开合情景: 00-同时,01-交错 * reserved_1 1bit: 无 * reserved_2 0bit: 无 * 混合情景模式下: 场景号 */ segmented?: number; loop?: number; excessive?: number; direction?: number; expand?: number; reserved1?: number; reserved2?: number; /** Option_B(一期预留,二期混合模式用ABC表场景号)(1byte) */ /** Option_C(一期预留,二期混合模式用ABC表场景号)(1byte) */ /** 亮度(所有颜色公用一个亮度)(1byte) */ brightness: number; /** 颜色单元(每个颜色3byte, hue: 2byte, saturation: 1byte) */ colors: SceneColorType[]; } /** * 幻彩灯带场景模式协议转换器,用于梦幻灯场景配置数据与 DP 十六进制协议的双向转换 * * @public * @since @ray-js/panel-sdk 1.0.0 * @remarks * 适用于幻彩灯带产品的场景模式 DP(如 `dreamlight_scene_mode`),支持普通场景模式与混合场景模式。 * 协议包含版本号、场景 ID、变化方式、速度、方向控制、颜色列表等多种参数。 * 颜色单元为 3 字节(hue 2字节 + saturation 1字节),亮度为所有颜色共用。 * * @example * ```ts * import { DreamlightSceneModeTransformer } from '@ray-js/panel-sdk'; * * const transformer = new DreamlightSceneModeTransformer(); * // 解析场景 DP 字符串 * const scene = transformer.parser('01c8010d0d00000064007003e8'); * * // 格式化为 DP 字符串 * const dpStr = transformer.formatter({ * id: 200, mode: 1, speed: 13, * brightness: 1000, * colors: [{ hue: 0, saturation: 1000 }, { hue: 120, saturation: 800 }], * }); * ``` */ export default class DreamlightSceneModeTransformer implements Transformer { /** * @internal */ uuid: string; /** * @internal */ defaultValue: any; /** * 创建幻彩灯场景模式转换器实例 * * @public * @since @ray-js/panel-sdk 1.0.0 * @param uuid - DP 标识符,默认为 `'dreamlight_scene_mode'` * @param defaultValue - 默认场景数据,当解析失败时返回此值 */ constructor(uuid?: string, defaultValue?: DreamlightSceneModeValueType); /** * 将 DP 十六进制字符串解析为幻彩灯场景模式数据对象 * * @public * @since @ray-js/panel-sdk 1.0.0 * @param val - 十六进制 DP 字符串,长度需大于 18 位 * @returns 场景模式数据对象,包含版本号、场景 ID、变化方式、速度、颜色列表等;解析失败时返回默认值 * * @example * ```ts * const scene = transformer.parser('01c8010d0d00000064007003e8'); * // => { version: 1, id: 200, mode: 1, speed: 13, segmented: 0, loop: 0, ... } * ``` */ parser(val?: string): DreamlightSceneModeValueType; /** * 将幻彩灯场景模式数据对象格式化为 DP 十六进制字符串 * * @public * @since @ray-js/panel-sdk 1.0.0 * @param data - 场景模式数据对象,包含版本号、场景 ID、变化方式、颜色列表等 * @returns 十六进制 DP 字符串 * * @example * ```ts * const dpStr = transformer.formatter({ * version: 1, id: 200, mode: 1, speed: 13, * brightness: 1000, * colors: [{ hue: 0, saturation: 1000 }, { hue: 120, saturation: 800 }], * }); * ``` */ formatter(data: DreamlightSceneModeValueType): string; } export {};