/// <reference types="react" />
import { RcsbFvAdditionalConfig } from "../RcsbFvModule/RcsbFvModuleInterface";
import { PolymerEntityInstanceInterface } from "../../RcsbCollectTools/Translators/PolymerEntityInstancesCollector";
import { OptionPropsInterface } from "../WebTools/SelectButton";
import { RcsbFvModulePublicInterface } from "../RcsbFvModule/RcsbFvModuleInterface";
import { OptionProps } from "react-select/src/components/Option";
export interface InstanceSequenceOnchangeInterface {
    pdbId: string;
    authId: string;
    asymId: string;
}
export interface InstanceSequenceConfig {
    defaultValue?: string | undefined | null;
    onChangeCallback?: (x: InstanceSequenceOnchangeInterface) => void;
    filterInstances?: Set<string>;
    displayAuthId?: boolean;
    selectButtonOptionProps?: (props: OptionProps<OptionPropsInterface>) => JSX.Element;
}
export declare class RcsbFvInstanceBuilder {
    static buildMultipleInstanceSequenceFv(elementFvId: string, elementEntrySelectId: string, elementInstanceSelectId: string, entryIdList: Array<string>, config: InstanceSequenceConfig, additionalConfig?: RcsbFvAdditionalConfig): Promise<RcsbFvModulePublicInterface>;
    static buildInstanceSequenceFv(elementFvId: string, elementSelectId: string, entryId: string, config: InstanceSequenceConfig, additionalConfig?: RcsbFvAdditionalConfig): Promise<RcsbFvModulePublicInterface>;
    static buildSelectorInstanceFv(instanceList: Array<PolymerEntityInstanceInterface>, elementFvId: string, elementSelectId: string, entryId: string, config: InstanceSequenceConfig, additionalConfig?: RcsbFvAdditionalConfig): Promise<RcsbFvModulePublicInterface>;
    static buildInstanceFv(elementId: string, instanceId: string, additionalConfig?: RcsbFvAdditionalConfig, rcsbContext?: PolymerEntityInstanceInterface): Promise<RcsbFvModulePublicInterface>;
}
