import { Rendering, PlannerElementData, DockingPoint, TabGroupTypes, IDivaViewVisualizedNotPlannedElement, PlannerPaletteViewDataType } from '@crystaldesign/web-planner-logic';
import PlannerUIHandler, { ElementStates } from './UI/PlannerUI';
import SettingsState from '../States/UIState/Settings';
export default class Planner3DImageUI {
    private settingsState;
    private uiHTMLContainer;
    private classUI;
    private getConfiguratorState;
    private plannerPaletteViewInfo;
    constructor(getConfiguratorState: () => TabGroupTypes, plannerPaletteViewInfo: PlannerPaletteViewDataType | undefined, settingsState: SettingsState);
    /**
     * This function adds the trash icon (deletion) on the 3D image.
     * The position is computed based on the informations from the rendering
     * @param element   The elements where the icon should be displayed
     * @param posXPercent   The procentual X position of the deletion icon when it should be displayd on TOP_RIGHT_BACK config
     * @param posYPercent   The procentual Y position of the deletion icon when it should be displayd on TOP_RIGHT_BACK config
     */
    private addDelIcon;
    private addDimensionInfo;
    /**
     * This function adds the position number to the 3D image. It returns the position of the number on the screen and its width
     * @param element
     * @param posXPercent
     * @param posYPercent
     * @param elemIsSelected
     * @param elemIsSelectable
     */
    private addPosNrUI;
    /**
       * This function adds the docking points of the box planner. It is the docking point for docking to left and right and if the element is the top element in the colum
       * it also adds the add to top.
       * @param element   The current selected element
       * @param rendering The rendering that holds the information about the screen positions
  
       */
    private addBoxPlannerDockingPoints;
    private addCopyIcon;
    /**
     * This function adds the accessoire DockingPoints on the 3D Image.
     * @param element   The current element
     * @param viewDockingPointList
     * @param selectedDP
     */
    private addAccDockingPoints;
    addOutlinePolygon(plannerUIHandler: PlannerUIHandler, rendering: Rendering, plannerElement: PlannerElementData, state: ElementStates, viewPortSize: {
        imgWidth: number;
        imgHeight: number;
    }): void;
    /**
     * Initializes the UI of the 3D image
     * @param htmlContainer     The html Container where the UI should be rendered into
     */
    initialize(htmlContainer: any): void;
    /**
     * Update the UserInterface on the 3D image.
     * @param allPlannedElements    A list
     * @param rendering
     * @param selectedElements
     * @param selectableElements
     * @param setAllElementsSelectable
     * @param selectedDP
     */
    updateUI(plannerUIHandler: PlannerUIHandler, allPlannedElementsDict: Map<string, PlannerElementData[]>, allVisualizedNotPlannedElementsDict: Map<string, IDivaViewVisualizedNotPlannedElement[]>, rendering: Rendering, selectedElementsDict: Map<string, PlannerElementData[]>, selectableElementsDict: Map<string, PlannerElementData[]>, setAllElementsSelectable: boolean, selectedDP: DockingPoint | undefined, viewPortSize: {
        imgWidth: number;
        imgHeight: number;
    }): void;
    /**
     * This function returns true if only one Element is left.
     * If the backside module is activated, it is also one element left, if the two are opposite
     */
    private checkBoxPlannerSingleElement;
    /**-------------------------Getter ------------------------------- */
    get Class3DUI(): string;
}
//# sourceMappingURL=Planner3DImageUI.d.ts.map