import TextSearchManager from '@jbrowse/core/TextSearch/TextSearchManager';
import RpcManager from '@jbrowse/core/rpc/RpcManager';
import type PluginManager from '@jbrowse/core/PluginManager';
import type { BaseAssemblyConfigSchema } from '@jbrowse/core/assemblyManager';
import type { IAnyType, Instance, SnapshotIn } from 'mobx-state-tree';
export declare function BaseRootModelFactory({ pluginManager, jbrowseModelType, sessionModelType, assemblyConfigSchema, }: {
    pluginManager: PluginManager;
    jbrowseModelType: IAnyType;
    sessionModelType: IAnyType;
    assemblyConfigSchema: BaseAssemblyConfigSchema;
}): import("mobx-state-tree").IModelType<{
    jbrowse: IAnyType;
    session: import("mobx-state-tree").IMaybe<IAnyType>;
    sessionPath: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
    assemblyManager: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IModelType<{
        assemblies: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IModelType<{
            configuration: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<IAnyType>>;
        }, {
            error: unknown;
            loadingP: Promise<void> | undefined;
            volatileRegions: import("@jbrowse/core/assemblyManager/assembly").BasicRegion[] | undefined;
            refNameAliases: {
                [x: string]: string;
            } | undefined;
            lowerCaseRefNameAliases: {
                [x: string]: string;
            } | undefined;
            cytobands: import("@jbrowse/core/util").Feature[] | undefined;
        } & {
            getConf(arg: string): any;
        } & {
            readonly initialized: boolean;
            readonly name: string;
            readonly regions: import("@jbrowse/core/assemblyManager/assembly").BasicRegion[] | undefined;
            readonly aliases: string[];
            readonly displayName: string | undefined;
            hasName(name: string): boolean;
            readonly allAliases: string[];
            readonly allRefNames: string[] | undefined;
            readonly lowerCaseRefNames: string[] | undefined;
            readonly allRefNamesWithLowerCase: string[] | undefined;
            readonly rpcManager: RpcManager;
            readonly refNameColors: string[];
        } & {
            readonly refNames: string[] | undefined;
        } & {
            getCanonicalRefName(refName: string): string | undefined;
            getRefNameColor(refName: string): string | undefined;
            isValidRefName(refName: string): boolean;
        } & {
            setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, cytobands, }: {
                regions: import("@jbrowse/core/util").Region[];
                refNameAliases: {
                    [x: string]: string;
                };
                lowerCaseRefNameAliases: {
                    [x: string]: string;
                };
                cytobands: import("@jbrowse/core/util").Feature[];
            }): void;
            setError(e: unknown): void;
            setRegions(regions: import("@jbrowse/core/util").Region[]): void;
            setRefNameAliases(aliases: {
                [x: string]: string;
            }, lowerCaseAliases: {
                [x: string]: string;
            }): void;
            setCytobands(cytobands: import("@jbrowse/core/util").Feature[]): void;
            setLoadingP(p?: Promise<void>): void;
            load(): Promise<void>;
            loadPre(): Promise<void>;
        } & {
            getAdapterMapEntry(adapterConf: {
                [x: string]: unknown;
            }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameMap>;
            getRefNameMapForAdapter(adapterConf: {
                [x: string]: unknown;
            }, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
                [x: string]: string;
            }>;
            getReverseRefNameMapForAdapter(adapterConf: {
                [x: string]: unknown;
            }, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
                [x: string]: string;
            }>;
        }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
    }, {
        readonly assemblyNameMap: Record<string, {
            configuration: any;
        } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
            error: unknown;
            loadingP: Promise<void> | undefined;
            volatileRegions: import("@jbrowse/core/assemblyManager/assembly").BasicRegion[] | undefined;
            refNameAliases: {
                [x: string]: string;
            } | undefined;
            lowerCaseRefNameAliases: {
                [x: string]: string;
            } | undefined;
            cytobands: import("@jbrowse/core/util").Feature[] | undefined;
        } & {
            getConf(arg: string): any;
        } & {
            readonly initialized: boolean;
            readonly name: string;
            readonly regions: import("@jbrowse/core/assemblyManager/assembly").BasicRegion[] | undefined;
            readonly aliases: string[];
            readonly displayName: string | undefined;
            hasName(name: string): boolean;
            readonly allAliases: string[];
            readonly allRefNames: string[] | undefined;
            readonly lowerCaseRefNames: string[] | undefined;
            readonly allRefNamesWithLowerCase: string[] | undefined;
            readonly rpcManager: RpcManager;
            readonly refNameColors: string[];
        } & {
            readonly refNames: string[] | undefined;
        } & {
            getCanonicalRefName(refName: string): string | undefined;
            getRefNameColor(refName: string): string | undefined;
            isValidRefName(refName: string): boolean;
        } & {
            setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, cytobands, }: {
                regions: import("@jbrowse/core/util").Region[];
                refNameAliases: {
                    [x: string]: string;
                };
                lowerCaseRefNameAliases: {
                    [x: string]: string;
                };
                cytobands: import("@jbrowse/core/util").Feature[];
            }): void;
            setError(e: unknown): void;
            setRegions(regions: import("@jbrowse/core/util").Region[]): void;
            setRefNameAliases(aliases: {
                [x: string]: string;
            }, lowerCaseAliases: {
                [x: string]: string;
            }): void;
            setCytobands(cytobands: import("@jbrowse/core/util").Feature[]): void;
            setLoadingP(p?: Promise<void>): void;
            load(): Promise<void>;
            loadPre(): Promise<void>;
        } & {
            getAdapterMapEntry(adapterConf: {
                [x: string]: unknown;
            }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameMap>;
            getRefNameMapForAdapter(adapterConf: {
                [x: string]: unknown;
            }, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
                [x: string]: string;
            }>;
            getReverseRefNameMapForAdapter(adapterConf: {
                [x: string]: unknown;
            }, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
                [x: string]: string;
            }>;
        } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
            configuration: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<IAnyType>>;
        }, {
            error: unknown;
            loadingP: Promise<void> | undefined;
            volatileRegions: import("@jbrowse/core/assemblyManager/assembly").BasicRegion[] | undefined;
            refNameAliases: {
                [x: string]: string;
            } | undefined;
            lowerCaseRefNameAliases: {
                [x: string]: string;
            } | undefined;
            cytobands: import("@jbrowse/core/util").Feature[] | undefined;
        } & {
            getConf(arg: string): any;
        } & {
            readonly initialized: boolean;
            readonly name: string;
            readonly regions: import("@jbrowse/core/assemblyManager/assembly").BasicRegion[] | undefined;
            readonly aliases: string[];
            readonly displayName: string | undefined;
            hasName(name: string): boolean;
            readonly allAliases: string[];
            readonly allRefNames: string[] | undefined;
            readonly lowerCaseRefNames: string[] | undefined;
            readonly allRefNamesWithLowerCase: string[] | undefined;
            readonly rpcManager: RpcManager;
            readonly refNameColors: string[];
        } & {
            readonly refNames: string[] | undefined;
        } & {
            getCanonicalRefName(refName: string): string | undefined;
            getRefNameColor(refName: string): string | undefined;
            isValidRefName(refName: string): boolean;
        } & {
            setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, cytobands, }: {
                regions: import("@jbrowse/core/util").Region[];
                refNameAliases: {
                    [x: string]: string;
                };
                lowerCaseRefNameAliases: {
                    [x: string]: string;
                };
                cytobands: import("@jbrowse/core/util").Feature[];
            }): void;
            setError(e: unknown): void;
            setRegions(regions: import("@jbrowse/core/util").Region[]): void;
            setRefNameAliases(aliases: {
                [x: string]: string;
            }, lowerCaseAliases: {
                [x: string]: string;
            }): void;
            setCytobands(cytobands: import("@jbrowse/core/util").Feature[]): void;
            setLoadingP(p?: Promise<void>): void;
            load(): Promise<void>;
            loadPre(): Promise<void>;
        } & {
            getAdapterMapEntry(adapterConf: {
                [x: string]: unknown;
            }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameMap>;
            getRefNameMapForAdapter(adapterConf: {
                [x: string]: unknown;
            }, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
                [x: string]: string;
            }>;
            getReverseRefNameMapForAdapter(adapterConf: {
                [x: string]: unknown;
            }, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
                [x: string]: string;
            }>;
        }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>>;
    } & {
        get(asmName: string): ({
            configuration: any;
        } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
            error: unknown;
            loadingP: Promise<void> | undefined;
            volatileRegions: import("@jbrowse/core/assemblyManager/assembly").BasicRegion[] | undefined;
            refNameAliases: {
                [x: string]: string;
            } | undefined;
            lowerCaseRefNameAliases: {
                [x: string]: string;
            } | undefined;
            cytobands: import("@jbrowse/core/util").Feature[] | undefined;
        } & {
            getConf(arg: string): any;
        } & {
            readonly initialized: boolean;
            readonly name: string;
            readonly regions: import("@jbrowse/core/assemblyManager/assembly").BasicRegion[] | undefined;
            readonly aliases: string[];
            readonly displayName: string | undefined;
            hasName(name: string): boolean;
            readonly allAliases: string[];
            readonly allRefNames: string[] | undefined;
            readonly lowerCaseRefNames: string[] | undefined;
            readonly allRefNamesWithLowerCase: string[] | undefined;
            readonly rpcManager: RpcManager;
            readonly refNameColors: string[];
        } & {
            readonly refNames: string[] | undefined;
        } & {
            getCanonicalRefName(refName: string): string | undefined;
            getRefNameColor(refName: string): string | undefined;
            isValidRefName(refName: string): boolean;
        } & {
            setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, cytobands, }: {
                regions: import("@jbrowse/core/util").Region[];
                refNameAliases: {
                    [x: string]: string;
                };
                lowerCaseRefNameAliases: {
                    [x: string]: string;
                };
                cytobands: import("@jbrowse/core/util").Feature[];
            }): void;
            setError(e: unknown): void;
            setRegions(regions: import("@jbrowse/core/util").Region[]): void;
            setRefNameAliases(aliases: {
                [x: string]: string;
            }, lowerCaseAliases: {
                [x: string]: string;
            }): void;
            setCytobands(cytobands: import("@jbrowse/core/util").Feature[]): void;
            setLoadingP(p?: Promise<void>): void;
            load(): Promise<void>;
            loadPre(): Promise<void>;
        } & {
            getAdapterMapEntry(adapterConf: {
                [x: string]: unknown;
            }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameMap>;
            getRefNameMapForAdapter(adapterConf: {
                [x: string]: unknown;
            }, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
                [x: string]: string;
            }>;
            getReverseRefNameMapForAdapter(adapterConf: {
                [x: string]: unknown;
            }, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
                [x: string]: string;
            }>;
        } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
            configuration: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<IAnyType>>;
        }, {
            error: unknown;
            loadingP: Promise<void> | undefined;
            volatileRegions: import("@jbrowse/core/assemblyManager/assembly").BasicRegion[] | undefined;
            refNameAliases: {
                [x: string]: string;
            } | undefined;
            lowerCaseRefNameAliases: {
                [x: string]: string;
            } | undefined;
            cytobands: import("@jbrowse/core/util").Feature[] | undefined;
        } & {
            getConf(arg: string): any;
        } & {
            readonly initialized: boolean;
            readonly name: string;
            readonly regions: import("@jbrowse/core/assemblyManager/assembly").BasicRegion[] | undefined;
            readonly aliases: string[];
            readonly displayName: string | undefined;
            hasName(name: string): boolean;
            readonly allAliases: string[];
            readonly allRefNames: string[] | undefined;
            readonly lowerCaseRefNames: string[] | undefined;
            readonly allRefNamesWithLowerCase: string[] | undefined;
            readonly rpcManager: RpcManager;
            readonly refNameColors: string[];
        } & {
            readonly refNames: string[] | undefined;
        } & {
            getCanonicalRefName(refName: string): string | undefined;
            getRefNameColor(refName: string): string | undefined;
            isValidRefName(refName: string): boolean;
        } & {
            setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, cytobands, }: {
                regions: import("@jbrowse/core/util").Region[];
                refNameAliases: {
                    [x: string]: string;
                };
                lowerCaseRefNameAliases: {
                    [x: string]: string;
                };
                cytobands: import("@jbrowse/core/util").Feature[];
            }): void;
            setError(e: unknown): void;
            setRegions(regions: import("@jbrowse/core/util").Region[]): void;
            setRefNameAliases(aliases: {
                [x: string]: string;
            }, lowerCaseAliases: {
                [x: string]: string;
            }): void;
            setCytobands(cytobands: import("@jbrowse/core/util").Feature[]): void;
            setLoadingP(p?: Promise<void>): void;
            load(): Promise<void>;
            loadPre(): Promise<void>;
        } & {
            getAdapterMapEntry(adapterConf: {
                [x: string]: unknown;
            }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameMap>;
            getRefNameMapForAdapter(adapterConf: {
                [x: string]: unknown;
            }, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
                [x: string]: string;
            }>;
            getReverseRefNameMapForAdapter(adapterConf: {
                [x: string]: unknown;
            }, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
                [x: string]: string;
            }>;
        }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>) | undefined;
        readonly assemblyNamesList: any[];
        readonly assemblyList: import("@jbrowse/core/configuration").AnyConfigurationModel[];
        readonly rpcManager: RpcManager;
    } & {
        waitForAssembly(assemblyName: string): Promise<({
            configuration: any;
        } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
            error: unknown;
            loadingP: Promise<void> | undefined;
            volatileRegions: import("@jbrowse/core/assemblyManager/assembly").BasicRegion[] | undefined;
            refNameAliases: {
                [x: string]: string;
            } | undefined;
            lowerCaseRefNameAliases: {
                [x: string]: string;
            } | undefined;
            cytobands: import("@jbrowse/core/util").Feature[] | undefined;
        } & {
            getConf(arg: string): any;
        } & {
            readonly initialized: boolean;
            readonly name: string;
            readonly regions: import("@jbrowse/core/assemblyManager/assembly").BasicRegion[] | undefined;
            readonly aliases: string[];
            readonly displayName: string | undefined;
            hasName(name: string): boolean;
            readonly allAliases: string[];
            readonly allRefNames: string[] | undefined;
            readonly lowerCaseRefNames: string[] | undefined;
            readonly allRefNamesWithLowerCase: string[] | undefined;
            readonly rpcManager: RpcManager;
            readonly refNameColors: string[];
        } & {
            readonly refNames: string[] | undefined;
        } & {
            getCanonicalRefName(refName: string): string | undefined;
            getRefNameColor(refName: string): string | undefined;
            isValidRefName(refName: string): boolean;
        } & {
            setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, cytobands, }: {
                regions: import("@jbrowse/core/util").Region[];
                refNameAliases: {
                    [x: string]: string;
                };
                lowerCaseRefNameAliases: {
                    [x: string]: string;
                };
                cytobands: import("@jbrowse/core/util").Feature[];
            }): void;
            setError(e: unknown): void;
            setRegions(regions: import("@jbrowse/core/util").Region[]): void;
            setRefNameAliases(aliases: {
                [x: string]: string;
            }, lowerCaseAliases: {
                [x: string]: string;
            }): void;
            setCytobands(cytobands: import("@jbrowse/core/util").Feature[]): void;
            setLoadingP(p?: Promise<void>): void;
            load(): Promise<void>;
            loadPre(): Promise<void>;
        } & {
            getAdapterMapEntry(adapterConf: {
                [x: string]: unknown;
            }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameMap>;
            getRefNameMapForAdapter(adapterConf: {
                [x: string]: unknown;
            }, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
                [x: string]: string;
            }>;
            getReverseRefNameMapForAdapter(adapterConf: {
                [x: string]: unknown;
            }, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
                [x: string]: string;
            }>;
        } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
            configuration: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<IAnyType>>;
        }, {
            error: unknown;
            loadingP: Promise<void> | undefined;
            volatileRegions: import("@jbrowse/core/assemblyManager/assembly").BasicRegion[] | undefined;
            refNameAliases: {
                [x: string]: string;
            } | undefined;
            lowerCaseRefNameAliases: {
                [x: string]: string;
            } | undefined;
            cytobands: import("@jbrowse/core/util").Feature[] | undefined;
        } & {
            getConf(arg: string): any;
        } & {
            readonly initialized: boolean;
            readonly name: string;
            readonly regions: import("@jbrowse/core/assemblyManager/assembly").BasicRegion[] | undefined;
            readonly aliases: string[];
            readonly displayName: string | undefined;
            hasName(name: string): boolean;
            readonly allAliases: string[];
            readonly allRefNames: string[] | undefined;
            readonly lowerCaseRefNames: string[] | undefined;
            readonly allRefNamesWithLowerCase: string[] | undefined;
            readonly rpcManager: RpcManager;
            readonly refNameColors: string[];
        } & {
            readonly refNames: string[] | undefined;
        } & {
            getCanonicalRefName(refName: string): string | undefined;
            getRefNameColor(refName: string): string | undefined;
            isValidRefName(refName: string): boolean;
        } & {
            setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, cytobands, }: {
                regions: import("@jbrowse/core/util").Region[];
                refNameAliases: {
                    [x: string]: string;
                };
                lowerCaseRefNameAliases: {
                    [x: string]: string;
                };
                cytobands: import("@jbrowse/core/util").Feature[];
            }): void;
            setError(e: unknown): void;
            setRegions(regions: import("@jbrowse/core/util").Region[]): void;
            setRefNameAliases(aliases: {
                [x: string]: string;
            }, lowerCaseAliases: {
                [x: string]: string;
            }): void;
            setCytobands(cytobands: import("@jbrowse/core/util").Feature[]): void;
            setLoadingP(p?: Promise<void>): void;
            load(): Promise<void>;
            loadPre(): Promise<void>;
        } & {
            getAdapterMapEntry(adapterConf: {
                [x: string]: unknown;
            }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameMap>;
            getRefNameMapForAdapter(adapterConf: {
                [x: string]: unknown;
            }, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
                [x: string]: string;
            }>;
            getReverseRefNameMapForAdapter(adapterConf: {
                [x: string]: unknown;
            }, opts: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<{
                [x: string]: string;
            }>;
        }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>) | undefined>;
        getRefNameMapForAdapter(adapterConf: {
            [x: string]: unknown;
        }, assemblyName: string | undefined, opts: {
            stopToken?: string;
            sessionId: string;
        }): Promise<{
            [x: string]: string;
        } | undefined>;
        getReverseRefNameMapForAdapter(adapterConf: {
            [x: string]: unknown;
        }, assemblyName: string | undefined, opts: {
            stopToken?: string;
            sessionId: string;
        }): Promise<{
            [x: string]: string;
        } | undefined>;
        isValidRefName(refName: string, assemblyName: string): boolean;
    } & {
        afterAttach(): void;
        removeAssembly(asm: import("@jbrowse/core/assemblyManager/assembly").Assembly): void;
        addAssembly(configuration: any): void;
    }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>, [undefined]>;
}, {
    rpcManager: RpcManager;
    adminMode: boolean;
    error: unknown;
    textSearchManager: TextSearchManager;
    pluginManager: PluginManager;
} & {
    setError(error: unknown): void;
    setSession(sessionSnapshot?: SnapshotIn<IAnyType>): void;
    setDefaultSession(): void;
    setSessionPath(path: string): void;
    renameCurrentSession(newName: string): void;
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
export type BaseRootModelType = ReturnType<typeof BaseRootModelFactory>;
export type BaseRootModel = Instance<BaseRootModelType>;
export declare function isRootModel(thing: unknown): thing is BaseRootModelType;
