import { ViewerCallbackManagerInterface, ViewerModelMapManagerInterface } from "../../StructureViewerInterface";
import { PluginContext } from "molstar/lib/mol-plugin/context";
import { Viewer } from "@rcsb/rcsb-molstar/build/src/viewer";
import { Subscription } from "rxjs";
import { DataContainer, DataContainerReader } from "../../../Utils/DataContainer";
import { RcsbFvStateInterface } from "../../../RcsbFvState/RcsbFvStateInterface";
type ModelMapType = Omit<ViewerModelMapManagerInterface<unknown, unknown>, 'add' | 'delete'>;
export declare class MolstarCallbackManager implements ViewerCallbackManagerInterface {
    private readonly viewer;
    private readonly stateManager;
    private readonly loadingFlag;
    private readonly modelMapManager;
    private readonly innerSelectionFlag;
    private readonly innerReprChangeFlag;
    private addSubs;
    private removeSubs;
    private clearSubs;
    private hoverSubs;
    private modelChangeSubs;
    private reprChangeSubs;
    constructor(config: {
        viewer: Viewer;
        stateManager: RcsbFvStateInterface;
        loadingFlag: DataContainerReader<boolean>;
        modelMapManager: ModelMapType;
        innerSelectionFlag: DataContainer<boolean>;
        innerReprChangeFlag: DataContainer<boolean>;
    });
    subscribeRepresentationChange(): Subscription;
    subscribeHover(): Subscription;
    subscribeSelection(): Subscription;
    pluginCall(f: (plugin: PluginContext) => void): void;
    subscribeModelChange(): Subscription;
    modelChange(): void;
    unsubscribe(): void;
    private updateStateManager;
}
export {};
