import { RcsbFvDisplayTypes } from './RcsbFvDefaultConfigValues';
import { RcsbFvDisplayConfigInterface, RcsbFvRowExtendedConfigInterface } from "./RcsbFvConfigInterface";
import { RcsbFvTrackData, RcsbFvTrackDataElementInterface, RcsbFvColorGradient } from "../../RcsbDataManager/RcsbDataManager";
import { LocationViewInterface } from "../../RcsbBoard/RcsbBoard";
import { RcsbFvTooltipInterface } from "../RcsbFvTooltip/RcsbFvTooltipInterface";
/**Board track configuration manager className*/
export declare class RcsbFvConfig implements RcsbFvRowExtendedConfigInterface {
    trackId: string;
    boardId: string;
    displayType: RcsbFvDisplayTypes;
    length: number;
    range: {
        min: number;
        max: number;
    };
    elementId?: string;
    trackData?: RcsbFvTrackData;
    displayConfig?: Array<RcsbFvDisplayConfigInterface>;
    trackHeight?: number;
    trackWidth?: number;
    trackColor?: string;
    displayColor?: string | RcsbFvColorGradient;
    displayDomain?: [number, number];
    interpolationType?: string;
    dynamicDisplay?: boolean;
    nonEmptyDisplay?: boolean;
    elementClickCallback?: (d?: RcsbFvTrackDataElementInterface, e?: MouseEvent) => void;
    elementEnterCallback?: (d?: RcsbFvTrackDataElementInterface, e?: MouseEvent) => void;
    elementLeaveCallback?: (d?: RcsbFvTrackDataElementInterface, e?: MouseEvent) => void;
    includeTooltip?: boolean;
    updateDataOnMove?: (d: LocationViewInterface) => Promise<RcsbFvTrackData>;
    overlap: boolean;
    minRatio?: number;
    selectDataInRangeFlag?: boolean;
    hideEmptyTrackFlag?: boolean;
    highlightHoverPosition?: boolean;
    highlightHoverElement?: boolean;
    highlightHoverCallback?: (n: Array<RcsbFvTrackDataElementInterface>) => void;
    hideInnerBorder?: boolean;
    hideRowGlow?: boolean;
    tooltipGenerator?: RcsbFvTooltipInterface;
    constructor(args: RcsbFvRowExtendedConfigInterface);
    /**Update board track configuration. This method sets some attributes to default values when configuration values are not available.
     * @param args Board track configuration object
     * */
    updateConfig(args: RcsbFvRowExtendedConfigInterface): void;
    /**Check if sequence length and DOM element Id are available
     * @return boolean
     * */
    configCheck(): boolean;
    getInterpolationType(type: string): string;
    /**Deletes board track annotation data*/
    resetTrackData(): void;
    /**Load board track annotation data
     * @param data New board track annotation data
     * */
    addTrackData(data: RcsbFvTrackData): void;
    /**Load board track annotation data
     * @param data New board track annotation data
     * */
    updateTrackData(data: RcsbFvTrackData): void;
}
