import { TupleOf } from '../typescript.ts'; import { DataSeriesEncodingMap } from './codecs/dataSeriesTypes.ts'; import { CramEncoding } from './encoding.ts'; export declare function cramFileDefinition(): { parser: (b: Uint8Array, _startOffset?: number) => { value: { magic: string; majorVersion: number; minorVersion: number; fileId: string; }; offset: number; }; maxLength: number; }; export declare function cramBlockHeader(): { parser: (buffer: Uint8Array, _startOffset?: number) => { offset: number; value: { uncompressedSize: number; compressedSize: number; contentId: number; contentType: "FILE_HEADER" | "COMPRESSION_HEADER" | "MAPPED_SLICE_HEADER" | "UNMAPPED_SLICE_HEADER" | "EXTERNAL_DATA" | "CORE_DATA"; compressionMethod: CompressionMethod; }; }; maxLength: number; }; export declare function cramBlockCrc32(): { parser: (buffer: Uint8Array, offset: number) => { offset: number; value: { crc32: number; }; }; maxLength: number; }; export type CramTagDictionary = string[][]; export declare function cramTagDictionary(): { parser: (buffer: Uint8Array, offset: number) => { value: { size: number; ents: string[][]; }; offset: number; }; }; export interface CramPreservationMap { MI: boolean; UI: boolean; PI: boolean; RN: boolean; AP: boolean; RR: boolean | undefined; SM: [number, number, number, number, number]; TD: CramTagDictionary; } export declare function cramPreservationMap(): { parser: (buffer: Uint8Array, offset: number) => { value: { mapSize: number; mapCount: number; ents: ({ key: string; value: boolean; } | { key: string; value: number[]; } | { key: string; value: string[][]; })[]; }; offset: number; }; }; export interface MappedSliceHeader { refSeqId: number; refSeqStart: number; refSeqSpan: number; numRecords: number; recordCounter: number; numBlocks: number; numContentIds: number; contentIds: number[]; refBaseBlockId: number; md5?: TupleOf; } export interface UnmappedSliceHeader { numRecords: number; recordCounter: number; numBlocks: number; numContentIds: number; contentIds: number[]; md5?: TupleOf; } export declare function isMappedSliceHeader(header: unknown): header is MappedSliceHeader; interface Value { codecId: number; parametersBytes: number; parameters: Record; } export type CompressionMethod = 'raw' | 'gzip' | 'bzip2' | 'lzma' | 'rans' | 'rans4x16' | 'arith' | 'fqzcomp' | 'tok3'; export interface BlockHeader { compressionMethod: CompressionMethod; contentType: 'FILE_HEADER' | 'COMPRESSION_HEADER' | 'MAPPED_SLICE_HEADER' | 'UNMAPPED_SLICE_HEADER' | 'EXTERNAL_DATA' | 'CORE_DATA'; contentId: number; compressedSize: number; uncompressedSize: number; } export interface CramCompressionHeader { preservation: CramPreservationMap; dataSeriesEncoding: DataSeriesEncodingMap; tagEncoding: Record; _size: number; _endPosition: number; } export declare function getSectionParsers(majorVersion: number): { cramFileDefinition: { parser: (b: Uint8Array, _startOffset?: number) => { value: { magic: string; majorVersion: number; minorVersion: number; fileId: string; }; offset: number; }; maxLength: number; }; cramBlockHeader: { parser: (buffer: Uint8Array, _startOffset?: number) => { offset: number; value: { uncompressedSize: number; compressedSize: number; contentId: number; contentType: "FILE_HEADER" | "COMPRESSION_HEADER" | "MAPPED_SLICE_HEADER" | "UNMAPPED_SLICE_HEADER" | "EXTERNAL_DATA" | "CORE_DATA"; compressionMethod: CompressionMethod; }; }; maxLength: number; }; cramBlockCrc32: { parser: (buffer: Uint8Array, offset: number) => { offset: number; value: { crc32: number; }; }; maxLength: number; }; cramDataSeriesEncodingMap: { parser: (buffer: Uint8Array, offset: number) => { value: { mapSize: number; ents: { key: string; value: Value; }[]; mapCount: number; }; offset: number; }; }; cramTagEncodingMap: { parser: (buffer: Uint8Array, offset: number) => { value: { mapSize: number; ents: { key: string; value: Value; }[]; mapCount: number; }; offset: number; }; }; cramCompressionHeader: { parser: (buffer: Uint8Array, offset: number) => { value: { dataSeriesEncoding: DataSeriesEncodingMap; preservation: CramPreservationMap; tagEncoding: Record; }; offset: number; }; }; cramEncoding: { parser: (buffer: Uint8Array, offset: number) => { value: Value; offset: number; }; }; cramUnmappedSliceHeader: { parser: (buffer: Uint8Array, offset: number) => { value: { 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; }; offset: number; }; maxLength: (numContentIds: number) => number; }; cramMappedSliceHeader: { parser: (buffer: Uint8Array, offset: number) => { value: { md5: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number] | undefined; numBlocks: number; numRecords: number; numContentIds: number; refSeqSpan: number; refSeqId: number; refSeqStart: number; recordCounter: number; refBaseBlockId: number; contentIds: number[]; }; offset: number; }; maxLength: (numContentIds: number) => number; }; cramContainerHeader1: { maxLength: number; parser: (buffer: Uint8Array, offset: number) => { value: { length: number; refSeqId: number; refSeqStart: number; alignmentSpan: number; numBlocks: number; numLandmarks: number; numBases: number | undefined; recordCounter: number; numRecords: number; }; offset: number; }; }; cramContainerHeader2: { parser: (buffer: Uint8Array, offset: number) => { value: { numLandmarks: number; landmarks: number[]; crc32?: number | undefined; }; offset: number; }; maxLength: (numLandmarks: number) => number; }; }; export {};