import Plugin from '@jbrowse/core/Plugin';
import type PluginManager from '@jbrowse/core/PluginManager';
export default class LinearGenomeViewPlugin extends Plugin {
    name: string;
    exports: {
        BaseLinearDisplayComponent: (props: {
            model: import("./BaseLinearDisplay").BaseLinearDisplayModel;
            children?: React.ReactNode;
        }) => import("react/jsx-runtime").JSX.Element;
        BaseLinearDisplay: 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("./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">>;
        }, {
            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 | import("@jbrowse/core/util").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, import("@jbrowse/core/util").Feature>;
            readonly featureUnderMouse: import("@jbrowse/core/util").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: import("@jbrowse/core/util").Feature): void;
            navToFeature(feature: import("@jbrowse/core/util").Feature): void;
            clearFeatureSelection(): void;
            setFeatureIdUnderMouse(feature?: string): void;
            setContextMenuFeature(feature?: import("@jbrowse/core/util").Feature): void;
        } & {
            reload(): Promise<void>;
        } & {
            trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
            contextMenuItems(): import("@jbrowse/core/ui").MenuItem[];
            renderProps(): any;
        } & {
            renderSvg(opts: import("./BaseLinearDisplay").ExportSvgDisplayOptions): Promise<import("react/jsx-runtime").JSX.Element>;
            afterAttach(): void;
        }, import("mobx-state-tree").ModelCreationType<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
            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("./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: string;
            id: string;
            configuration: import("mobx-state-tree").ModelSnapshotType<Record<string, any>>;
            rpcDriverName: string | undefined;
            heightPreConfig: number | undefined;
            userBpPerPxLimit: number | undefined;
            userByteSizeLimit: number | undefined;
        }>;
        baseLinearDisplayConfigSchema: 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">>;
        SearchBox: ({ model, showHelp, }: {
            showHelp?: boolean;
            model: import("./LinearGenomeView").LinearGenomeViewModel;
        }) => import("react/jsx-runtime").JSX.Element;
        ZoomControls: ({ model, }: {
            model: import("./LinearGenomeView").LinearGenomeViewModel;
        }) => import("react/jsx-runtime").JSX.Element;
        LinearGenomeView: ({ model, }: {
            model: import("./LinearGenomeView").LinearGenomeViewModel;
        }) => import("react/jsx-runtime").JSX.Element;
    };
    configurationSchema: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
        trackLabels: {
            type: string;
            defaultValue: string;
            model: import("mobx-state-tree").ISimpleType<string>;
        };
    }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
    install(pluginManager: PluginManager): void;
    configure(pluginManager: PluginManager): void;
}
export type { BaseLinearDisplayModel, BlockModel, ExportSvgDisplayOptions, } from './BaseLinearDisplay';
export { configSchemaFactory as linearBareDisplayConfigSchemaFactory, stateModelFactory as linearBareDisplayStateModelFactory, } from './LinearBareDisplay';
export { BaseLinearDisplay, BaseLinearDisplayComponent, BlockMsg, FeatureDensityMixin, TooLargeMessage, TrackHeightMixin, baseLinearDisplayConfigSchema, } from './BaseLinearDisplay';
export { type LinearGenomeViewModel, type LinearGenomeViewStateModel, RefNameAutocomplete, SearchBox, } from './LinearGenomeView';
export { SVGRuler, SVGTracks, renderToSvg, } from './LinearGenomeView/svgcomponents/SVGLinearGenomeView';
export { totalHeight } from './LinearGenomeView/svgcomponents/util';
export { configSchema as linearBasicDisplayConfigSchemaFactory, modelFactory as linearBasicDisplayModelFactory, } from './LinearBasicDisplay';
