import type { LazyExoticComponent } from 'react';
import * as React from 'react';
import { alpha, createTheme, useTheme } from '@mui/material';
import * as MUIStyles from '@mui/material/styles';
import * as MUIUtils from '@mui/material/utils';
import { useGridApiContext } from '@mui/x-data-grid';
import * as mobx from 'mobx';
import * as mxreact from 'mobx-react';
import * as mst from 'mobx-state-tree';
import * as ReactJSXRuntime from 'react/jsx-runtime';
import * as ReactDom from 'react-dom';
import * as ReactDomClient from 'react-dom/client';
import Plugin from '../Plugin';
import * as Configuration from '../configuration';
import * as BaseAdapterExports from '../data_adapters/BaseAdapter';
import * as pluggableElementTypes from '../pluggableElementTypes';
import * as pluggableElementTypeModels from '../pluggableElementTypes/models';
import * as BoxRendererType from '../pluggableElementTypes/renderers/BoxRendererType';
import * as FeatureRendererType from '../pluggableElementTypes/renderers/FeatureRendererType';
import * as RendererType from '../pluggableElementTypes/renderers/RendererType';
import * as ServerSideRendererType from '../pluggableElementTypes/renderers/ServerSideRendererType';
import * as coreUi from '../ui';
import * as coreUtil from '../util';
import * as coreColor from '../util/color';
import * as coreIo from '../util/io';
import * as coreLayouts from '../util/layouts';
import * as coreMstReflection from '../util/mst-reflection';
import * as rxjs from '../util/rxjs';
import * as trackUtils from '../util/tracks';
import * as mstTypes from '../util/types/mst';
declare const libs: {
    '@material-ui/lab/ToggleButton': LazyExoticComponent<import("@mui/material").ExtendButtonBase<import("@mui/material").ToggleButtonTypeMap<{}, "button">>>;
    '@material-ui/lab/ToggleButtonGroup': LazyExoticComponent<typeof import("@mui/material").ToggleButtonGroup>;
    '@material-ui/lab/Autocomplete': LazyExoticComponent<typeof import("@mui/material").Autocomplete>;
    '@material-ui/lab/Alert': LazyExoticComponent<typeof import("@mui/material").Alert>;
    '@material-ui/lab': {
        Alert: LazyExoticComponent<typeof import("@mui/material").Alert>;
        Autocomplete: LazyExoticComponent<typeof import("@mui/material").Autocomplete>;
        ToggleButton: LazyExoticComponent<import("@mui/material").ExtendButtonBase<import("@mui/material").ToggleButtonTypeMap<{}, "button">>>;
        ToggleButtonGroup: LazyExoticComponent<typeof import("@mui/material").ToggleButtonGroup>;
    };
    '@jbrowse/core/Plugin': typeof Plugin;
    '@jbrowse/core/pluggableElementTypes': typeof pluggableElementTypes;
    '@jbrowse/core/pluggableElementTypes/ViewType': typeof pluggableElementTypes.ViewType;
    '@jbrowse/core/pluggableElementTypes/AdapterType': typeof pluggableElementTypes.AdapterType;
    '@jbrowse/core/pluggableElementTypes/DisplayType': typeof pluggableElementTypes.DisplayType;
    '@jbrowse/core/pluggableElementTypes/TrackType': typeof pluggableElementTypes.TrackType;
    '@jbrowse/core/pluggableElementTypes/WidgetType': typeof pluggableElementTypes.WidgetType;
    '@jbrowse/core/pluggableElementTypes/models': typeof pluggableElementTypeModels;
    '@jbrowse/core/pluggableElementTypes/renderers/ServerSideRendererType': typeof ServerSideRendererType;
    '@jbrowse/core/pluggableElementTypes/renderers/CircularChordRendererType': typeof pluggableElementTypes.CircularChordRendererType;
    '@jbrowse/core/pluggableElementTypes/renderers/BoxRendererType': typeof BoxRendererType;
    '@jbrowse/core/pluggableElementTypes/renderers/FeatureRendererType': typeof FeatureRendererType;
    '@jbrowse/core/pluggableElementTypes/renderers/RendererType': typeof RendererType;
    '@jbrowse/core/configuration': typeof Configuration;
    '@jbrowse/core/util/types/mst': typeof mstTypes;
    '@jbrowse/core/ui': typeof coreUi;
    '@jbrowse/core/util': typeof coreUtil;
    '@jbrowse/core/util/color': typeof coreColor;
    '@jbrowse/core/util/layouts': typeof coreLayouts;
    '@jbrowse/core/util/tracks': typeof trackUtils;
    '@jbrowse/core/util/Base1DViewModel': mst.IModelType<{
        id: mst.IOptionalIType<mst.ISimpleType<string>, [undefined]>;
        displayedRegions: mst.IOptionalIType<mst.IType<coreUtil.Region[], coreUtil.Region[], coreUtil.Region[]>, [undefined]>;
        bpPerPx: mst.IType<number | undefined, number, number>;
        offsetPx: mst.IType<number | undefined, number, number>;
        interRegionPaddingWidth: mst.IOptionalIType<mst.ISimpleType<number>, [undefined]>;
        minimumBlockWidth: mst.IOptionalIType<mst.ISimpleType<number>, [undefined]>;
    }, {
        features: undefined | coreUtil.Feature[];
        volatileWidth: number;
    } & {
        setDisplayedRegions(regions: coreUtil.Region[]): void;
        setBpPerPx(val: number): void;
        setVolatileWidth(width: number): void;
    } & {
        readonly width: number;
        readonly assemblyNames: string[];
        readonly displayedRegionsTotalPx: number;
        readonly maxOffset: number;
        readonly minOffset: number;
        readonly totalBp: number;
    } & {
        readonly dynamicBlocks: import("../util/blockTypes").BlockSet;
        readonly staticBlocks: import("../util/blockTypes").BlockSet;
        readonly currBp: number;
    } & {
        pxToBp(px: number): {
            coord: number;
            index: number;
            refName: string;
            oob: boolean;
            assemblyName: string;
            offset: number;
            start: number;
            end: number;
            reversed?: boolean;
        };
        bpToPx({ refName, coord, regionNumber, }: {
            refName: string;
            coord: number;
            regionNumber?: number;
        }): number | undefined;
    } & {
        setFeatures(features: coreUtil.Feature[]): void;
        showAllRegions(): void;
        zoomOut(): void;
        zoomIn(): void;
        zoomTo(bpPerPx: number, offset?: number): number;
        scrollTo(offsetPx: number): number;
        centerAt(coord: number, refName: string | undefined, regionNumber: number): void;
        scroll(distance: number): number;
    } & {
        moveTo(start?: import("../util/Base1DUtils").BpOffset, end?: import("../util/Base1DUtils").BpOffset): void;
    }, mst._NotCustomized, mst._NotCustomized>;
    '@jbrowse/core/util/io': typeof coreIo;
    '@jbrowse/core/util/mst-reflection': typeof coreMstReflection;
    '@jbrowse/core/util/rxjs': typeof rxjs;
    '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail': {
        Attributes: React.ForwardRefExoticComponent<Omit<any, "ref"> & React.RefAttributes<unknown>>;
        FeatureDetails: React.ForwardRefExoticComponent<Omit<any, "ref"> & React.RefAttributes<unknown>>;
        BaseCard: React.ForwardRefExoticComponent<Omit<any, "ref"> & React.RefAttributes<unknown>>;
        BaseCoreDetails: LazyExoticComponent<typeof import("../BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails").default>;
        BaseAttributes: LazyExoticComponent<typeof import("../BaseFeatureWidget/BaseFeatureDetail/BaseAttributes").default>;
    };
    '@jbrowse/core/data_adapters/BaseAdapter': typeof BaseAdapterExports;
    mobx: typeof mobx;
    'mobx-state-tree': typeof mst;
    react: typeof React;
    'react/jsx-runtime': typeof ReactJSXRuntime;
    'react-dom': typeof ReactDom;
    'react-dom/client': typeof ReactDomClient;
    'mobx-react': typeof mxreact;
    '@mui/x-data-grid': {
        useGridApiContext: typeof useGridApiContext;
        useGridApiRef: <Api extends import("@mui/x-data-grid").GridApiCommon = import("@mui/x-data-grid/internals").GridApiCommunity>() => import("@mui/x-internals/types").RefObject<Api>;
        useGridRootProps: () => import("@mui/x-data-grid/internals").DataGridProcessedProps;
    };
    '@mui/material/utils': typeof MUIUtils;
    '@material-ui/core/utils': typeof MUIUtils;
    'tss-react/mui': {
        makeStyles: <Params = void, RuleNameSubsetReferencableInNestedSelectors extends string = never>(params?: {
            name?: string | Record<string, unknown> | undefined;
            uniqId?: string | undefined;
        } | undefined) => <RuleName extends string>(cssObjectByRuleNameOrGetCssObjectByRuleName: Record<RuleName, import("tss-react").CSSObject> | ((theme: import("@mui/material/styles").Theme, params: Params, classes: Record<RuleNameSubsetReferencableInNestedSelectors, string>) => Record<RuleNameSubsetReferencableInNestedSelectors | RuleName, import("tss-react").CSSObject>)) => (params: Params, muiStyleOverridesParams?: {
            props: Record<string, unknown>;
            ownerState?: Record<string, unknown> | undefined;
        } | undefined) => {
            classes: Record<RuleName, string>;
            theme: import("@mui/material/styles").Theme;
            css: import("tss-react").Css;
            cx: import("tss-react").Cx;
        };
    };
    '@material-ui/core': {
        useTheme: typeof useTheme;
        alpha: typeof alpha;
        makeStyles: (args: any) => () => Record<string, string>;
    };
    '@mui/material': {
        alpha: typeof alpha;
        useTheme: typeof useTheme;
        createTheme: typeof createTheme;
    };
    '@mui/material/styles': {
        MUIStyles: typeof MUIStyles;
        makeStyles: (args: any) => () => Record<string, string>;
    };
    '@material-ui/core/styles': {
        MUIStyles: typeof MUIStyles;
        makeStyles: (args: any) => () => Record<string, string>;
    };
};
export default libs;
