/** * 将数字转换为指定长度的字符串,不足时前补零,超出时从右侧截取 * @public * @since @ray-js/panel-sdk 1.0.0 * @param num - 需要转换的数字 * @param count - 目标字符串的固定长度 * @returns 固定长度的字符串,负数会保留负号前缀 * @example 基础用法 * ```ts * import { utils } from '@ray-js/panel-sdk'; * * const { toFixedString } = utils; * * toFixedString(111, 5); // '00111' * toFixedString(-42, 4); // '-0042' * toFixedString(123456, 3); // '456' * ``` */ export declare const toFixedString: (num: number, count: number) => string; /** * 将数字转换为指定最小长度的字符串,不足时前补零,超出时保持原样 * @public * @since @ray-js/panel-sdk 1.0.0 * @param num - 需要转换的数字 * @param count - 目标字符串的最小长度 * @returns 至少为 count 位的字符串,负数会保留负号前缀 * @example 基础用法 * ```ts * import { utils } from '@ray-js/panel-sdk'; * * const { toFilledString } = utils; * * toFilledString(111, 5); // '00111' * toFilledString(-1111111, 5); // '-1111111' * toFilledString(42, 4); // '0042' * ``` */ export declare const toFilledString: (num: number, count: number) => string; /** * 获取数字在二进制表示中指定位置的位值 * @public * @since @ray-js/panel-sdk 1.0.0 * @param num - 源数字 * @param idx - 位索引(从低位开始,0 为最低位) * @typeOverride num number * @typeOverride idx number * @returns 该位置的位值,0 或 1 * @example 基础用法 * ```ts * import { utils } from '@ray-js/panel-sdk'; * * const { getBitValue } = utils; * * // 17 = 10001(2) * getBitValue(17, 0); // 1 * getBitValue(17, 1); // 0 * getBitValue(17, 4); // 1 * ``` */ export declare const getBitValue: (num: number, idx: number) => number; /** * 翻转数字在二进制表示中指定位置的位值(0 变 1,1 变 0) * @public * @since @ray-js/panel-sdk 1.0.0 * @param num - 源数字 * @param idx - 位索引(从低位开始,0 为最低位) * @typeOverride num number * @typeOverride idx number * @returns 指定位翻转后的新数字 * @example 基础用法 * ```ts * import { utils } from '@ray-js/panel-sdk'; * * const { changeBitValue } = utils; * * // 17 = 10001(2) * changeBitValue(17, 0); // 16 (10000) * changeBitValue(17, 1); // 19 (10011) * changeBitValue(17, 4); // 1 (00001) * ``` */ export declare const changeBitValue: (num: number, idx: number) => number; /** * 将数字在二进制表示中指定位置的位值设为 1 * @public * @since @ray-js/panel-sdk 1.0.0 * @param num - 源数字 * @param idx - 位索引(从低位开始,0 为最低位) * @returns 指定位设为 1 后的新数字 * @typeOverride num number * @typeOverride idx number * @example 基础用法 * ```ts * import { utils } from '@ray-js/panel-sdk'; * * const { setBitValueWithOne } = utils; * * // 17 = 10001(2) * setBitValueWithOne(17, 0); // 17 (10001),原本就是 1 * setBitValueWithOne(17, 1); // 19 (10011) * setBitValueWithOne(17, 5); // 49 (110001) * ``` */ export declare const setBitValueWithOne: (num: number, idx: number) => number; /** * 将数字在二进制表示中指定位置的位值设为 0 * @public * @since @ray-js/panel-sdk 1.0.0 * @param num - 源数字 * @param idx - 位索引(从低位开始,0 为最低位) * @returns 指定位设为 0 后的新数字 * @typeOverride num number * @typeOverride idx number * @example 基础用法 * ```ts * import { utils } from '@ray-js/panel-sdk'; * * const { setBitValueWithZero } = utils; * * // 17 = 10001(2) * setBitValueWithZero(17, 0); // 16 (10000) * setBitValueWithZero(17, 1); // 17 (10001),原本就是 0 * setBitValueWithZero(17, 4); // 1 (00001) * ``` */ export declare const setBitValueWithZero: (num: number, idx: number) => number; /** * 将字节数组转换为十六进制字符串 * @public * @since @ray-js/panel-sdk 1.0.0 * @param bytes - 字节数组,每个元素为 0-255 的整数 * @returns 对应的十六进制字符串,每字节两个字符 * @example 基础用法 * ```ts * import { utils } from '@ray-js/panel-sdk'; * * const { bytesToHexString } = utils; * * bytesToHexString([1, 2]); // '0102' * bytesToHexString([23, 2]); // '1702' * bytesToHexString([255, 0]); // 'ff00' * ``` */ export declare const bytesToHexString: (bytes: number[]) => string; /** * 将十进制数字转换为指定长度的十六进制字符串 * @public * @since @ray-js/panel-sdk 1.0.0 * @param num - 需要转换的十进制数字 * @param padding - 十六进制字符串的最小长度,默认为 2,不足前补零 * @returns 十六进制字符串 * @typeOverride num number * @typeOverride padding number * @example 基础用法 * ```ts * import { utils } from '@ray-js/panel-sdk'; * * const { numToHexString } = utils; * * numToHexString(111); // '6f' * numToHexString(15); // '0f' * numToHexString(255, 4); // '00ff' * ``` */ export declare const numToHexString: (num: number, padding?: number) => string; /** * 将十进制整数转换为大端字节数组 * @public * @since @ray-js/panel-sdk 1.0.0 * @param num - 需要转换的十进制整数 * @param bytes - 最小字节数,默认为 2;当结果不足该长度时会在高位补 0 * @typeOverride num number * @typeOverride bytes number * @returns 对应的字节数组,高位在前;若数值超过 bytes 指定的宽度,不会截断 * @remarks 适用于非负整数。返回结果采用大端序,例如 256 会转换为 [1, 0]。 * @example 基础用法 * ```ts * import { utils } from '@ray-js/panel-sdk'; * * const { numToByteNumbers } = utils; * * numToByteNumbers(111); // [0, 111] * numToByteNumbers(1040001); // [15, 222, 129] * numToByteNumbers(256, 2); // [1, 0] * ``` */ export declare const numToByteNumbers: (num: number, bytes?: number) => number[]; /** * 将高低字节合并为一个整数 * @public * @since @ray-js/panel-sdk 1.0.0 * @param high - 高 8 位字节值 * @param low - 低 8 位字节值 * @returns 合并后的整数值 * @typeOverride high number * @typeOverride low number * @example 基础用法 * ```ts * import { utils } from '@ray-js/panel-sdk'; * * const { highLowToInt } = utils; * * highLowToInt(11, 22); // 2838 * highLowToInt(22, 11); // 5643 * highLowToInt(1, 0); // 256 * ``` */ export declare const highLowToInt: (high: number, low: number) => number; /** * 将整数拆分为高低字节数组 * @public * @since @ray-js/panel-sdk 1.0.0 * @param num - 需要拆分的整数 * @returns 包含 [高 8 位, 低 8 位] 的元组 * @example 基础用法 * ```ts * import { utils } from '@ray-js/panel-sdk'; * * const { intToHighLow } = utils; * * intToHighLow(2838); // [11, 22] * intToHighLow(5643); // [22, 11] * intToHighLow(256); // [1, 0] * ``` */ export declare const intToHighLow: (num: number) => [number, number]; /** * 将数值限制在最小值和最大值之间 * @public * @since @ray-js/panel-sdk 1.0.0 * @param min - 允许的最小值 * @param max - 允许的最大值 * @param value - 需要限制的值 * @returns 限制后的值,保证 min <= 返回值 <= max * @example 基础用法 * ```ts * import { utils } from '@ray-js/panel-sdk'; * * const { inMaxMin } = utils; * * inMaxMin(1, 233, 2838); // 233(超过最大值,返回最大值) * inMaxMin(2, 0, 1); // 1(在范围外但参数顺序注意 min < max) * inMaxMin(0, 100, 50); // 50(在范围内,原样返回) * ``` */ export declare const inMaxMin: (min: number, max: number, value: number) => number; /** * 按指定精度缩放数字并返回字符串 * @public * @since @ray-js/panel-sdk 1.0.0 * @param scale - 缩放精度,表示除以 10^scale 并保留 scale 位小数 * @param value - 需要缩放的数值 * @typeOverride scale number * @typeOverride value number * @returns 缩放后的数字字符串 * @example 基础用法 * ```ts * import { utils } from '@ray-js/panel-sdk'; * * const { scaleNumber } = utils; * * scaleNumber(2, 10245); // '102.45' * scaleNumber(1, 1024); // '102.4' * scaleNumber(0, 42); // '42' * ``` */ export declare const scaleNumber: (scale: number, value: number) => string; /** * 生成指定范围的数字数组 * @public * @since @ray-js/panel-sdk 1.0.0 * @param start - 起始值 * @param end - 结束值 * @param step - 步进值,默认为 1 * @returns 从 start 到 end,步长为 step 的数组 * @typeOverride start number * @typeOverride end number * @typeOverride step number * @typeOverride returns number[] * @example 基础用法 * ```ts * import { utils } from '@ray-js/panel-sdk'; * * const { range } = utils; * * range(0, 3); // [0, 1, 2] * range(1, 10, 3); // [1, 4, 7] * range(0, -3, -1); // [0, -1, -2] * ``` */ export declare const range: (start: number, end: number, step?: number) => any[]; /** * 将数值从一个范围线性映射到另一个范围 * @public * @since @ray-js/panel-sdk 1.0.0 * @param value - 原始值 * @param min - 原始范围的最小值 * @param max - 原始范围的最大值 * @param newMin - 目标范围的最小值 * @param newMax - 目标范围的最大值 * @typeOverride value number * @typeOverride min number * @typeOverride max number * @typeOverride newMin number * @typeOverride newMax number * @returns 映射到目标范围后的值 * @example 基础用法 * ```ts * import { utils } from '@ray-js/panel-sdk'; * * const { calcPosition } = utils; * * calcPosition(50, 0, 100, -100, 0); // -50 * calcPosition(255, 0, 255, 0, 100); // 100 * calcPosition(127.5, 0, 255, 0, 100); // 50 * ``` */ export declare const calcPosition: (value: number, min: number, max: number, newMin: number, newMax: number) => number; /** * 计算数值在指定范围内的百分比 * @public * @since @ray-js/panel-sdk 1.0.0 * @param min - 范围最小值 * @param max - 范围最大值 * @param value - 需要计算百分比的值,会被限制在 [min, max] 内 * @param offset - 百分比起始偏移量(0-1),默认为 0 * @typeOverride min number * @typeOverride max number * @typeOverride value number * @typeOverride offset number * @returns 0 到 1 之间的百分比值 * @example 基础用法 * ```ts * import { utils } from '@ray-js/panel-sdk'; * * const { calcPercent } = utils; * * calcPercent(0, 100, 50); // 0.5 * calcPercent(25, 255, 25); // 0 * calcPercent(25, 255, 25, 0.1); // 0.1(带偏移量) * ``` */ export declare const calcPercent: (min: number, max: number, value: number, offset?: number) => number; /** * 精确计算两数相加,避免浮点数精度问题 * @public * @since @ray-js/panel-sdk 1.0.0 * @param number1 - 第一个加数 * @param number2 - 第二个加数 * @typeOverride number1 number * @typeOverride number2 number * @returns 精确的相加结果 * @remarks 通过先乘以 10 的 n 次方转为整数运算,再除回来,避免 JavaScript 浮点数精度丢失。 * @example 基础用法 * ```ts * import { utils } from '@ray-js/panel-sdk'; * * const { add } = utils; * * add(0.1, 0.2); // 0.3(而非 0.30000000000000004) * add(1.005, 0.01); // 1.015 * ``` */ export declare const add: (number1: number, number2: number) => number; /** * 精确计算两数相减,避免浮点数精度问题 * @public * @since @ray-js/panel-sdk 1.0.0 * @param number1 - 被减数 * @param number2 - 减数 * @typeOverride number1 number * @typeOverride number2 number * @returns 精确的相减结果 * @remarks 通过先乘以 10 的 n 次方转为整数运算,再除回来,避免 JavaScript 浮点数精度丢失。 * @example 基础用法 * ```ts * import { utils } from '@ray-js/panel-sdk'; * * const { subtract } = utils; * * subtract(0.3, 0.1); // 0.2(而非 0.19999999999999998) * subtract(1.005, 0.01); // 0.995 * ``` */ export declare const subtract: (number1: number, number2: number) => number;