import type PluginManager from '@jbrowse/core/PluginManager';
import type { BaseTrackConfig } from '@jbrowse/core/pluggableElementTypes';
import type { IAnyStateTreeNode, Instance } from 'mobx-state-tree';
export interface ReferringNode {
    node: IAnyStateTreeNode;
    key: string;
}
export declare function ReferenceManagementSessionMixin(_pluginManager: PluginManager): import("mobx-state-tree").IModelType<{}, {
    getReferring(object: IAnyStateTreeNode): ReferringNode[];
} & {
    removeReferring(referring: ReferringNode[], track: BaseTrackConfig, callbacks: ((arg: string) => void)[], dereferenceTypeCount: Record<string, number>): void;
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
export type SessionWithReferenceManagementType = ReturnType<typeof ReferenceManagementSessionMixin>;
export type SessionWithReferenceManagement = Instance<SessionWithReferenceManagementType>;
export declare function isSessionWithReferenceManagement(thing: IAnyStateTreeNode): thing is SessionWithReferenceManagement;
