import type { BaseRootModelType } from '../RootModel/BaseRootModel';
import type PluginManager from '@jbrowse/core/PluginManager';
import type { BaseAssemblyConfigSchema } from '@jbrowse/core/assemblyManager';
import type { AnyConfigurationSchemaType } from '@jbrowse/core/configuration';
import type { IAnyStateTreeNode, Instance } from 'mobx-state-tree';
export declare function BaseSessionModel<ROOT_MODEL_TYPE extends BaseRootModelType, JB_CONFIG_SCHEMA extends AnyConfigurationSchemaType>(_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>;
}, {
    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: Instance<JB_CONFIG_SCHEMA>;
    readonly adminMode: boolean;
    readonly textSearchManager: import("@jbrowse/core/util").TextSearchManager;
} & {
    readonly assemblies: Instance<BaseAssemblyConfigSchema>[];
} & {
    setSelection(thing: unknown): void;
    clearSelection(): void;
    setHovered(thing: unknown): void;
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
export type BaseSessionType = ReturnType<typeof BaseSessionModel>;
export type BaseSession = Instance<BaseSessionType>;
export declare function isBaseSession(thing: IAnyStateTreeNode): thing is BaseSession;
export declare function isSession(thing: unknown): thing is BaseSession;
