import { AD02_AIType, AD02_AIUploadType } from './constant';
import { AD02_AICalculate, AD02_AIUpload, AD02_AOOutput, AD02_ModbusConfig, AD02_UartConfig } from './interface';
/** 输入通道类型，0——AI1；1——AI2 */
type InputChannel = 0 | 1;
/** 输出通道类型，0——AO1；1——AO2 */
type OutputChannel = 0 | 1;
/** JX-AD02 BLE蓝牙协议 */
export declare class AD02_BLE {
    /**
     * 读取硬件版本指令
     * @returns 可直接下发的蓝牙通信指令
     */
    static readHardwareVersionCMD(): Uint8Array;
    /**
     * 解析硬件版本
     * @param data 读取硬件版本蓝牙返回数据帧
     * @returns 硬件版本（ASCII字符串）
     */
    static resolveHardwareVersion(data: Uint8Array): string;
    /**
     * 读取软件版本指令
     * @returns 可直接下发的蓝牙通信指令
     */
    static readSoftwareVersionCMD(): Uint8Array;
    /**
     * 解析软件版本
     * @param data 读取硬件版本蓝牙返回数据帧
     * @returns 软件版本（ASCII字符串）
     */
    static resolveSoftwareVersion(data: Uint8Array): string;
    /**
     * 读取协议版本指令
     * @returns 可直接下发的蓝牙通信指令
     */
    static readProtocolVersionCMD(): Uint8Array;
    /**
     * 解析协议版本
     * @param data 读取协议版本蓝牙返回数据帧
     * @returns 协议版本（ASCII字符串）
     */
    static resolveProtocolVersion(data: Uint8Array): string;
    /**
     * 获取密码校验指令
     * @param password 密码（ASCII字符）
     * @returns 可直接下发的蓝牙通信指令
     */
    static passwordCheckCMD(password: string): Uint8Array;
    /**
     * 密码验证蓝牙返回内容解析
     * @param data 密码验证蓝牙返回数据帧
     * @returns 密码验证结果
     */
    static resolvePasswordCheck(data: Uint8Array): boolean;
    /**
     * 获取设置密码指令
     * @param password 密码（ASCII字符）
     * @returns 可直接下发的蓝牙通信指令
     */
    static setPasswordCMD(password: string): Uint8Array;
    /**
     * 设置密码蓝牙返回内容解析
     * @param data 设置密码蓝牙返回数据帧
     * @returns 密码设置结果
     */
    static resolveSetPassword(data: Uint8Array): boolean;
    /**
     * 获取模拟量输入（AI）类型（量程）指令
     * @param channel 模拟量输入通道。0——AI1；1——AI2
     * @returns 可直接下发的蓝牙通信指令
     */
    static readAITypeCMD(channel: InputChannel): Uint8Array;
    /**
     * 获取模拟量输入（AI）类型（量程）蓝牙返回内容解析
     * @param data 读取AI类型（量程）蓝牙返回数据帧
     * @returns AI量程类型，0——电压（0-10V）；1——电流（0-24mA）
     */
    static resolveAIType(data: Uint8Array): AD02_AIType;
    /**
     * 获取写入AI量程/类型指令
     * @param channel 模拟量输入通道。0——AI1；1——AI2
     * @param type AI量程类型，0——电压（0-10V）；1——电流（0-24mA）
     * @returns 可直接下发的蓝牙通信指令
     */
    static writeAITypeCMD(channel: InputChannel, type: AD02_AIType): Uint8Array;
    /**
     * 设置AI量程返回内容解析
     * @param data 设置AI量程蓝牙返回数据帧
     * @param channel AI通道。0——AI1；1——AI2
     * @returns 写入结果
     */
    static resolveWriteAITypeRes(data: Uint8Array, channel: InputChannel): boolean;
    /**
     * 获取模拟量输入测量值指令
     * @param channel 模拟量输入通道。0——AI1；1——AI2
     * @returns 可直接下发的蓝牙通信指令
     */
    static readAICMD(channel: InputChannel): Uint8Array;
    /**
     * 获取模拟量输入测量值蓝牙返回内容解析
     * @param data 读取AI测量值蓝牙返回数据帧
     * @returns AI测量值，电压0~10000，电流0~24000
     */
    static resolveAI(data: Uint8Array): number;
    /**
     * 获取模拟量输入运算后的值指令
     * @param channel 模拟量输入通道。0——AI1；1——AI2
     * @returns 可直接下发的蓝牙通信指令
     */
    static readUserAICMD(channel: InputChannel): Uint8Array;
    /**
     * 获取模拟量输入运算值蓝牙返回内容解析
     * @param data 读取AI运算值蓝牙返回数据帧
     * @returns AI运算值，浮点数
     */
    static resolveUserAI(data: Uint8Array): number;
    /**
     * 获取模拟量输入（AI）用户自定义运算指令
     * @description 由于双层四则运算的运算符和运算值在寄存器排列上连续，所以这里一次读取。
     * @param channel 模拟量输入通道。0——AI1；1——AI2
     * @returns 可直接下发的蓝牙通信指令
     */
    static readAICalculate(channel: InputChannel): Uint8Array;
    /**
     * 获取模拟量输入（AI）用户自定义运算返回内容解析
     * @param data 读取模拟量输入运算蓝牙返回数据帧
     * @returns 模拟量双层四则运算内容
     */
    static resolveAICalculate(data: Uint8Array): AD02_AICalculate;
    /**
     * 获取写入用户自定义运算公式配置指令
     * @param channel 模拟量输入通道。0——AI1；1——AI2
     * @param formula 运算公式内容
     * @returns 可直接下发的蓝牙通信指令
     */
    static writeAICalculateCMD(channel: InputChannel, formula: AD02_AICalculate): Uint8Array;
    /**
     * 设置AI运算公式返回内容解析
     * @param data 设置AI运算公式蓝牙返回数据帧
     * @param channel AI通道。0——AI1；1——AI2
     * @returns 写入结果
     */
    static resolveWriteAICalculateRes(data: Uint8Array, channel: InputChannel): boolean;
    /**
     * 获取AI校准配置指令
     * @param channel 模拟量输入通道。0——AI1；1——AI2
     * @param type 通道类型，2——电压；3——电流
     * @returns 可直接下发的蓝牙通信指令
     */
    static readAICalibrateCMD(channel: InputChannel, type: 2 | 3): Uint8Array;
    /**
     * 获取AI校准配置返回内容解析
     * @param data 读取AI校准配置蓝牙返回数据帧
     * @returns 4个校准点数据的元组类型
     */
    static resolveAICalibrate(data: Uint8Array): [number, number, number, number];
    /**
     * 设置AI校准指令
     * @deprecated 请使用下面的V2版方法
     * @param channel 模拟量输入通道。0——AI1；1——AI2
     * @param type 通道类型，2——电压；3——电流
     * @param valueList 校准值列表
     * @returns 可直接下发的蓝牙通信指令
     */
    static calibrateAICMD(channel: InputChannel, type: 2 | 3, valueList: [number, number, number, number]): Uint8Array;
    /**
     * AI校准返回内容解析
     * @deprecated 请使用下面的V2版方法
     * @param data AI校准蓝牙返回数据帧
     * @param channel AI通道。0——AI1；1——AI2
     * @param type 通道类型，2——电压；3——电流
     * @returns 校准结果
     */
    static resolveCalibrateAIRes(data: Uint8Array, channel: InputChannel, type: 2 | 3): boolean;
    /**
     * 设置AI校准指令—V2版
     * @param channel 模拟量输入通道。0——AI1；1——AI2
     * @param type 通道类型，2——电压；3——电流
     * @param point 校准点
     * @param value 校准值
     * @returns 可直接下发的蓝牙通信指令
     */
    static calibrateAICMD_V2(channel: InputChannel, type: 2 | 3, point: 1 | 2 | 3 | 4, value: number): Uint8Array;
    /**
     * AI校准返回内容解析—V2版
     * @param data 下发AI校准指令蓝牙返回数据帧
     * @param channel 模拟量输入通道。0——AI1；1——AI2
     * @param type 通道类型，2——电压；3——电流
     * @param point 校准点
     * @param value 校准值
     * @returns AI校准结果
     */
    static resolveCalibrateAIRes_V2(data: Uint8Array, channel: InputChannel, type: 2 | 3, point: 1 | 2 | 3 | 4, value: number): boolean;
    /**
     * 读取AI自动上报配置指令
     * @param channel 模拟量输入通道。0——AI1；1——AI2
     * @returns 可直接下发的蓝牙通信指令
     */
    static readAIUploadCMD(channel: InputChannel): Uint8Array;
    /**
     * 获取AI上报配置返回内容解析
     * @param data 获取AI上报配置蓝牙返回数据帧
     * @returns AI上报配置
     */
    static resolveAIUpload(data: Uint8Array): AD02_AIUpload;
    /**
     * 获取设置AI上报配置指令
     * @param channel 模拟量输入通道。0——AI1；1——AI2
     * @param typeList 上报类型列表
     * @param minChangeValue 变化最小值，UInt16格式
     * @param timerValue 定时时间，单位：秒，UInt16格式
     * @param minZoneValue 区间下限值，Int16格式
     * @param maxZoneValue 区间上限值，Int16格式
     * @returns 可直接下发的蓝牙通信指令
     */
    static setAIUploadCMD(channel: InputChannel, typeList: AD02_AIUploadType[], minChangeValue: number, timerValue: number, minZoneValue: number, maxZoneValue: number): Uint8Array;
    /**
     * 配置AI上报返回内容解析
     * @param data 配置AI上报蓝牙返回数据帧
     * @param channel 模拟量输入通道。0——AI1；1——AI2
     * @returns 上报配置设置结果
     */
    static resolveAIUploadRes(data: Uint8Array, channel: InputChannel): boolean;
    /**
     * 获取模拟量输出（AO）的值指令
     * @description 由于两个AO输出的值寄存器排列连续，所以这里**一次读取两个值**。
     * @returns 可直接下发的蓝牙通信指令
     */
    static readAOCMD(): Uint8Array;
    /**
     * 获取模拟量输出（AO）的值返回内容解析
     * @param data 读取AO数据蓝牙返回数据帧
     * @returns AO值，元组格式，单位为毫伏
     */
    static resolveAO(data: Uint8Array): [number, number];
    /**
     * 获取控制模拟量输出（AO）的指令
     * @description 由于两个AO输出的值寄存器排列连续，所以这里**一次写入两个值**。
     * @param ao1 AO1的控制值，单位：**毫伏**，合法范围为：`0-10000`
     * @param ao2 AO2的控制值，单位：**毫伏**，合法范围为：`0-10000`
     * @returns 可直接下发的蓝牙通信指令
     */
    static writeAOCMD(ao1: number, ao2: number): Uint8Array;
    /**
     * 写入控制AO值返回内容解析
     * @param data 写入控制AO值蓝牙返回数据帧
     * @returns 写入控制结果
     */
    static resolveWriteAORes(data: Uint8Array): boolean;
    /**
     * 读取AO上电初始值指令
     * @param channel 模拟量输出通道。0——AO1；1——AO2
     * @returns 可直接下发的蓝牙通信指令
     */
    static readAOInitCMD(channel: OutputChannel): Uint8Array;
    /**
     * 读取AO上电初始值返回内容解析
     * @param data 读取AO上电初始值蓝牙返回数据帧
     * @returns AO上电初始值，单位：毫伏，UInt16格式
     */
    static resolveAOInit(data: Uint8Array): number;
    /**
     * 获取设置AO上电初始值指令
     * @param channel AO通道。0——AO1；1——AO2
     * @param initValue 上电初始值，单位：毫伏，范围：0-10000
     * @returns 可直接下发的蓝牙通信指令
     */
    static writeAOInitCMD(channel: OutputChannel, initValue: number): Uint8Array;
    /**
     * 设置AO上电初始值返回内容解析
     * @param data 写入AO上电初始值值蓝牙返回数据帧
     * @param channel AO通道。0——AO1；1——AO2
     * @returns 写入控制结果
     */
    static resolveWriteAOInitRes(data: Uint8Array, channel: OutputChannel): boolean;
    /**
     * 读取AO周期输出配置指令
     * @param channel 模拟量输出通道。0——AO1；1——AO2
     * @returns 可直接下发的蓝牙通信指令
     */
    static readAOOutputCMD(channel: OutputChannel): Uint8Array;
    /**
     * 获取AO周期输出配置返回内容解析
     * @param data 读取AO周期输出配置蓝牙返回数据帧
     * @returns AO周期输出配置
     */
    static resolveAOOutput(data: Uint8Array): AD02_AOOutput;
    /**
     * 生成AO周期输出配置下发指令
     * @param channel 模拟量输出通道。0——AO1；1——AO2
     * @param output AO周期输出配置
     * @returns 可直接下发的蓝牙通信指令
     */
    static writeAOOutputCMD(channel: OutputChannel, output: AD02_AOOutput): Uint8Array;
    /**
     * 设置AO周期输出配置返回内容解析
     * @param data 写入AO周期输出配置蓝牙返回数据帧
     * @param channel AO通道。0——AO1；1——AO2
     * @returns 写入控制结果
     */
    static resolveWriteAOOutputRes(data: Uint8Array, channel: OutputChannel): boolean;
    /**
     * 读取串口参数配置指令
     * @returns 可直接下发的蓝牙通信指令
     */
    static readUartConfigCMD(): Uint8Array;
    /**
     * 获取串口参数配置返回内容解析
     * @param data 读取串口参数蓝牙返回数据帧
     * @returns 串口参数配置
     */
    static resolveUartConfig(data: Uint8Array): AD02_UartConfig;
    /**
     * 生成串口参数配置下发指令
     * @param config 串口参数配置
     * @returns 可直接下发的蓝牙通信指令
     */
    static writeUartConfigCMD(config: AD02_UartConfig): Uint8Array;
    /**
     * 配置串口参数返回内容解析
     * @param data 配置串口参数蓝牙返回数据帧
     * @returns 串口参数配置结果
     */
    static resolveWriteUartConfigRes(data: Uint8Array): boolean;
    /**
     * 读取Modbus配置指令
     * @returns 可直接下发的蓝牙通信指令
     */
    static readModbusConfigCMD(): Uint8Array;
    /**
     * 获取Modbus参数配置返回内容解析
     * @param data 读取Modbus参数蓝牙返回数据帧
     * @returns Modbus参数配置
     */
    static resolveModbusConfig(data: Uint8Array): AD02_ModbusConfig;
    /**
     * 生成Modbus参数配置下发指令
     * @param config Modbus参数
     * @returns 可直接下发的蓝牙通信指令
     */
    static writeModbusConfigCMD(config: AD02_ModbusConfig): Uint8Array;
    /**
     * 配置Modbus参数返回内容解析
     * @param data 配置Modbus参数蓝牙返回数据帧
     * @returns Modbus参数配置结果
     */
    static resolveWriteModbusConfigRes(data: Uint8Array): boolean;
    /**
     * 获取重启指令
     * @returns 可直接下发的蓝牙通信指令
     */
    static rebootCMD(): Uint8Array;
    /**
     * 下发重启指令返回内容解析
     * @param data 下发重启指令蓝牙返回数据帧
     * @returns 重启结果
     */
    static resolveRebootRes(data: Uint8Array): boolean;
    /**
     * 获取恢复出厂设置并重启指令
     * @returns 可直接下发的蓝牙通信指令
     */
    static recoveryCMD(): Uint8Array;
    /**
     * 下发恢复出厂设置指令返回内容解析
     * @param data 下发恢复出厂设置指令蓝牙返回数据帧
     * @returns 恢复出厂设置结果
     */
    static resolveRecoveryRes(data: Uint8Array): boolean;
}
export {};
