import { RcsbFv } from "@rcsb/rcsb-saguaro/lib/RcsbFv/RcsbFv";
import { RcsbFvBoardConfigInterface, RcsbFvRowConfigInterface } from "@rcsb/rcsb-saguaro/lib/RcsbFv/RcsbFvConfig/RcsbFvConfigInterface";
import { PolymerEntityInstanceTranslate } from "../../RcsbUtils/Translators/PolymerEntityInstanceTranslate";
import { AlignmentCollectorInterface } from "../../RcsbCollectTools/AlignmentCollector/AlignmentCollectorInterface";
import { AnnotationRequestContext, AnnotationCollectorInterface } from "../../RcsbCollectTools/AnnotationCollector/AnnotationCollectorInterface";
import { RcsbFvModuleBuildInterface, RcsbFvModuleInterface } from "./RcsbFvModuleInterface";
import { SequenceAlignments, SequenceAnnotations, Features, TargetAlignments } from "@rcsb/rcsb-api-tools/lib/RcsbGraphQL/Types/Borrego/GqlTypes";
import { TrackFactoryInterface } from "../RcsbFvFactories/RcsbFvTrackFactory/TrackFactoryInterface";
import { AlignmentRequestContextType } from "../RcsbFvFactories/RcsbFvTrackFactory/TrackFactoryImpl/AlignmentTrackFactory";
import { AnnotationConfigInterface } from "../../RcsbAnnotationConfig/AnnotationConfigInterface";
export declare abstract class RcsbFvAbstractModule implements RcsbFvModuleInterface {
    protected readonly rcsbFv: RcsbFv;
    protected readonly elementId: string;
    protected boardConfigData: RcsbFvBoardConfigInterface;
    protected rowConfigData: Array<RcsbFvRowConfigInterface>;
    protected polymerEntityInstance: PolymerEntityInstanceTranslate;
    protected alignmentCollector: AlignmentCollectorInterface;
    protected annotationCollector: AnnotationCollectorInterface;
    protected referenceTrack: RcsbFvRowConfigInterface;
    protected alignmentTracks: Array<RcsbFvRowConfigInterface>;
    protected annotationTracks: Array<RcsbFvRowConfigInterface>;
    protected buildConfig: RcsbFvModuleBuildInterface;
    private rcsbFvRowUpdatePromise;
    private activeDisplayFlag;
    constructor(elementId: string, rcsbFv: RcsbFv);
    setPolymerEntityInstanceTranslator(polymerEntityInstance: PolymerEntityInstanceTranslate): void;
    getPolymerEntityInstanceTranslator(): PolymerEntityInstanceTranslate;
    display(): Promise<void>;
    activeDisplay(): boolean;
    getFv(): RcsbFv;
    getTargets(): Promise<Array<string>>;
    getAlignmentResponse(): Promise<SequenceAlignments>;
    getFeatures(): Promise<Array<Features>>;
    getAnnotationConfigData(): Promise<Array<RcsbFvRowConfigInterface>>;
    build(buildConfig: RcsbFvModuleBuildInterface): Promise<void>;
    wait(): Promise<void>;
    protected abstract protectedBuild(): Promise<void>;
    protected abstract concatAlignmentAndAnnotationTracks(): void;
    protected buildAlignmentTracks(alignmentRequestContext: AlignmentRequestContextType, alignmentResponse: SequenceAlignments, trackFactories?: {
        alignmentTrackFactory?: TrackFactoryInterface<[AlignmentRequestContextType, TargetAlignments]>;
        sequenceTrackFactory?: TrackFactoryInterface<[AlignmentRequestContextType, string]>;
    }): Promise<void>;
    protected buildAnnotationsTrack(annotationsRequestContext: AnnotationRequestContext, annotationsFeatures: SequenceAnnotations[], annotationConfigMap?: AnnotationConfigInterface): Promise<void>;
    protected getBoardConfig(): Promise<RcsbFvBoardConfigInterface>;
    protected getRowsConfig(): Promise<Array<RcsbFvRowConfigInterface>>;
    private buildExternalTracks;
}
