import * as THREE from "three"; import { Createable, Disposable, Event, UI, Component, UIElement } from "../../base-types"; import { Components, Simple2DMarker } from "../../core"; import { Button } from "../../ui"; export interface AreaSelection { area: number; perimeter: number; mesh: THREE.Mesh; label: Simple2DMarker; } export interface SerializedAreaMeasure { position: Float32Array; perimeter: number; area: number; } export declare class FaceMeasurement extends Component implements Createable, UI, Disposable { static readonly uuid: "30279548-1309-44f6-aa97-ce26eed73522"; uiElement: UIElement<{ main: Button; }>; selection: AreaSelection[]; preview: THREE.Mesh, THREE.MeshBasicMaterial, THREE.Object3DEventMap>; selectionMaterial: THREE.MeshBasicMaterial; readonly onBeforeCreate: Event; readonly onAfterCreate: Event; readonly onBeforeCancel: Event; readonly onAfterCancel: Event; readonly onBeforeDelete: Event; readonly onAfterDelete: Event; readonly onDisposed: Event; private _enabled; private _currentSelelection; set enabled(value: boolean); get enabled(): boolean; constructor(components: Components); dispose(): Promise; private setUI; create: () => void; delete(): Promise; deleteAll(): Promise; endCreation(): void; cancelCreation(): void; get(): SerializedAreaMeasure[]; set(serialized: SerializedAreaMeasure[]): void; private setupEvents; private setVisibility; private onMouseMove; private onKeydown; private unselect; private updateSelection; private newLabel; private regenerateHighlight; }