import { RcsbFvBoardConfigInterface, RcsbFvRowConfigInterface } from "@rcsb/rcsb-saguaro/lib/RcsbFv/RcsbFvConfig/RcsbFvConfigInterface"; import { RcsbFv } from "@rcsb/rcsb-saguaro/lib/RcsbFv/RcsbFv"; import { SequenceAlignments, Features, AnnotationFilterInput, GroupReference, SequenceReference, AnnotationReference, TargetAlignments } from "@rcsb/rcsb-api-tools/lib/RcsbGraphQL/Types/Borrego/GqlTypes"; import { PolymerEntityInstanceTranslate } from "../../RcsbUtils/Translators/PolymerEntityInstanceTranslate"; import { AnnotationCollectorInterface, AnnotationProcessingInterface, AnnotationsCollectConfig } from "../../RcsbCollectTools/AnnotationCollector/AnnotationCollectorInterface"; import { ExternalTrackBuilderInterface } from "../../RcsbCollectTools/FeatureTools/ExternalTrackBuilderInterface"; import { PairwiseAlignmentInterface } from "../../RcsbUtils/PairwiseAlignmentTools/PairwiseAlignmentBuilder"; import { AlignmentRequestContextType } from "../RcsbFvFactories/RcsbFvTrackFactory/TrackFactoryImpl/AlignmentTrackFactory"; import { TrackManagerInterface } from "../RcsbFvFactories/RcsbFvBlockFactory/BlockManager/TrackManagerInterface"; import { UiComponentType } from "../../RcsbFvUI/GroupPfvUI"; import { TrackFactoryInterface } from "../RcsbFvFactories/RcsbFvTrackFactory/TrackFactoryInterface"; import { AlignmentCollectConfig, AlignmentCollectorInterface } from "../../RcsbCollectTools/AlignmentCollector/AlignmentCollectorInterface"; export type RcsbContextType = Partial<{ entryId: string; entityId: string; asymId: string; authId: string; upAcc: string; chrId: string; targetId: string; queryId: string; operatorIds: Array; }>; export interface RcsbFvAdditionalConfig { sources?: Array; filters?: Array; alignmentFilter?: Array; hideAlignments?: boolean; bottomAlignments?: boolean; boardConfig?: Partial; sequencePrefix?: string; annotationProcessing?: AnnotationProcessingInterface; externalTrackBuilder?: ExternalTrackBuilderInterface; page?: { first: number; after: number; }; excludeLogo?: boolean; rcsbContext?: RcsbContextType; trackConfigModifier?: { alignment?: (alignmentContext: AlignmentRequestContextType, targetAlignment: TargetAlignments, alignmentResponse: SequenceAlignments, alignmentIndex: number) => Promise>; annotations?: (trackManager: TrackManagerInterface) => Promise>; }; externalUiComponents?: { add?: UiComponentType[]; replace?: UiComponentType[]; }; dataProvider?: RcsbModuleDataProviderInterface; isAnnotationsGroupSummary?: boolean; } export interface RcsbModuleDataProviderInterface { alignments?: { collector: AlignmentCollectorInterface; context: AlignmentCollectConfig; trackFactories?: { alignmentTrackFactory?: TrackFactoryInterface<[AlignmentRequestContextType, TargetAlignments]>; sequenceTrackFactory?: TrackFactoryInterface<[AlignmentRequestContextType, string]>; }; }; annotations?: { collector: AnnotationCollectorInterface; context: AnnotationsCollectConfig; }; } export interface RcsbFvModuleBuildInterface { group?: GroupReference; groupId?: string; queryId?: string; from?: SequenceReference; to?: SequenceReference; sources?: Array; entityId?: string; instanceId?: string; upAcc?: string; refSeqId?: string; chrId?: string; psa?: PairwiseAlignmentInterface; additionalConfig?: RcsbFvAdditionalConfig; elementSelectId?: string; resolve(module: RcsbFvModulePublicInterface): void; } export interface RcsbFvModuleInterface extends RcsbFvModulePublicInterface { activeDisplay(): boolean; display(): void; build(buildConfig: RcsbFvModuleBuildInterface): Promise; setPolymerEntityInstanceTranslator(polymerEntityInstance: PolymerEntityInstanceTranslate): void; getPolymerEntityInstanceTranslator(): PolymerEntityInstanceTranslate; } export interface RcsbFvModulePublicInterface

{ getTargets(): Promise>; getAlignmentResponse(): Promise; getFeatures(): Promise>; getAnnotationConfigData(): Promise>>; getFv(): RcsbFv; wait(): Promise; }