import { type Observable } from 'rxjs';
import { BaseAdapter } from './BaseAdapter.ts';
import type { BaseOptions } from './BaseOptions.ts';
import type { Feature } from '../../util/simpleFeature.ts';
import type { AugmentedRegion as Region } from '../../util/types/index.ts';
export declare abstract class BaseFeatureDataAdapter extends BaseAdapter {
    abstract getRefNames(opts?: BaseOptions): Promise<string[]>;
    abstract getFeatures(region: Region, opts?: BaseOptions): Observable<Feature>;
    getHeader(_opts?: BaseOptions): Promise<unknown>;
    getMetadata(_opts?: BaseOptions): Promise<unknown>;
    getFeaturesInRegion(region: Region, opts?: BaseOptions): Observable<Feature>;
    getFeaturesInMultipleRegions(regions: Region[], opts?: BaseOptions): Observable<Feature>;
    hasDataForRefName(refName: string, opts?: BaseOptions): Promise<boolean>;
    getRegionQuantitativeStats(region: Region, opts?: BaseOptions): Promise<import("../../util/stats.ts").RectifiedQuantitativeStats>;
    getMultiRegionQuantitativeStats(regions?: Region[], opts?: BaseOptions): Promise<import("../../util/stats.ts").RectifiedQuantitativeStats>;
    getRegionFeatureDensityStats(region: Region, opts?: BaseOptions): Promise<import("./types.ts").FeatureDensityStats>;
    getMultiRegionFeatureDensityStats(regions: Region[], opts?: BaseOptions): Promise<import("./types.ts").FeatureDensityStats>;
    getSources(regions: Region[]): Promise<{
        name: string;
        color?: string;
        [key: string]: unknown;
    }[]>;
    getExportData(_regions: Region[], _formatType: string, _opts?: BaseOptions): Promise<string | undefined>;
}
