import { InputOptions, ToolbarOptions } from "src/interfaces/toolBar.interface";
import { ContextMenu } from "./contextMenu";
import { Coordinates } from "./mapDistance/coordinates";
import { FlyCamera } from "./flyCamera";
import { MapWheater } from "./mapWeather";
import { MeasureCesium } from "./mapDistance/measureCesium";
import { Viewer } from "cesium";
import { IssuePoint } from "./issuePoint/issuePoint";
import { ClippingPlaneCesium } from "./clippingPlane";
export declare enum MapToolType {
    MEASURE = "measure",
    POINT = "point",
    LABEL_POINT = "labelPoint",
    CLIPPING_PLANE = "clippingPlane",
    FLY_CAMERA = "flyCamera",
    ISSUE_POINT = "issuePoint"
}
export declare class CreateToolbar {
    _containerIdView: string;
    private _treeTileModel;
    private _layerModel;
    private _flyToLcation;
    _contextMenu: ContextMenu | undefined;
    _mapWeather: MapWheater | undefined;
    _measure: MeasureCesium | undefined;
    private _dataProperties;
    private _labelPoint;
    _pointCesium: Coordinates | undefined;
    _flyCamera: FlyCamera | undefined;
    _clippingPlane: ClippingPlaneCesium | undefined;
    issuePoint: IssuePoint | undefined;
    _espChoose: number;
    _activeBtnClippingPlane: boolean;
    _isShowModalIssuePoint: boolean;
    private _measureHandler;
    private _pointHandler;
    private _clippingPlaneHandler;
    private _flyCameraHandler;
    private _issuePointHandler;
    get _doneDimId(): string;
    get _donePointId(): string;
    get _labelPropertiesId(): string;
    get _clippingPlaneDoneId(): string;
    get _doneFlyId(): string;
    get _issuePointId(): string;
    constructor(containerId: string, viewer: Viewer, inputOption: InputOptions, options?: ToolbarOptions);
    checkOptionToolbar: (finalOptions: ToolbarOptions, buttonConfig: any[]) => void;
    removeButtonsConfigById: (buttonConfig: any[], idsToRemove: string[]) => any[];
    createButtonElement: (button: any) => HTMLDivElement;
    handlePositionToolbar: (width: number, height: number, containerId: HTMLElement) => void;
    /**
     * Hàm acive button theo ID
     * @param {string} idTarget ID của thẻ
     * @param {boolean} active hành động
     */
    _activeBtn: (idTarget: string, active: boolean) => void;
    /**
     * Hàm ẩn hiện element theo ID
     * @param {string} idElement ID của thẻ
     * @param {string} showElement true = show, hide = false
     */
    _showHideElementByID: (idElement: string, showElement: boolean) => void;
    /**
     * Hiển thị hoặc ẩn các phần tử HTML dựa trên danh sách ID.
     *
     * @param idElements - Mảng chứa các ID của các phần tử HTML cần hiển thị hoặc ẩn.
     * @param showElements - Nếu là true, các phần tử sẽ được hiển thị; nếu là false, các phần tử sẽ bị ẩn.
     */
    _showHideElementsByID: (idElements: string[], showElements: boolean) => void;
    /**
     * Hàm active button trong group
     * @param {string[]} listBtn Danh sách ID các button
     * @param {string} idActive ID button active
     */
    _activeBtnInGroup: (listBtn: string[], idActive: string) => void;
    _unActiveBtnInGroup: (listBtn: string[]) => void;
    deactivateOtherTools: (activeTool: MapToolType) => void;
    private _activeBtnModel;
    mapModel: (idElement: string) => void;
    private _activeBtnLayerModel;
    layerModel: (idElement: string) => void;
    private _isShowModalMapWeather;
    ToolBarActionMapWeather: (idElement: string) => void;
    ToolBarActionDim: (idElement: string, containerId: string) => void;
    ToolBarActionPoint: (idElement: string, containerId: string) => void;
    private _isShowModalDataElement;
    get isShowModalDataElement(): boolean;
    set isShowModalDataElement(value: boolean);
    ToolBarActionDataElement: (idElement: string) => void;
    private _isShowModalLabelProperties;
    get isShowModalLabelProperties(): boolean;
    set isShowModalLabelProperties(value: boolean);
    ToolBarActionLabelPropeties: (idElement: string) => void;
    ToolBarActionClippingPlane: (idElement: string, containerId: string) => void;
    ToolBarActionFlyCamera: (idElement: string) => void;
    get isShowModalIssuePoint(): boolean;
    set isShowModalIssuePoint(value: boolean);
    ToolBarActionIssuePoint: (idElement: string) => void;
    resetDialog: (idElement: string) => void;
    private _tooltip;
    private _currentTooltipTarget;
    private _timeoutId;
    private _IdGenneralTooltip;
    handleMouseEnter: (event: MouseEvent, delay?: number) => void;
    hideTooltip: () => void;
    showTooltip: (target: HTMLElement) => void;
    handleMouseLeave: (event: any) => void;
}
