import CramCodec from './_base.ts';
import type { Cursors } from './_base.ts';
import type { ByteArrayLengthEncoding, CramEncoding } from '../encoding.ts';
import type { CramFileBlock } from '../file.ts';
import type { DataType } from './dataSeriesTypes.ts';
import type CramSlice from '../slice/index.ts';
type CramCodecFactory = <TData extends DataType = DataType>(encodingData: CramEncoding, dataType: TData | 'ignore') => CramCodec<TData>;
export default class ByteArrayLengthCodec extends CramCodec<'byteArray', ByteArrayLengthEncoding['parameters']> {
    private instantiateCodec;
    private _lengthCodecCache?;
    private _dataCodecCache?;
    constructor(parameters: ByteArrayLengthEncoding['parameters'], dataType: 'byteArray', instantiateCodec: CramCodecFactory);
    decode(slice: CramSlice, coreDataBlock: CramFileBlock, blocksByContentId: Record<number, CramFileBlock>, cursors: Cursors): Uint8Array<ArrayBufferLike>;
    _getLengthCodec(): CramCodec<"int", unknown>;
    _getDataCodec(): CramCodec<"byte", unknown>;
}
export {};
