import type PluginManager from '@jbrowse/core/PluginManager';
import type { IBaseViewModel } from '@jbrowse/core/pluggableElementTypes';
import type { IBaseViewModelWithDisplayedRegions } from '@jbrowse/core/pluggableElementTypes/models/BaseViewModel';
import type { Region } from '@jbrowse/core/util';
import type { IAnyStateTreeNode, Instance } from 'mobx-state-tree';
export declare function MultipleViewsSessionMixin(pluginManager: PluginManager): import("mobx-state-tree").IModelType<{
    id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
    name: import("mobx-state-tree").ISimpleType<string>;
    margin: import("mobx-state-tree").IType<number | undefined, number, number>;
} & {
    drawerPosition: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
    drawerWidth: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<number>, [undefined]>;
    widgets: import("mobx-state-tree").IMapType<import("mobx-state-tree").IAnyType>;
    activeWidgets: import("mobx-state-tree").IMapType<import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<import("mobx-state-tree").IAnyType>>>;
    minimized: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
} & {
    views: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IAnyType>;
    stickyViewHeaders: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
}, {
    selection: unknown;
    hovered: unknown;
} & {
    readonly root: import("mobx-state-tree").TypeOrStateTreeNodeToStateTreeNode<ROOT_MODEL_TYPE>;
} & {
    readonly jbrowse: any;
    readonly rpcManager: import("@jbrowse/core/rpc/RpcManager").default;
    readonly configuration: {
        [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<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>);
        } & import("mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>);
    } & import("mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>;
    readonly adminMode: boolean;
    readonly textSearchManager: import("@jbrowse/core/util").TextSearchManager;
} & {
    readonly assemblies: Instance<import("@jbrowse/core/assemblyManager").BaseAssemblyConfigSchema>[];
} & {
    setSelection(thing: unknown): void;
    clearSelection(): void;
    setHovered(thing: unknown): void;
} & {
    readonly visibleWidget: any;
} & {
    setDrawerPosition(arg: string): void;
    updateDrawerWidth(drawerWidth: number): number;
    resizeDrawer(distance: number): number;
    addWidget(typeName: string, id: string, initialState?: {}, conf?: unknown): any;
    showWidget(widget: any): void;
    hasWidget(widget: any): boolean;
    hideWidget(widget: any): void;
    minimizeWidgetDrawer(): void;
    showWidgetDrawer(): void;
    hideAllWidgets(): void;
    editConfiguration(configuration: import("@jbrowse/core/configuration").AnyConfigurationModel): void;
    afterAttach(): void;
} & {
    moveViewDown(id: string): void;
    moveViewUp(id: string): void;
    moveViewToTop(id: string): void;
    moveViewToBottom(id: string): void;
    addView(typeName: string, initialState?: {}): any;
    removeView(view: IBaseViewModel): void;
    addLinearGenomeViewOfAssembly(assemblyName: string, initialState?: {}): any;
    addViewOfAssembly(viewType: string, assemblyName: string, initialState?: Record<string, unknown>): any;
    addViewFromAnotherView(viewType: string, otherView: IBaseViewModelWithDisplayedRegions, initialState?: {
        displayedRegions?: Region[];
    }): any;
    setStickyViewHeaders(sticky: boolean): void;
    afterAttach(): void;
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
export type SessionWithMultipleViewsType = ReturnType<typeof MultipleViewsSessionMixin>;
export type SessionWithMultipleViews = Instance<SessionWithMultipleViewsType>;
export declare function isSessionWithMultipleViews(session: IAnyStateTreeNode): session is SessionWithMultipleViews;
