import '../styles/treeTileModel.css';
import '../styles/labelPoint.css';
import { FormLabelPoint } from "./Dialog/formLabelPoint";
interface Position {
    x: number;
    y: number;
    z: number;
}
interface DataLabelPoint {
    id: string | null;
    parentID: string | null;
    name: string | null;
    url: string | null;
    fontSize: string | null;
    hexColor: string | null;
    expand: boolean | null;
    hasChild: boolean | null;
    position: Position | null;
    cameraView: string | null;
}
export declare class LabelPoint {
    viewer: any;
    containerId: string;
    IdGenneral: string;
    private dialog;
    modal: any;
    listLabelPoint: DataLabelPoint[];
    formLabelPoint?: FormLabelPoint;
    private onClosedCallback;
    constructor(containerId: string, viewer: any);
    setClosedCallback(callback: (status: boolean) => void): void;
    notifyCallBack(status: boolean): void;
    createModalTreeFolder: () => void;
    private handleCloseModal;
    showHideModalLabelProperties: (show: boolean) => void;
    private containerUl;
    private containerLabel;
    private wrapperDiv;
    private renderTreelabel;
    private clearContainer;
    private selectedItems;
    private lastSelectedItem;
    private selectedRow?;
    /**
 * Tạo phần tử cây thư mục
 */
    private createTreeItem;
    /**
     * Xử lý sự kiện chọn mục
     */
    private handleItemSelection;
    /**
     * Chọn hoặc bỏ chọn mục (Ctrl)
     */
    private toggleSelectItem;
    /**
     * Chọn một dải mục (Shift)
     */
    private selectRange;
    /**
     * Chọn một mục duy nhất
     */
    private selectSingleItem;
    private initKeyboardEvents;
    /**
     * Xử lý Ctrl+A để chọn tất cả
     */
    private handleSelectAll;
    /**
     * Tạo span chứa caret và màu
     */
    private createCaretSpan;
    /**
     * Tạo container cho mục con
     */
    private createNestedContainer;
    handleToggleSelected: (currentItem: any) => void;
    /**
     * Tạo container cho các nút chức năng (ví dụ: tìm kiếm, xóa, chỉnh sửa)
     */
    private createButtonContainer;
    private searchInput;
    private listSearchLabelPoint;
    private isSearching;
    private renderSearch;
    /**
   * Hàm theo dõi thay đổi của input
   */
    private handleTrackInput;
    /**
       * Theo dỗ giá trị input cho font size
       */
    private handleChangeSearchInput;
    /**
 * Tìm kiếm các phần tử theo từ khóa và giữ lại các cha của chúng.
 * @param keyword Từ khóa tìm kiếm
 * @param list Danh sách đầy đủ để tìm kiếm
 * @returns Danh sách đã lọc bao gồm các phần tử phù hợp và các cha của chúng
 */
    private searchListWithParents;
    private button1s;
    private button2s;
    private renderBtnGroup;
    private toggleButtonState;
    private toggleButtonsState;
    private activePickRemove;
    private handleClickBtnAction;
    private toggtleShowHideLabelPoint;
    private handleUpdateListLabelPoint;
    private resetData;
    private activeLabelPointEntities;
    private isClickLabelPoint?;
    private activeHandleClickLabel;
    private handelClickRemoveLabelPoint?;
    private removeByPickLabelPoint;
    private resetClickLabelPoint;
    private handlerClickCreateLabelPoint?;
    createLabelPointFromUrl: (linkUrl: string, fromJson: boolean | undefined, dataJson: any, isShow?: boolean) => Promise<DataLabelPoint[]>;
    private isEventActive;
    private createPointWithLabel;
    private removeDocumentEvents;
    private flyToLabelPoint;
    private restoreSavedView;
    private saveCurrentView;
    private removeLabelPoint;
    private deleteLabelFormListById;
    private handleDocumentEventsLabelPoint;
    private handleCallBackFormLabelPoint;
    private editLabelPoint;
    private zoomLabelPoint;
    private showHideAllLabelPoint;
    private removeLabelPointBySelected;
    private downloadJson;
    private uploadJson;
}
export {};
