import { MpSdk } from "../../bundle/sdk"; import { Pane } from 'tweakpane'; import { EdgePolyData, PolygonData, WallPolyData, WindowPolyData } from "../types"; export declare class TubeLine { mpSdk: MpSdk; mesh: THREE.Mesh; material: THREE.Material; geometry: THREE.BufferGeometry; texture: THREE.CanvasTexture; tubeGeometry: THREE.TubeGeometry; time: number; closed: boolean; panel: Pane; billboard: string; hovered: boolean; length: number; groupedMesh: THREE.Group; constructor(mpSdk: MpSdk); inputs: { name: string; label: string; description: string; node: any; tubes: any; path: any; enabled: boolean; active: boolean; editMode: boolean; direction: number; curveType: string; opacity: number; tubularSegments: number; radialSegments: number; fillColor: string; textColor: string; text: string; font: string; radius: number; scrollSpeed: number; collider: boolean; visible: boolean; drawingMode: string; targetIndex: any; polygonData: any; renderPolygonOnAdd: boolean; targetUUID: any; isWindowEditing: boolean; objectIndex: any; }; outputs: Record & MpSdk.Scene.PredefinedOutputs; context: MpSdk.Scene.IComponentContext; emits: { active: boolean; destroyed: boolean; }; events: { 'INTERACTION.CLICK': boolean; 'INTERACTION.HOVER': boolean; }; onInit: () => void; onInputsUpdated: (prevInputs: any) => void; renderTubeLine: () => void; setBillboard: (value: any) => void; onEvent(eventType: any, data: any): void; onTick(tickDelta: any): void; renderGUI: () => void; onDestroy(): void; } export declare const tubeLineType = "tubeLine"; export declare const tubeLineFactory: (mpSdk: MpSdk) => () => TubeLine; export declare class Vertice { mpSdk: MpSdk; mesh: THREE.Mesh; material: THREE.Material; geometry: THREE.BufferGeometry; texture: THREE.CanvasTexture; pointerSub: MpSdk.ISubscription; pointerIntersection: MpSdk.Pointer.Intersection; cachedWallNormal: THREE.Vector3 | null; constructor(mpSdk: MpSdk); inputs: { index: any; radius: number; position: any; fillColor: string; hoverColor: string; ringVisibility: boolean; }; outputs: Record & MpSdk.Scene.PredefinedOutputs; context: MpSdk.Scene.IComponentContext; emits: { active: boolean; changed: boolean; }; events: { 'INTERACTION.DRAG': boolean; 'INTERACTION.DRAG_BEGIN': boolean; 'INTERACTION.DRAG_END': boolean; 'INTERACTION.HOVER': boolean; }; onInputsUpdated: (prevInputs: any) => void; calculateWallNormalFromVertices(): THREE.Vector3 | null; onEvent(eventType: any, data: any): void; onInit: () => void; renderVertice: (hovered?: boolean) => void; } export declare const verticeType = "vertice"; export declare const verticeFactory: (mpSdk: any) => () => Vertice; export declare class BufferGeometry { mpSdk: MpSdk; mesh: THREE.Mesh; material: THREE.Material; geometry: THREE.BufferGeometry; groupedMesh: THREE.Group; wallLabels: Array; floorLabels: Array; camera: any; constructor(mpSdk: MpSdk); inputs: { id: number; name: string; uuid: string; position: any; fillColor: string; hoverColor: string; path: any[]; floorName: string; floorColor: number; wallColor: number; windowColor: number; floorOpacity: number; wallOpacity: number; visible: boolean; wallData: any[]; floorData: any; polygonData: any; excludeHiddenWallsFromCalculation: boolean; wallHeight: number; floorLevel: any; drawingMode: string; windowData: any; targetIndex: any; targetUUID: any; deductWindowFromWallArea: boolean; windowOutlineColor: number; isWindowEditing: boolean; }; outputs: Record & MpSdk.Scene.PredefinedOutputs; context: MpSdk.Scene.IComponentContext; emits: { changed: boolean; polygonclicked: boolean; }; events: { 'INTERACTION.CLICK': boolean; 'INTERACTION.DRAG': boolean; 'INTERACTION.DRAG_BEGIN': boolean; 'INTERACTION.DRAG_END': boolean; 'INTERACTION.HOVER': boolean; }; onInputsUpdated: (prevInputs: any) => void; onEvent(eventType: any, data: any): void; onInit: () => void; onTick: (delta: any) => void; onDestroy(): void; createLabelCanvas(text: string): HTMLCanvasElement; /** * Projects 3D window coordinates to 2D for accurate area calculation * @param path3D Array of 3D coordinates * @returns Object with area and perimeter calculated from projected 2D coordinates */ calculateWindowDimensions(path3D: Array<{ x: number; y: number; z: number; }>): { area: number; perimeter: number; }; calculateWallNormal(wallIndex: number, startPoint: any, endPoint: any): THREE.Vector3; renderWindow(WALL_HEIGHT: number): void; renderWalls(WALL_HEIGHT: number, metadata?: PolygonData): (WallPolyData[] | EdgePolyData[])[]; renderWindows(windows: WindowPolyData[]): void; renderPolygon: () => void; } export declare const bufferGeometryType = "bufferGeometry"; export declare const bufferGeometry: (mpSdk: any) => () => BufferGeometry;