import IntervalTree from '@flatten-js/interval-tree';
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 BedGraphAdapter extends BaseFeatureDataAdapter {
    protected bedFeatures?: Promise<{
        header: string;
        features: Record<string, string[]>;
        columnNames: string[];
    }>;
    protected intervalTrees: Record<string, Promise<IntervalTree | undefined> | undefined>;
    getNames(): Promise<string[] | undefined>;
    private loadFeatureIntervalTreeHelper;
    getRefNames(opts?: BaseOptions): Promise<string[]>;
    private loadDataP;
    loadFeatureIntervalTree(refName: string): Promise<IntervalTree<any> | undefined>;
    loadData(opts?: BaseOptions): Promise<{
        header: string;
        features: Record<string, string[]>;
        columnNames: string[];
    }>;
    getFeatures(query: Region, _opts?: BaseOptions): import("rxjs").Observable<Feature>;
    freeResources(): void;
}
