import type PluginManager from '@jbrowse/core/PluginManager';
import type { AnyConfiguration, AnyConfigurationModel } from '@jbrowse/core/configuration';
import type { IAnyStateTreeNode, Instance } from 'mobx-state-tree';
export declare function SessionTracksManagerSessionMixin(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>;
} & {
    sessionTracks: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IAnyModelType>;
}, {
    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;
} & {
    getReferring(object: IAnyStateTreeNode): import("./ReferenceManagement").ReferringNode[];
} & {
    removeReferring(referring: import("./ReferenceManagement").ReferringNode[], track: import("@jbrowse/core/pluggableElementTypes").BaseTrackConfig, callbacks: ((arg: string) => void)[], dereferenceTypeCount: Record<string, number>): void;
} & {
    readonly tracks: AnyConfigurationModel[];
} & {
    addTrackConf(trackConf: AnyConfiguration): any;
    deleteTrackConf(trackConf: AnyConfigurationModel): any;
} & {
    readonly tracks: AnyConfigurationModel[];
} & {
    addTrackConf(trackConf: AnyConfiguration): any;
    deleteTrackConf(trackConf: AnyConfigurationModel): any;
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
export type SessionWithSessionTracksType = ReturnType<typeof SessionTracksManagerSessionMixin>;
export type SessionWithSessionTracks = Instance<SessionWithSessionTracksType>;
export declare function isSessionWithSessionTracks(thing: IAnyStateTreeNode): thing is SessionWithSessionTracks;
