import { CJT188GasMeteringData, CJT188HeatMeteringData, CJT188WaterMeteringData } from './interface';
import { MeterType } from './type';
/** 初始化配置参数 */
interface Options {
    /** 唤醒码 */
    wakeUpCode?: string;
    /** 唤醒长度 */
    wakeUpLength?: number;
    /** 表地址 */
    address?: string;
    /** 表类型 */
    meterType?: MeterType;
    /** 初始SER */
    ser?: number;
}
/** 历史数据月 */
type HistoryMonth = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
export declare class CJT188 {
    /** 唤醒码 */
    private wakeUpCode;
    /**
     * 唤醒长度
     * @default 4
     * @description 默认为4，则表示命令格式为：FE FE FE FE 68 ……
     */
    private wakeUpLength;
    /**
     * 表地址，A0~A6
     * @description 默认为广播地址，这里存储的是已经对齐并转小端之后的格式
     * @default 'AAAAAAAAAAAAAA'
     */
    private address;
    /** 序列号 */
    private ser;
    /** 表类型 */
    private meterType?;
    constructor(params?: Options);
    /**
     * 参数校验
     * @param options 参数
     * @param checkMeterType 是否校验仪表类型
     */
    private optionValidate;
    /**
     * 获取读计量数据命令
     * @param options 生成参数
     * @returns 读计量数据命令
     */
    readMeteringDataCMD(options?: Options): Uint8Array;
    /**
     * 获取读计量数据命令
     * @param options 生成参数
     * @returns 读计量数据命令
     */
    static readMeteringDataCMD(options: Options): Uint8Array;
    /**
     * 读计量数据返回内容解析
     * @param data 读计量数据从站返回数据
     * @param options 额外参数
     * @returns 读计量数据返回内容
     */
    resolveReadMeteringDataRes(data: Uint8Array, options?: Options): CJT188WaterMeteringData | CJT188GasMeteringData | CJT188HeatMeteringData;
    /**
     * 读计量数据返回内容解析
     * @param data 读计量数据从站返回数据
     * @param options 额外参数
     * @returns 读计量数据返回内容
     */
    static resolveReadMeteringDataRes(data: Uint8Array, options: Options): CJT188WaterMeteringData | CJT188GasMeteringData | CJT188HeatMeteringData;
    /**
     * 获取读仪表地址命令
     * @param options 生成参数
     * @returns 读仪表地址命令
     */
    readAddressCMD(options?: Options): Uint8Array;
    /**
     * 获取读仪表地址命令
     * @param options 生成参数
     * @returns 读仪表地址命令
     */
    static readAddressCMD(options: Options): Uint8Array;
    /**
     * 读仪表地址返回内容解析
     * @param data 读仪表地址从站返回数据
     * @param options 额外参数
     * @returns 读仪表地址返回内容
     */
    resolveReadAddressRes(data: Uint8Array, options?: Options): string;
    /**
     * 读仪表地址返回内容解析
     * @param data 读仪表地址从站返回数据
     * @param options 额外参数
     * @returns 读仪表地址返回内容
     */
    static resolveReadAddressRes(data: Uint8Array, options?: Options): string;
    /**
     * 获取读历史数据命令
     * @param options 生成参数
     * @returns 读历史数据命令
     */
    readHistoryDataCMD(month: HistoryMonth, options?: Options): Uint8Array;
    /**
     * 获取读历史数据命令
     * @param options 生成参数
     * @returns 读历史数据命令
     */
    static readHistoryDataCMD(month: HistoryMonth, options: Options): Uint8Array;
    /**
     * 获取开启阀门命令
     * @param options 生成参数
     * @returns 开启阀门命令
     */
    writeOpenValveCMD(options?: Options): Uint8Array;
    /**
     * 获取关闭阀门命令
     * @param options 生成参数
     * @returns 关闭阀门命令
     */
    writeCloseValveCMD(options?: Options): Uint8Array;
}
export {};
