import type Chunk from './chunk.ts'; import type VirtualOffset from './virtualOffset.ts'; import type { GenericFilehandle } from 'generic-filehandle2'; export interface Options { signal?: AbortSignal; } export interface IndexData { refNameToId: Record; refIdToName: string[]; metaChar: string | undefined; columnNumbers: { ref: number; start: number; end: number; }; coordinateType: string; format: string; indices: { binIndex: Record; stats?: { lineCount: number; }; linearIndex?: VirtualOffset[]; }[]; maxRefLength: number; skipLines?: number; maxBinNumber?: number; maxBlockSize: number; firstDataLine?: VirtualOffset; refCount?: number; csi?: boolean; csiVersion?: number; depth?: number; } export default abstract class IndexFile { filehandle: GenericFilehandle; private parseP?; constructor({ filehandle }: { filehandle: GenericFilehandle; }); abstract lineCount(refName: string, args: Options): Promise; protected abstract _parse(opts: Options): Promise; getMetadata(opts?: Options): Promise<{ refNameToId: Record; refIdToName: string[]; metaChar: string | undefined; columnNumbers: { ref: number; start: number; end: number; }; coordinateType: string; format: string; maxRefLength: number; skipLines?: number; maxBinNumber?: number; maxBlockSize: number; firstDataLine?: VirtualOffset; refCount?: number; csi?: boolean; csiVersion?: number; depth?: number; }>; abstract blocksForRange(refName: string, start: number, end: number, opts: Options): Promise; _findFirstData(currentFdl: VirtualOffset | undefined, virtualOffset: VirtualOffset): VirtualOffset; parse(opts?: Options): Promise; hasRefSeq(seqId: number, opts?: Options): Promise; _parseNameBytes(namesBytes: Uint8Array): { refNameToId: Record; refIdToName: string[]; }; }