import { F32Encode, F64Encode, I16Encode, I32Encode, I64Encode } from './constant';
export declare class Hex {
    /**
     * 十六进制字符串反转
     * @description "BB AA" --> "AA BB"
     * @param hexStr 十六进制字符串
     * @returns 转换后的十六进制字符串
     */
    static reverseBA(hexStr: string): string;
    /**
     * 十六进制字符串反转
     * @description "CC DD AA BB" --> "AA BB CC DD"
     * @param hexStr 十六进制字符串
     * @returns 转换后的十六进制字符串
     */
    static reverseCDAB(hexStr: string): string;
    /**
     * 十六进制字符串反转
     * @description "BB AA DD CC" --> "AA BB CC DD"
     * @param hexStr 十六进制字符串
     * @returns 转换后的十六进制字符串
     */
    static reverseBADC(hexStr: string): string;
    /**
     * 十六进制字符串反转
     * @description "DD CC BB AA" --> "AA BB CC DD"
     * @param hexStr 十六进制字符串
     * @returns 转换后的十六进制字符串
     */
    static reverseDCBA(hexStr: string): string;
    /**
     * 十六进制字符串反转
     * @description "GG HH EE FF CC DD AA BB" --> "AA BB CC DD EE FF GG HH"
     * @param hexStr 十六进制字符串
     * @returns 转换后的十六进制字符串
     */
    static reverseGHEFCDAB(hexStr: string): string;
    /**
     * 十六进制字符串反转
     * @description "BB AA DD CC FF EE HH GG" --> "AA BB CC DD EE FF GG HH"
     * @param hexStr 十六进制字符串
     * @returns 转换后的十六进制字符串
     */
    static reverseBADCFEHG(hexStr: string): string;
    /**
     * 十六进制字符串反转
     * @description "HH GG FF EE DD CC BB AA" --> "AA BB CC DD EE FF GG HH"
     * @param hexStr 十六进制字符串
     * @returns 转换后的十六进制字符串
     */
    static reverseHGFEDCBA(hexStr: string): string;
    /**
     * 将十六进制字符串转换成Int16数值
     * @description 'FFE9' -> -23
     * @param hexStr 十六进制编码字符串
     * @param i16Encode 编码格式
     * @returns 转换结果
     */
    static toInt16(hexStr: string, i16Encode: I16Encode): number;
    /**
     * 将Int16数值转换成十六进制字符串
     * @description -23 -> 'FFE9'
     * @param data 数值
     * @param i16Encode 编码格式
     * @returns 十六进制字符串
     */
    static fromInt16(data: number, i16Encode: I16Encode): string;
    /**
     * 将十六进制字符串转换成Uint16
     * @description '0017' -> 23
     * @param hexStr 十六进制编码字符串
     * @param i16Encode 编码格式
     * @returns 转换结果
     */
    static toUInt16(hexStr: string, i16Encode: I16Encode): number;
    /**
     * 将UInt16数值转换成十六进制字符串
     * @description 23 -> '0017'
     * @param data 数值
     * @param i16Encode 编码格式
     * @returns 十六进制字符串
     */
    static fromUInt16(data: number, i16Encode: I16Encode): string;
    /**
     * 将十六进制字符串转换成Int32数值
     * @description 'FFFFFFE9' -> -23
     * @param hexStr 十六进制编码字符串
     * @param i16Encode 编码格式
     * @returns 转换结果
     */
    static toInt32(hexStr: string, i32Encode: I32Encode): number;
    /**
     * 将Int32数值转换成十六进制字符串
     * @description -23 -> 'FFFFFFE9'
     * @param data 数值
     * @param i16Encode 编码格式
     * @returns 十六进制字符串
     */
    static fromInt32(data: number, i32Encode: I32Encode): string;
    /**
     * 将十六进制字符串转换成UInt32
     * @description '00 00 00 17' -> 23
     * @param hexStr 十六进制编码字符串
     * @param i16Encode 编码格式
     * @returns 转换结果
     */
    static toUInt32(hexStr: string, i32Encode: I32Encode): number;
    /**
     * 将UInt32数值转换成十六进制字符串
     * @description 23 -> '00 00 00 17'
     * @param data 数值
     * @param i16Encode 编码格式
     * @returns 十六进制字符串
     */
    static fromUInt32(data: number, i32Encode: I32Encode): string;
    /**
     * 将十六进制字符串转换成Int64数值
     * @description 'FFFFFFFFFFFFFFE9' -> -23
     * @see https://docs.iot9x.com/docs/js/上位机工具库/Modbus/附录/精度问题
     * @param hexStr 十六进制编码字符串
     * @param i16Encode 编码格式
     * @returns 转换结果
     */
    static toInt64(hexStr: string, i64Encode: I64Encode): number;
    /**
     * 将Int64数值转换成十六进制字符串
     * @description -23 -> 'FFFFFFFFFFFFFFE9'
     * @see https://docs.iot9x.com/docs/js/上位机工具库/Modbus/附录/精度问题
     * @param data 数值
     * @param i16Encode 编码格式
     * @returns 十六进制字符串
     */
    static fromInt64(data: number, i64Encode: I64Encode): string;
    /**
     * 将十六进制字符串转换成UInt64数值
     * @description '0000000000000017' -> 23
     * @see https://docs.iot9x.com/docs/js/上位机工具库/Modbus/附录/精度问题
     * @param hexStr 十六进制编码字符串
     * @param i16Encode 编码格式
     * @returns 转换结果
     */
    static toUInt64(hexStr: string, i64Encode: I64Encode): number;
    /**
     * 将UInt32数值转换成十六进制字符串
     * @description 23 -> '0000000000000017'
     * @see https://docs.iot9x.com/docs/js/上位机工具库/Modbus/附录/精度问题
     * @param data 数值
     * @param i16Encode 编码格式
     * @returns 十六进制字符串
     */
    static fromUInt64(data: number, i64Encode: I64Encode): string;
    /**
     * 将十六进制字符串转换成Float数值
     * @description '40133333' -> 2.2999999523162na84
     * @param hexStr 十六进制编码字符串
     * @param f32Encode 编码格式
     * @returns 转换结果
     */
    static toFloat(hexStr: string, f32Encode: F32Encode): number;
    /**
     * 将Float数值转换成十六进制字符串
     * @description 123.456 -> '42f6e979'
     * @see https://www.virtualbing.fun/#/%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80/JavaScript/%E5%AE%9E%E8%B7%B5%E7%A7%AF%E7%B4%AF/IEEE754/README
     * @param data 数值
     * @param f32Encode 编码格式
     * @returns 十六进制字符串
     */
    static fromFloat(data: number, f32Encode: F32Encode): string;
    /**
     * 将十六进制字符串转换成Double数值
     * @description '405edd2f1a9fbe77' -> 123.456
     * @param hexStr 十六进制编码字符串
     * @param f64Encode 编码格式
     * @returns 转换结果
     */
    static toDouble(hexStr: string, f64Encode: F64Encode): number;
    /**
     * 将Double数值转换成十六进制字符串
     * @description 123.456 -> '405edd2f1a9fbe77'
     * @see https://www.virtualbing.fun/#/%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80/JavaScript/%E5%AE%9E%E8%B7%B5%E7%A7%AF%E7%B4%AF/IEEE754/README
     * @param data 数值
     * @param f64Encode 编码格式
     * @returns 十六进制字符串
     */
    static fromDouble(data: number, f64Encode: F64Encode): string;
}
