import { ArithmeticModel, IntegerCompressor, LASpoint10, LASrgba } from './index.js';
import { U64I64F64 } from '../util.js';
import type { Reader } from '../../index.js';
import type { ArithmeticDecoder, ItemReader } from './index.js';
/** Streaming Median 5 */
export declare class StreamingMedian5 {
    values: number[];
    high: boolean;
    /** Runs the initialization */
    constructor();
    /** initialize the first value set */
    init(): void;
    /**
     * add a new value
     * @param v - the new value to add
     */
    add(v: number): void;
    /** @returns the median value */
    get(): number;
}
/** LAZ Point10 2.0 Reader */
export declare class LAZPoint10v2Reader implements ItemReader {
    readonly dec: ArithmeticDecoder;
    lastItem: LASpoint10;
    lastIncr: number;
    icDx: IntegerCompressor;
    icDy: IntegerCompressor;
    icZ: IntegerCompressor;
    icIntensity: IntegerCompressor;
    lastIntensity: Uint16Array;
    lastXDiffMedian5: StreamingMedian5[];
    lastYDiffMedian5: StreamingMedian5[];
    lastHeight: Int32Array;
    icPointSourceID: IntegerCompressor;
    mChangedValues: ArithmeticModel;
    mBitByte: (ArithmeticModel | undefined)[];
    mClassification: (ArithmeticModel | undefined)[];
    mUserData: (ArithmeticModel | undefined)[];
    mScanAngleRank: [ArithmeticModel, ArithmeticModel];
    /** @param dec - the arithmetic decoder */
    constructor(dec: ArithmeticDecoder);
    /**
     * Read in chunk sizes
     * @param _reader - the full data store
     */
    chunkSizes(_reader: Reader): void;
    /** @param item - the first raw item needs to be injected for future reads */
    init(item: DataView): void;
    /** @param item - the current item to be read into */
    read(item: DataView): void;
}
/** Parse LAZ GPS Time 1.1v2 */
export declare class LAZgpstime11v2Reader implements ItemReader {
    readonly dec: ArithmeticDecoder;
    mGpstimeMulti: ArithmeticModel;
    mGpstime0diff: ArithmeticModel;
    icGpstime: IntegerCompressor;
    last: number;
    next: number;
    lastGpstime: [U64I64F64, U64I64F64, U64I64F64, U64I64F64];
    lastGpstimeDiff: [number, number, number, number];
    multiExtremeCounter: [number, number, number, number];
    /** @param dec - the arithmetic decoder */
    constructor(dec: ArithmeticDecoder);
    /**
     * Read in chunk sizes
     * @param _reader - the full data store
     */
    chunkSizes(_reader: Reader): void;
    /** @param item - the first raw item needs to be injected for future reads */
    init(item: DataView): void;
    /** @param item - the current item to be read into */
    read(item: DataView): void;
}
/** Parse LAZ RGB 1.2v2 */
export declare class LAZrgb12v2Reader implements ItemReader {
    readonly dec: ArithmeticDecoder;
    lastItem: LASrgba;
    mByteUsed: ArithmeticModel;
    mRgbDiff0: ArithmeticModel;
    mRgbDiff1: ArithmeticModel;
    mRgbDiff2: ArithmeticModel;
    mRgbDiff3: ArithmeticModel;
    mRgbDiff4: ArithmeticModel;
    mRgbDiff5: ArithmeticModel;
    /** @param dec - the arithmetic decoder */
    constructor(dec: ArithmeticDecoder);
    /**
     * Read in chunk sizes
     * @param _reader - the full data store
     */
    chunkSizes(_reader: Reader): void;
    /** @param item - the first raw item needs to be injected for future reads */
    init(item: DataView): void;
    /**
     * read in the next item
     * @param item - the next item
     */
    read(item: DataView): void;
}
/** LAZ byte reader V2 */
export declare class LAZbyte10v2Reader implements ItemReader {
    readonly dec: ArithmeticDecoder;
    readonly number: number;
    mByte: ArithmeticModel[];
    lastItem: Uint8Array;
    /**
     * @param dec - the arithmetic decoder
     * @param number - the number of bytes to read
     */
    constructor(dec: ArithmeticDecoder, number: number);
    /**
     * Read in chunk sizes
     * @param _reader - the full data store
     */
    chunkSizes(_reader: Reader): void;
    /** @param item - the first raw item needs to be injected for future reads */
    init(item: DataView): void;
    /** @param item - the current item to be read into */
    read(item: DataView): void;
}
//# sourceMappingURL=v2.d.ts.map