import CramCodec, { Cursor, Cursors } from './_base';
import { HuffmanEncoding } from '../encoding';
import { CramFileBlock } from '../file';
import CramSlice from '../slice';
export default class HuffmanIntCodec extends CramCodec<'byte' | 'int', HuffmanEncoding['parameters']> {
    private codes;
    private codeBook;
    private sortedCodes;
    private sortedValuesByBitCode;
    private sortedBitCodes;
    private sortedBitLengthsByBitCode;
    private bitCodeToValue;
    constructor(parameters: HuffmanEncoding['parameters'], dataType: 'byte' | 'int');
    buildCodeBook(): void;
    buildCodes(): void;
    buildCaches(): void;
    decode(slice: CramSlice, coreDataBlock: CramFileBlock, blocksByContentId: Record<number, CramFileBlock>, cursors: Cursors): number;
    _decodeZeroLengthCode(): number;
    _decode(slice: CramSlice, coreDataBlock: CramFileBlock, coreCursor: Cursor): number;
}
