import type { FeatureDensityStats } from '@jbrowse/core/data_adapters/BaseAdapter';
import type { Region } from '@jbrowse/core/util/types';
export default function FeatureDensityMixin(): import("mobx-state-tree").IModelType<{
    userBpPerPxLimit: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
    userByteSizeLimit: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
}, {
    featureDensityStatsP: undefined | Promise<FeatureDensityStats>;
    featureDensityStats: undefined | FeatureDensityStats;
    currStatsBpPerPx: number;
} & {
    readonly currentBytesRequested: number;
    readonly currentFeatureScreenDensity: number;
    readonly maxFeatureScreenDensity: any;
    readonly featureDensityStatsReady: boolean;
    readonly maxAllowableBytes: number;
} & {
    afterAttach(): void;
} & {
    setCurrStatsBpPerPx(n: number): void;
    setFeatureDensityStatsLimit(stats?: FeatureDensityStats): void;
    getFeatureDensityStats(): Promise<FeatureDensityStats>;
    setFeatureDensityStatsP(arg: any): void;
    setFeatureDensityStats(featureDensityStats?: FeatureDensityStats): void;
    clearFeatureDensityStats(): void;
} & {
    readonly regionTooLarge: boolean;
    readonly regionTooLargeReason: string;
} & {
    readonly statsReadyAndRegionNotTooLarge: boolean;
    regionCannotBeRenderedText(_region: Region): "" | "Force load to see features";
    regionCannotBeRendered(_region: Region): import("react/jsx-runtime").JSX.Element | null;
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
