import CramCodec from './_base.ts';
import type { Cursor, Cursors } from './_base.ts';
import type { HuffmanEncoding } from '../encoding.ts';
import type { CramFileBlock } from '../file.ts';
import type CramSlice from '../slice/index.ts';
export default class HuffmanIntCodec extends CramCodec<'byte' | 'int', HuffmanEncoding['parameters']> {
    private codes;
    private codeBook;
    private sortedCodes;
    private valuesByIndex;
    private bitLengthsByIndex;
    private bitCodeToIndex;
    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;
}
