import { TypedArray } from '../interfaces';
import { BitPix } from '../interfaces';
export interface ILinearTransformer {
    transform(data: TypedArray, scale: number, zero: number): TypedArray;
    transformBack(data: TypedArray, scale: number, zero: number): TypedArray;
}
export declare class Uint8LinearTransformer implements ILinearTransformer {
    transform(data: TypedArray, scale: number, zero: number): TypedArray;
    transformBack(data: TypedArray, scale: number, zero: number): TypedArray;
    private transformBackToInt8;
    private transformBackToUint8;
}
export declare class Int16LinearTransformer implements ILinearTransformer {
    transform(data: TypedArray, scale: number, zero: number): TypedArray;
    transformBack(data: TypedArray, scale: number, zero: number): TypedArray;
    private transformBackToUint16;
    private transformBackToInt16;
}
export declare class Int32LinearTransformer implements ILinearTransformer {
    transform(data: TypedArray, scale: number, zero: number): TypedArray;
    transformBack(data: TypedArray, scale: number, zero: number): TypedArray;
    private transformBackToUint32;
    private transformBackToInt32;
}
export declare class Float32LinearTransformer implements ILinearTransformer {
    transform(data: TypedArray, scale: number, zero: number): TypedArray;
    transformBack(data: TypedArray, scale: number, zero: number): TypedArray;
}
export declare class Float64LinearTransformer implements ILinearTransformer {
    transform(data: TypedArray, scale: number, zero: number): TypedArray;
    transformBack(data: TypedArray, scale: number, zero: number): TypedArray;
}
export declare let LinearTransformers: {
    registeredTransformers: {
        Uint8: Uint8LinearTransformer;
        Int16: Int16LinearTransformer;
        Int32: Int32LinearTransformer;
        Float32: Float32LinearTransformer;
        Float64: Float64LinearTransformer;
    };
    getTransformerFor: (b: BitPix) => ILinearTransformer;
};
