import Planner3DImageUI from '../Planner3DImageUI';
import { Rendering, Vector3, PlannerElementData, DockingPoint, ViewPlannerConfig, TabGroupTypes, IDivaViewVisualizedNotPlannedElement, PlannerPaletteViewDataType } from '@crystaldesign/web-planner-logic';
import PlannerUIHandler from '../UI/PlannerUI';
import SettingsState from '../../States/UIState/Settings';
export default class Planner3DImage {
    private imageContainer;
    UIHandler: Planner3DImageUI;
    private curRendering;
    private planner3DGrid;
    private update3DImgSrcInView;
    private onDoShowNav3DChanged;
    private enablePlanner3DGrid;
    constructor(getConfiguratorState: () => TabGroupTypes, update3DImgSrcInView: (image: string) => void, getPlannerViewConfig: () => ViewPlannerConfig, onDoShowNav3DChanged: (doShow: boolean) => void, getAllPlannedElements: () => Map<string, PlannerElementData[]>, plannerPaletteViewInfo: PlannerPaletteViewDataType | undefined, settingsState: SettingsState);
    /**
     * This function is called to initialize the view of the 3D Image. All HTML components are created and the three.js canvas is initialized.
     * @param htmlElementID The Html Id where the image should be rendered
     * @param canvasSize   The size of the container - used for Threejs canvas initialization
     */
    initialize(htmlElementID: string, updatePlannerTrans: (setId: string, plannerElementID: number, deltaMove: Vector3, deltaAngleDeg: number, rotCorrection: number, transState: 'START' | 'UPDATE' | 'END', autoDockingDistance: number) => void): void;
    /**
     * This function is called when the visualization state of the 3D Grid changed. The 3D Grid is shown or hidden.
     * @param canvasSize        The size the 3D canvas is rendered into
     * @param forceClose        if true - the 3D grid is closed and ignores the state
     */
    handlePlanner3DGridChanged(plannerUIHandler: PlannerUIHandler, canvasSize: {
        imgWidth: number;
        imgHeight: number;
    }, forceClose?: boolean, forceActivate?: boolean): void;
    /**
     * Clear all views - 2D Grid/ 3D Grid and 3D image
     */
    clearView(plannerUIHandler: PlannerUIHandler): void;
    /**
     * returns true if the Planner3D Grid is enabled
     *
     */
    getPlanner3DGridEnabled(): boolean;
    getPlanner3DGridIsInTransformMode(): boolean;
    /**
     * This function is called when the user Interface of the current rendering has to be updated. This can be the case when the planner Changed or the configurator step changed.
     * @param selectedElements
     * @param selectableElements
     * @param setAllElementsSelectable if this is set the elements in the selectableElements are ignored and all Elements that are not selected are declared to be selectable
     */
    updateUI(plannerUIHandler: PlannerUIHandler, allPlannedElements: Map<string, PlannerElementData[]>, allVisualizedNotPlannedElements: Map<string, IDivaViewVisualizedNotPlannedElement[]>, selectedElementsDict: Map<string, PlannerElementData[]>, selectableElements: Map<string, PlannerElementData[]>, setAllElementsSelectable: boolean, selectedDP: DockingPoint | undefined, viewPortSize: {
        imgWidth: number;
        imgHeight: number;
    }): void;
    /**
     * This function is called when a new rendering should displayed on the screen.
     * This function handels also the positioning of posnum etc.
     * @param rendering     The rendering to display
     * @param allPlannedElements    All elements in the planning
     * @param selectedElements      All currently selected elements
     * @param renderSize            The size of the rendering
     */
    updatePlannerView(plannerUIHandler: PlannerUIHandler, rendering: Rendering, allPlannedElementsDict: Map<string, PlannerElementData[]>, selectedElementsDict: Map<string, PlannerElementData[]>, renderSize: {
        imgWidth: number;
        imgHeight: number;
    }): void;
    resetSelectedElementsOnEnterPlannerMode(): boolean;
}
//# sourceMappingURL=Planner3DImage.d.ts.map