export interface ConversionRule {
    name: string;
    startRegister: number;
    dataType: 'int16' | 'uint16' | 'int32' | 'uint32' | 'float32' | 'scaled' | 'bitfield' | 'bcd';
    byteOrder: 'big_endian' | 'little_endian';
    wordSwap?: boolean;
    scaleFactor?: number;
    offset?: number;
    decimalPlaces?: number;
    bitMask?: number;
    bitPosition?: number;
    bitLength?: number;
    validation?: {
        enabled: boolean;
        min?: number;
        max?: number;
        allowNaN?: boolean;
    };
    unitConversion?: {
        from: string;
        to: string;
    };
}
export interface ConversionResult {
    name: string;
    value: any;
    originalValue?: any;
    dataType: string;
    valid: boolean;
    error?: string;
    metadata?: {
        scaleFactor?: number;
        offset?: number;
        byteOrder: string;
        unitConversion?: string;
    };
}
export declare class DataConversionUtils {
    static convertData(registers: number[], rule: ConversionRule): ConversionResult;
    private static getRequiredRegisters;
    private static convertInt16;
    private static convertUint16;
    private static convertInt32;
    private static convertUint32;
    private static convertFloat32;
    private static convertScaled;
    private static convertBitfield;
    private static convertBCD;
    private static applyUnitConversion;
    private static validateValue;
    static convertMultiple(registers: number[], rules: ConversionRule[]): ConversionResult[];
}
