import CramSlice from '../slice/index.ts';
import CramContainerCompressionScheme from './compressionScheme.ts';
import type CramFile from '../file.ts';
export default class CramContainer {
    file: CramFile;
    filePosition: number;
    private _headerResult?;
    private _compressionHeaderBlockResult?;
    private _compressionSchemeResult?;
    constructor(file: CramFile, filePosition: number);
    getHeader(): Promise<{
        _size: number;
        _endPosition: number;
        numLandmarks: number;
        landmarks: number[];
        crc32?: number | undefined;
        length: number;
        refSeqId: number;
        refSeqStart: number;
        alignmentSpan: number;
        numBlocks: number;
        numBases: number | undefined;
        recordCounter: number;
        numRecords: number;
    }>;
    private _fetchHeader;
    getCompressionHeaderBlock(): Promise<{
        parsedContent: {
            dataSeriesEncoding: import("../codecs/dataSeriesTypes.ts").DataSeriesEncodingMap;
            preservation: import("../sectionParsers.ts").CramPreservationMap;
            tagEncoding: Record<string, import("../encoding.ts").CramEncoding>;
        } & {
            _endPosition: number;
            _size: number;
        };
        compressionMethod: import("../sectionParsers.ts").CompressionMethod;
        contentType: "FILE_HEADER" | "COMPRESSION_HEADER" | "MAPPED_SLICE_HEADER" | "UNMAPPED_SLICE_HEADER" | "EXTERNAL_DATA" | "CORE_DATA";
        contentId: number;
        compressedSize: number;
        uncompressedSize: number;
        _endPosition: number;
        contentPosition: number;
        _size: number;
        content: Uint8Array;
        crc32?: number;
    } | null>;
    private _fetchCompressionHeaderBlock;
    getFirstBlock(): Promise<import("../file.ts").CramFileBlock>;
    getCompressionScheme(): Promise<CramContainerCompressionScheme | undefined>;
    private _fetchCompressionScheme;
    getSlice(slicePosition: number, sliceSize: number): CramSlice;
    _readContainerHeader(position: number): Promise<{
        _size: number;
        _endPosition: number;
        numLandmarks: number;
        landmarks: number[];
        crc32?: number | undefined;
        length: number;
        refSeqId: number;
        refSeqStart: number;
        alignmentSpan: number;
        numBlocks: number;
        numBases: number | undefined;
        recordCounter: number;
        numRecords: number;
    }>;
}
