@rcsb/rcsb-saguaro-3d
Version:
RCSB Molstar/Saguaro Web App
38 lines (37 loc) • 2.09 kB
TypeScript
import { DataContainer } from "../../../Utils/DataContainer";
import { RcsbFvAdditionalConfig, RcsbFvModulePublicInterface } from "@rcsb/rcsb-saguaro-app/lib/RcsbFvWeb/RcsbFvModule/RcsbFvModuleInterface";
import { OperatorInfo } from "../../../RcsbFvStructure/StructureViewerInterface";
import { RcsbFvStateInterface } from "../../../RcsbFvState/RcsbFvStateInterface";
import { RcsbFvBoardConfigInterface } from "@rcsb/rcsb-saguaro/lib/RcsbFv/RcsbFvConfig/RcsbFvConfigInterface";
export interface PfvManagerFactoryConfigInterface<U> {
rcsbFvDivId: string;
rcsbFvContainer: DataContainer<RcsbFvModulePublicInterface>;
stateManager: RcsbFvStateInterface;
boardConfigContainer: DataContainer<Partial<RcsbFvBoardConfigInterface>>;
pfvChangeCallback(context: U): Promise<void>;
additionalConfig: (RcsbFvAdditionalConfig & {
operatorChangeCallback?: (operatorInfo: OperatorInfo) => void;
}) | undefined;
}
export interface PfvManagerFactoryInterface<T, U> {
getPfvManager(config: T & PfvManagerFactoryConfigInterface<U>): PfvManagerInterface;
}
export interface BuildPfvInterface {
defaultAsymId?: string;
defaultOperatorName?: string;
}
export interface PfvManagerInterface {
create(config?: BuildPfvInterface): Promise<RcsbFvModulePublicInterface | undefined>;
}
export declare abstract class AbstractPfvManager<T, U> implements PfvManagerInterface {
protected readonly rcsbFvDivId: string;
protected readonly rcsbFvContainer: DataContainer<RcsbFvModulePublicInterface>;
protected readonly stateManager: RcsbFvStateInterface;
protected readonly boardConfigContainer: DataContainer<Partial<RcsbFvBoardConfigInterface>>;
protected readonly pfvChangeCallback: (context: U) => Promise<void>;
protected readonly additionalConfig: (RcsbFvAdditionalConfig & {
operatorChangeCallback?: (operatorInfo: OperatorInfo) => void;
}) | undefined;
protected constructor(config: T & PfvManagerFactoryConfigInterface<U>);
abstract create(config?: BuildPfvInterface): Promise<RcsbFvModulePublicInterface | undefined>;
}