import { RcsbContextType, RcsbFvAdditionalConfig } from "../RcsbFvModule/RcsbFvModuleInterface";
import { PolymerEntityInstanceInterface } from "../../RcsbCollectTools/DataCollectors/PolymerEntityInstancesCollector";
import { SelectOptionProps } from "../RcsbFvComponents/SelectButton";
import { RcsbFvModulePublicInterface } from "../RcsbFvModule/RcsbFvModuleInterface";
import { ReactNode } from "react";
export interface InstanceSequenceOnchangeInterface extends PolymerEntityInstanceInterface {
}
type InstanceModuleType = "interface" | "instance";
export interface InstanceSequenceConfig {
    dropdownTitle?: string;
    defaultValue?: string | undefined | null;
    beforeChangeCallback?: (x: InstanceSequenceOnchangeInterface, module: RcsbFvModulePublicInterface | undefined) => undefined | RcsbContextType;
    onChangeCallback?: (x: InstanceSequenceOnchangeInterface, module: RcsbFvModulePublicInterface) => void;
    filterInstances?: Set<string>;
    displayAuthId?: boolean;
    selectButtonOptionProps?: (props: SelectOptionProps) => ReactNode;
    module?: InstanceModuleType;
}
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, module?: InstanceModuleType): Promise<RcsbFvModulePublicInterface>;
}
export {};
