import { RcsbFv3DCssConfig } from './RcsbFv3DComponent';
import { RcsbFvStructureConfigInterface } from "../RcsbFvStructure/RcsbFvStructure";
import { PluginContext } from "molstar/lib/mol-plugin/context";
import { StructureViewerInterface } from "../RcsbFvStructure/StructureViewerInterface";
import { StructureViewerBehaviourObserverInterface } from "../RcsbFvStructure/StructureViewerBehaviourInterface";
import { RcsbFvCustomSequenceInterface } from "../RcsbFvSequence/RcsbFvCustomSequence";
export interface RcsbFv3DCustomAbstractInterface<R, L, S> {
    elementId: string;
    cssConfig?: RcsbFv3DCssConfig;
    sequenceConfig: RcsbFvCustomSequenceInterface<R, L>;
    structureConfig: RcsbFvStructureConfigInterface<R, S>;
    structureViewer: StructureViewerInterface<R, L, S>;
    structureViewerBehaviourObserver: StructureViewerBehaviourObserverInterface<R, L>;
}
export declare abstract class RcsbFv3DCustomAbstract<R, L, S> {
    private readonly elementId;
    private reactRoot;
    private readonly structureConfig;
    private readonly structureViewer;
    private readonly structureViewerBehaviourObserver;
    private readonly sequenceConfig;
    private readonly ctxManager;
    private fullScreenFlag;
    private overflowStyle;
    private readonly cssConfig;
    protected constructor(config: RcsbFv3DCustomAbstractInterface<R, L, S>);
    render(): void;
    unmount(removeHtmlElement?: boolean, unmountCallback?: () => {}): void;
    updateConfig(config: {
        structurePanelConfig?: Partial<RcsbFvStructureConfigInterface<R, S>>;
        sequencePanelConfig?: Partial<RcsbFvCustomSequenceInterface<R, L>>;
    }): void;
    pluginCall(f: (plugin: PluginContext) => void): void;
    private fullScreen;
}
