import type { SampleInfo, Source } from '../shared/types';
import type { AnyConfigurationSchemaType } from '@jbrowse/core/configuration';
import type { Feature } from '@jbrowse/core/util';
import type { Instance } from 'mobx-state-tree';
export default function MultiVariantBaseModelF(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, 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">>;
} & {
    type: import("mobx-state-tree").ISimpleType<"LinearBareDisplay">;
    configuration: AnyConfigurationSchemaType;
} & {
    type: import("mobx-state-tree").ISimpleType<"LinearVariantMatrixDisplay">;
    layout: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<Source[], Source[], Source[]>, [undefined]>;
    configuration: AnyConfigurationSchemaType;
    minorAlleleFrequencyFilter: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<number>, [undefined]>;
    showSidebarLabelsSetting: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
    renderingMode: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
    rowHeightSetting: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<number>, [undefined]>;
    autoHeight: 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;
} & {
    featureIdUnderMouse: undefined | string;
    contextMenuFeature: undefined | Feature;
} & {
    readonly DisplayMessageComponent: undefined | React.FC<any>;
    readonly blockType: "staticBlocks" | "dynamicBlocks";
    readonly blockDefinitions: import("@jbrowse/core/util/blockTypes").BlockSet;
} & {
    readonly renderDelay: number;
    readonly TooltipComponent: import("@jbrowse/core/util").AnyReactComponentType;
    readonly selectedFeatureId: string | undefined;
} & {
    readonly features: import("@jbrowse/core/util/compositeMap").default<string, Feature>;
    readonly featureUnderMouse: Feature | undefined;
    getFeatureOverlapping(blockKey: string, x: number, y: number): string | undefined;
    getFeatureByID(blockKey: string, id: string): [number, number, number, number] | undefined;
    searchFeatureByID(id: string): [number, number, number, number] | undefined;
} & {
    addBlock(key: string, block: import("@jbrowse/core/util/blockTypes").BaseBlock): void;
    deleteBlock(key: string): void;
    selectFeature(feature: Feature): void;
    navToFeature(feature: Feature): void;
    clearFeatureSelection(): void;
    setFeatureIdUnderMouse(feature?: string): void;
    setContextMenuFeature(feature?: Feature): void;
} & {
    reload(): Promise<void>;
} & {
    trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
    contextMenuItems(): import("@jbrowse/core/ui").MenuItem[];
    renderProps(): any;
} & {
    renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react/jsx-runtime").JSX.Element>;
    afterAttach(): void;
} & {
    readonly rendererConfig: {
        [x: string]: any;
    } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
        setSubschema(slotName: string, data: Record<string, unknown>): Record<string, unknown> | ({
            [x: string]: any;
        } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
            setSubschema(slotName: string, data: Record<string, unknown>): Record<string, unknown> | ({
                [x: string]: any;
            } & import("mobx-state-tree/dist/internal").NonEmptyObject & any & import("mobx-state-tree").IStateTreeNode<AnyConfigurationSchemaType>);
        } & import("mobx-state-tree").IStateTreeNode<AnyConfigurationSchemaType>);
    } & import("mobx-state-tree").IStateTreeNode<AnyConfigurationSchemaType>;
    readonly rendererTypeName: any;
} & {
    renderProps(): any;
} & {
    sourcesLoadingStopToken: string | undefined;
    featureUnderMouseVolatile: Feature | undefined;
    sourcesVolatile: Source[] | undefined;
    featuresVolatile: Feature[] | undefined;
    hasPhased: boolean;
    sampleInfo: undefined | Record<string, SampleInfo>;
    hoveredGenotype: string | undefined;
} & {
    setRowHeight(arg: number): void;
    setHoveredGenotype(arg: string): void;
    setFeatures(f: Feature[]): void;
    setLayout(layout: Source[]): void;
    clearLayout(): void;
    setSourcesLoading(str: string): void;
    setSources(sources: Source[]): void;
    setMafFilter(arg: number): void;
    setShowSidebarLabels(arg: boolean): void;
    setPhasedMode(arg: string): void;
    setAutoHeight(arg: boolean): void;
    setHasPhased(arg: boolean): void;
    setSampleInfo(arg: Record<string, SampleInfo>): void;
} & {
    readonly preSources: Source[] | undefined;
    readonly sourcesWithoutLayout: {
        label: string;
        id: string;
        baseUri?: string;
        name: string;
        color?: string;
        group?: string;
        HP?: number;
    }[] | undefined;
    readonly sources: {
        label: string;
        id: string;
        baseUri?: string;
        name: string;
        color?: string;
        group?: string;
        HP?: number;
    }[] | undefined;
} & {
    readonly rowHeight: number;
    adapterProps(): 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;
        };
        type: string;
        checked: boolean;
        onClick: () => void;
        subMenu?: undefined;
    } | {
        label: string;
        icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
            muiName: string;
        };
        subMenu: ({
            label: string;
            disabled: boolean;
            onClick: () => void;
            type?: undefined;
            checked?: undefined;
        } | {
            label: string;
            type: string;
            checked: boolean;
            onClick: () => void;
            disabled?: undefined;
        })[];
        type?: undefined;
        checked?: undefined;
        onClick?: undefined;
    } | {
        label: string;
        icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
            muiName: string;
        };
        subMenu: ({
            label: string;
            type: string;
            checked: boolean;
            onClick: () => void;
            disabled?: undefined;
        } | {
            label: string;
            disabled: boolean;
            checked: boolean;
            type: string;
            onClick: () => void;
        })[];
        type?: undefined;
        checked?: undefined;
        onClick?: undefined;
    } | {
        label: string;
        icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
            muiName: string;
        };
        subMenu: {
            label: string;
            onClick: () => void;
        }[];
        type?: undefined;
        checked?: undefined;
        onClick?: undefined;
    } | {
        label: string;
        icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
            muiName: string;
        };
        onClick: () => void;
        type?: undefined;
        checked?: undefined;
        subMenu?: undefined;
    })[];
} & {
    readonly canDisplayLabels: boolean;
    readonly totalHeight: number;
    readonly featuresReady: boolean;
} & {
    renderProps(): any;
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
export type MultiVariantBaseStateModel = ReturnType<typeof MultiVariantBaseModelF>;
export type MultiVariantBaseModel = Instance<MultiVariantBaseStateModel>;
