import IntervalTree from '@flatten-js/interval-tree';
import VcfParser from '@gmod/vcf';
import { BaseFeatureDataAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
import type { BaseOptions } from '@jbrowse/core/data_adapters/BaseAdapter';
import type { Feature, Region } from '@jbrowse/core/util';
type StatusCallback = (arg: string) => void;
export default class VcfAdapter extends BaseFeatureDataAdapter {
    calculatedIntervalTreeMap: Record<string, IntervalTree>;
    vcfFeatures?: Promise<{
        header: string;
        parser: VcfParser;
        intervalTreeMap: Record<string, (sc?: StatusCallback) => IntervalTree>;
    }>;
    static capabilities: string[];
    getHeader(): Promise<string>;
    getMetadata(): Promise<any>;
    setupP(opts?: BaseOptions): Promise<{
        header: string;
        parser: VcfParser;
        intervalTreeMap: {
            [k: string]: (sc?: (arg: string) => void) => IntervalTree<any>;
        };
    }>;
    setup(): Promise<{
        header: string;
        parser: VcfParser;
        intervalTreeMap: Record<string, (sc?: StatusCallback) => IntervalTree>;
    }>;
    getRefNames(_?: BaseOptions): Promise<string[]>;
    getFeatures(region: Region, opts?: BaseOptions): import("rxjs").Observable<Feature>;
    getSources(): Promise<{
        name: string;
    }[]>;
    freeResources(): void;
}
export {};
