import { Plane } from 'three'; import { LineSegments2 } from 'three/examples/jsm/lines/LineSegments2.js'; import { Extension } from '../Extension.js'; import { SectionTool, type IViewer } from '../../../index.js'; export declare enum PlaneId { POSITIVE_X = "POSITIVE_X", POSITIVE_Y = "POSITIVE_Y", POSITIVE_Z = "POSITIVE_Z", NEGATIVE_X = "NEGATIVE_X", NEGATIVE_Y = "NEGATIVE_Y", NEGATIVE_Z = "NEGATIVE_Z" } export interface PlaneOutline { renderable: LineSegments2; } export declare class SectionOutlines extends Extension { protected sectionProvider: SectionTool; get inject(): (typeof SectionTool)[]; private static readonly OUTLINE_Z_OFFSET; private static readonly INITIAL_BUFFER_SIZE; private tmpVec; private up; private down; private left; private right; private forward; private back; private planeOutlines; private lastSectionPlanes; private sectionPlanesChanged; constructor(viewer: IViewer, sectionProvider: SectionTool); private getPlaneOutline; get enabled(): boolean; set enabled(value: boolean); sectionUpdated(planes: Plane[]): void; requestUpdate(force?: boolean): void; private updatePlaneOutline; private createPlaneOutline; private onSectionBoxDragStart; private onSectionBoxDragEnd; private setSectionPlaneChanged; private updateOutlines; private resizeGeometryBuffer; private getPlaneId; }