import Chunk from './chunk';
import IndexFile from './indexFile';
import { BaseOpts } from './util';
import { VirtualOffset } from './virtualOffset';
export default class CSI extends IndexFile {
    private maxBinNumber;
    private depth;
    private minShift;
    setupP?: ReturnType<CSI['_parse']>;
    lineCount(refId: number, opts?: BaseOpts): Promise<number>;
    indexCov(): Promise<never[]>;
    parseAuxData(bytes: Uint8Array, offset: number): {
        refNameToId: Record<string, number>;
        refIdToName: string[];
        columnNumbers: {
            ref: number;
            start: number;
            end: number;
        };
        coordinateType: string;
        metaValue: number;
        metaChar: string;
        skipLines: number;
        format: string;
        formatFlags: number;
    };
    _parse(opts: {
        signal?: AbortSignal;
    }): Promise<{
        refNameToId?: Record<string, number> | undefined;
        refIdToName?: string[] | undefined;
        columnNumbers?: {
            ref: number;
            start: number;
            end: number;
        } | undefined;
        coordinateType?: string | undefined;
        metaValue?: number | undefined;
        metaChar?: string | undefined;
        skipLines?: number | undefined;
        format?: string | undefined;
        formatFlags?: number | undefined;
        csiVersion: number;
        firstDataLine: VirtualOffset | undefined;
        indices: (refId: number) => {
            binIndex: Record<string, Chunk[]>;
            stats: {
                lineCount: number;
            } | undefined;
        } | undefined;
        refCount: number;
        csi: boolean;
        maxBlockSize: number;
    }>;
    blocksForRange(refId: number, min: number, max: number, opts?: BaseOpts): Promise<Chunk[]>;
    /**
     * calculate the list of bins that may overlap with region [beg,end)
     * (zero-based half-open)
     */
    reg2bins(beg: number, end: number): (readonly [number, number])[];
    parse(opts?: BaseOpts): Promise<{
        refNameToId?: Record<string, number> | undefined;
        refIdToName?: string[] | undefined;
        columnNumbers?: {
            ref: number;
            start: number;
            end: number;
        } | undefined;
        coordinateType?: string | undefined;
        metaValue?: number | undefined;
        metaChar?: string | undefined;
        skipLines?: number | undefined;
        format?: string | undefined;
        formatFlags?: number | undefined;
        csiVersion: number;
        firstDataLine: VirtualOffset | undefined;
        indices: (refId: number) => {
            binIndex: Record<string, Chunk[]>;
            stats: {
                lineCount: number;
            } | undefined;
        } | undefined;
        refCount: number;
        csi: boolean;
        maxBlockSize: number;
    }>;
    hasRefSeq(seqId: number, opts?: BaseOpts): Promise<boolean>;
}
