import type { ColorBy, FilterBy } from '../shared/types';
import type PluginManager from '@jbrowse/core/PluginManager';
import type { AnyConfigurationSchemaType } from '@jbrowse/core/configuration';
declare function stateModelFactory(pluginManager: PluginManager, configSchema: AnyConfigurationSchemaType): import("mobx-state-tree").IModelType<{
    id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
    type: import("mobx-state-tree").ISimpleType<string>;
    rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
} & {
    heightPreConfig: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
} & {
    userBpPerPxLimit: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
    userByteSizeLimit: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
} & {
    blockState: import("mobx-state-tree").IMapType<import("mobx-state-tree").IModelType<{
        key: import("mobx-state-tree").ISimpleType<string>;
        region: import("mobx-state-tree").IType<import("@jbrowse/core/util").Region, import("@jbrowse/core/util").Region, import("@jbrowse/core/util").Region>;
        reloadFlag: import("mobx-state-tree").IType<number | undefined, number, number>;
        isLeftEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
        isRightEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
    }, {
        stopToken: string | undefined;
        filled: boolean;
        reactElement: React.ReactElement | undefined;
        features: Map<string, import("@jbrowse/core/util").Feature> | undefined;
        layout: any;
        status: string;
        error: unknown;
        message: string | undefined;
        maxHeightReached: boolean;
        ReactComponent: ({ model, }: {
            model: {
                error?: unknown;
                reload: () => void;
                message: React.ReactNode;
                filled?: boolean;
                status?: string;
                reactElement?: React.ReactElement;
            };
        }) => import("react/jsx-runtime").JSX.Element | undefined;
        renderProps: any;
    } & {
        doReload(): void;
        afterAttach(): void;
        setStatus(message: string): void;
        setLoading(newStopToken: string): void;
        setMessage(messageText: string): void;
        setRendered(props: import("@jbrowse/plugin-linear-genome-view/src/BaseLinearDisplay/models/serverSideRenderedBlock").RenderedProps | undefined): void;
        setError(error: unknown): void;
        reload(): void;
        beforeDestroy(): void;
    }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
    configuration: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
        maxFeatureScreenDensity: {
            type: string;
            description: string;
            defaultValue: number;
        };
        fetchSizeLimit: {
            type: string;
            defaultValue: number;
            description: string;
        };
        height: {
            type: string;
            defaultValue: number;
            description: string;
        };
        mouseover: {
            type: string;
            description: string;
            defaultValue: string;
            contextVariable: string[];
        };
        jexlFilters: {
            type: string;
            description: string;
            defaultValue: never[];
        };
    }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, "displayId">>;
} & {
    selectedRendering: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
    resolution: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<number>, [undefined]>;
    fill: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<boolean>>;
    minSize: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
    color: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
    posColor: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
    negColor: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
    summaryScoreMode: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
    rendererTypeNameState: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
    scale: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
    autoscale: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
    displayCrossHatches: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<boolean>>;
    constraints: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IModelType<{
        max: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
        min: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
    }, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>, [undefined]>;
    configuration: AnyConfigurationSchemaType;
} & {
    type: import("mobx-state-tree").ISimpleType<"LinearWiggleDisplay">;
    invertedSetting: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<boolean>>;
} & {
    type: import("mobx-state-tree").ISimpleType<"LinearSNPCoverageDisplay">;
    showInterbaseCounts: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<boolean>>;
    showInterbaseIndicators: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<boolean>>;
    showArcs: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<boolean>>;
    filterBySetting: import("mobx-state-tree").IType<FilterBy | undefined, FilterBy | undefined, FilterBy | undefined>;
    colorBySetting: import("mobx-state-tree").IType<ColorBy | undefined, ColorBy | undefined, ColorBy | undefined>;
    jexlFilters: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").ISimpleType<string>>, [undefined]>;
}, never, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
export type SNPCoverageDisplayModel = ReturnType<typeof stateModelFactory>;
export default stateModelFactory;
