import CramContainer from '../container';
import { CramFileBlock } from '../file';
import CramRecord from '../record';
import { MappedSliceHeader, UnmappedSliceHeader } from '../sectionParsers';
export type SliceHeader = CramFileBlock & {
    parsedContent: MappedSliceHeader | UnmappedSliceHeader;
};
export default class CramSlice {
    container: CramContainer;
    containerPosition: number;
    sliceSize: number;
    private file;
    constructor(container: CramContainer, containerPosition: number, sliceSize: number);
    getHeader(): Promise<{
        parsedContent: {
            recordCounter: number;
            md5: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number] | undefined;
            contentIds: number[];
            numContentIds: number;
            numBlocks: number;
            numRecords: number;
        } & {
            _endPosition: number;
            _size: number;
        };
        compressionMethod: import("../sectionParsers").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;
    }>;
    getBlocks(): Promise<CramFileBlock[]>;
    getCoreDataBlock(): Promise<CramFileBlock>;
    _getBlocksContentIdIndex(): Promise<Record<number, CramFileBlock>>;
    getBlockByContentId(id: number): Promise<CramFileBlock | undefined>;
    getReferenceRegion(): Promise<{
        seq: string;
        start: number;
        end: number;
        span: number;
    } | undefined>;
    getAllRecords(): Promise<CramRecord[]>;
    _fetchRecords(): Promise<CramRecord[]>;
    getRecords(filterFunction: (r: CramRecord) => boolean): Promise<CramRecord[]>;
}
