import IntervalTree from '@flatten-js/interval-tree';
import BED from '@gmod/bed';
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';
export default class BedAdapter extends BaseFeatureDataAdapter {
    protected bedFeatures?: Promise<{
        header: string;
        features: Record<string, string[]>;
        parser: BED;
        columnNames: string[];
        scoreColumn: string;
        colRef: number;
        colStart: number;
        colEnd: number;
    }>;
    protected intervalTrees: Record<string, Promise<IntervalTree | undefined> | undefined>;
    static capabilities: string[];
    private loadDataP;
    loadData(opts?: BaseOptions): Promise<{
        header: string;
        features: Record<string, string[]>;
        parser: BED;
        columnNames: string[];
        scoreColumn: string;
        colRef: number;
        colStart: number;
        colEnd: number;
    }>;
    getRefNames(opts?: BaseOptions): Promise<string[]>;
    getHeader(opts?: BaseOptions): Promise<string>;
    getNames(): Promise<string[] | undefined>;
    private loadFeatureIntervalTreeHelper;
    loadFeatureIntervalTree(refName: string): Promise<IntervalTree<any> | undefined>;
    getFeatures(query: Region, opts?: BaseOptions): import("rxjs").Observable<Feature>;
    freeResources(): void;
}
