import { F32Encode, F64Encode, I16Encode, I32Encode, I64Encode } from './constant';
/** 编解码参数 */
interface EncodeOptions {
    /** 16位整型编码（有符号+无符号） */
    i16?: I16Encode;
    /** 32位整型编码（有符号+无符号） */
    i32?: I32Encode;
    /** 32位浮点型编码（FLOAT） */
    f32?: F32Encode;
    /** 64位整型编码（有符号+无符号） */
    i64?: I64Encode;
    /** 64位浮点型编码（Double） */
    f64?: F64Encode;
}
/** 初始化参数 */
interface Options extends EncodeOptions {
    /** 从机地址，可填写`0-255`，标准规定合法的地址是`0–247` */
    slaveId: number;
    /**
     * 取消结尾的回车换行符(\r\n)
     */
    disableLinefeed?: boolean;
}
/** 生成指令额外参数 */
interface GetCMDOptions extends StaticGetCMDOptions {
    /** 从机地址，可填写`0-255`，标准规定合法的地址是`0–247` */
    slaveId?: number;
}
/** 使用静态方法生成指令额外参数 */
interface StaticGetCMDOptions {
    /**
     * 指令字符是否小写
     * @description 传入`true`，返回示例：`:010300000001fb\r\n`；
     * @description 传入`false`或不传，返回示例：`:010300000001FB\r\n`
     * @default false
     */
    lowerCase?: boolean;
    /**
     * 取消结尾的回车换行符(\r\n)
     */
    disableLinefeed?: boolean;
}
export declare class ModbusASCII {
    /** 从机地址 */
    private slaveId;
    /** 取消结尾的回车换行符(\r\n) */
    private disableLinefeed;
    /** 16位整型编码（有符号+无符号） */
    private i16Encode;
    /** 32位整型编码（有符号+无符号） */
    private i32Encode;
    /** 32位浮点型编码（FLOAT） */
    private f32Encode;
    /** 64位整型编码（有符号+无符号） */
    private i64Encode;
    /** 64位浮点型编码（Double） */
    private f64Encode;
    /**
     * 实例化ModbusRTU类
     * @param params 初始化参数
     */
    constructor(params: Options);
    /**
     * 读线圈寄存器——01功能码
     * @param startAddress 起始地址
     * @param count 线圈数量
     * @param options 生成指令额外参数
     * @returns 读取命令——十六进制字符串
     */
    readCoilCMD(startAddress: number, count: number, options?: GetCMDOptions): string;
    /**
     * 读线圈寄存器——01功能码
     * @param slaveId 从机地址
     * @param startAddress 起始地址
     * @param count 线圈数量
     * @param options 生成指令额外参数
     * @returns 读取命令——十六进制字符串
     */
    static readCoilCMD(slaveId: number, startAddress: number, count: number, options?: StaticGetCMDOptions): string;
    /**
     * Modbus ASCII 读取指令包裹
     * @description 将 `Modbus PDU` 数据打包成 `Modbus ASCII` 数据
     * @param pduHex Modbus PDU数据（十六进制字符串格式）
     * @param options 生成指令额外操作
     * @returns Modbus ASCII指令
     */
    private readCMDWrap;
}
export {};
