import Chunk from './chunk';
import IndexFile from './indexFile';
import { BaseOpts } from './util';
import { VirtualOffset } from './virtualOffset';
export interface IndexCovEntry {
    start: number;
    end: number;
    score: number;
}
export default class BAI extends IndexFile {
    setupP?: ReturnType<BAI['_parse']>;
    lineCount(refId: number, opts?: BaseOpts): Promise<number>;
    _parse(_opts?: BaseOpts): Promise<{
        bai: boolean;
        firstDataLine: VirtualOffset | undefined;
        maxBlockSize: number;
        indices: (refId: number) => {
            binIndex: Record<number, Chunk[]>;
            linearIndex: VirtualOffset[];
            stats: {
                lineCount: number;
            } | undefined;
        } | undefined;
        refCount: number;
    }>;
    indexCov(seqId: number, start?: number, end?: number, opts?: BaseOpts): Promise<IndexCovEntry[]>;
    blocksForRange(refId: number, min: number, max: number, opts?: BaseOpts): Promise<Chunk[]>;
    parse(opts?: BaseOpts): Promise<{
        bai: boolean;
        firstDataLine: VirtualOffset | undefined;
        maxBlockSize: number;
        indices: (refId: number) => {
            binIndex: Record<number, Chunk[]>;
            linearIndex: VirtualOffset[];
            stats: {
                lineCount: number;
            } | undefined;
        } | undefined;
        refCount: number;
    }>;
    hasRefSeq(seqId: number, opts?: BaseOpts): Promise<boolean>;
}
