import type React from 'react';
import type { ChainData } from '../shared/fetchChains';
import type { ColorBy, FilterBy } from '../shared/types';
import type { AnyConfigurationSchemaType } from '@jbrowse/core/configuration';
import type { Instance } from 'mobx-state-tree';
declare function stateModelFactory(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>>;
} & {
    type: import("mobx-state-tree").ISimpleType<"LinearReadArcsDisplay">;
    configuration: AnyConfigurationSchemaType;
    lineWidth: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
    jitter: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
    colorBySetting: import("mobx-state-tree").IType<ColorBy | undefined, ColorBy | undefined, ColorBy | undefined>;
    filterBySetting: import("mobx-state-tree").IType<FilterBy | undefined, FilterBy | undefined, FilterBy | undefined>;
    drawInter: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
    drawLongRange: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
}, {
    rendererTypeName: string;
    error: unknown;
    message: string | undefined;
} & {
    readonly RenderingComponent: React.FC<{
        model: {
            id: string;
            type: string;
            rpcDriverName: string | undefined;
        } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
            rendererTypeName: string;
            error: unknown;
            message: string | undefined;
        } & import("mobx-state-tree").IStateTreeNode<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>>;
        }, {
            rendererTypeName: string;
            error: unknown;
            message: string | undefined;
        }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
        onHorizontalScroll?: () => void;
        blockState?: Record<string, any>;
    }>;
    readonly DisplayBlurb: React.FC<{
        model: {
            id: string;
            type: string;
            rpcDriverName: string | undefined;
        } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
            rendererTypeName: string;
            error: unknown;
            message: string | undefined;
        } & import("mobx-state-tree").IStateTreeNode<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>>;
        }, {
            rendererTypeName: string;
            error: unknown;
            message: string | undefined;
        }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
    }> | null;
    readonly adapterConfig: any;
    readonly parentTrack: any;
    renderProps(): any;
    readonly rendererType: import("@jbrowse/core/pluggableElementTypes").RendererType;
    readonly DisplayMessageComponent: undefined | React.FC<any>;
    trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
    readonly viewMenuActions: import("@jbrowse/core/ui").MenuItem[];
    regionCannotBeRendered(): null;
} & {
    setMessage(arg?: string): void;
    setError(error?: unknown): void;
    setRpcDriverName(rpcDriverName: string): void;
    reload(): void;
} & {
    scrollTop: number;
} & {
    readonly height: number;
} & {
    setScrollTop(scrollTop: number): void;
    setHeight(displayHeight: number): number;
    resizeHeight(distance: number): number;
} & {
    featureDensityStatsP: undefined | Promise<import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats>;
    featureDensityStats: undefined | import("@jbrowse/core/data_adapters/BaseAdapter").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?: import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats): void;
    getFeatureDensityStats(): Promise<import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats>;
    setFeatureDensityStatsP(arg: any): void;
    setFeatureDensityStats(featureDensityStats?: import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats): void;
    clearFeatureDensityStats(): void;
} & {
    readonly regionTooLarge: boolean;
    readonly regionTooLargeReason: string;
} & {
    readonly statsReadyAndRegionNotTooLarge: boolean;
    regionCannotBeRenderedText(_region: import("@jbrowse/core/util").Region): "" | "Force load to see features";
    regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react/jsx-runtime").JSX.Element | null;
} & {
    loading: boolean;
    chainData: ChainData | undefined;
    lastDrawnOffsetPx: number | undefined;
    lastDrawnBpPerPx: number;
    ref: HTMLCanvasElement | null;
} & {
    readonly colorBy: any;
    readonly filterBy: any;
} & {
    setLastDrawnOffsetPx(n: number): void;
    setLastDrawnBpPerPx(n: number): void;
    setLoading(f: boolean): void;
    reload(): void;
    setRef(ref: HTMLCanvasElement | null): void;
    setColorScheme(colorBy: {
        type: string;
    }): void;
    setChainData(args: ChainData): void;
    setDrawInter(f: boolean): void;
    setDrawLongRange(f: boolean): void;
    setFilterBy(filter: FilterBy): void;
    setLineWidth(n: number): void;
    setJitter(n: number): void;
} & {
    readonly drawn: boolean;
    readonly lineWidthSetting: any;
    readonly jitterVal: number;
} & {
    renderProps(): any;
    trackMenuItems(): (import("@jbrowse/core/ui").MenuDivider | import("@jbrowse/core/ui").MenuSubHeader | import("@jbrowse/core/ui").NormalMenuItem | import("@jbrowse/core/ui").CheckboxMenuItem | import("@jbrowse/core/ui").RadioMenuItem | import("@jbrowse/core/ui").SubMenuItem | {
        label: string;
        icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
            muiName: string;
        };
        onClick: () => void;
        subMenu?: undefined;
        type?: undefined;
        checked?: undefined;
    } | {
        label: string;
        subMenu: {
            type: string;
            checked: boolean;
            label: string;
            onClick: () => void;
        }[];
        icon?: undefined;
        onClick?: undefined;
        type?: undefined;
        checked?: undefined;
    } | {
        label: string;
        type: string;
        checked: boolean;
        onClick: () => void;
        icon?: undefined;
        subMenu?: undefined;
    } | {
        label: string;
        icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
            muiName: string;
        };
        subMenu: {
            label: string;
            onClick: () => void;
        }[];
        onClick?: undefined;
        type?: undefined;
        checked?: undefined;
    })[];
} & {
    renderSvg(opts: {
        rasterizeLayers?: boolean;
    }): Promise<React.ReactNode>;
} & {
    afterAttach(): void;
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
export type LinearReadArcsDisplayStateModel = ReturnType<typeof stateModelFactory>;
export type LinearReadArcsDisplayModel = Instance<LinearReadArcsDisplayStateModel>;
export default stateModelFactory;
