import { BufferGeometry, Mesh, Quaternion, Object3D, Vector3, Line3, Points, PointsMaterial, Plane, Raycaster, LineSegments, LineBasicMaterial, Line, Triangle, BoxBufferGeometry, MeshBasicMaterial, Material } from 'three'; import { OBB } from 'three/examples/jsm/math/OBB'; import * as THREE from "three"; import * as YUKA from "yuka"; import * as i0 from "@angular/core"; export declare class ThreeJsService { raycaster: Raycaster; a: Vector3; b: Vector3; c: Vector3; planePointA: Vector3; planePointB: Vector3; planePointC: Vector3; lineAB: Line3; lineBC: Line3; lineCA: Line3; tolerance: number; pointOfIntersection: Vector3; pointsOfIntersection: BufferGeometry; constructor(); getVolume(geometry: any): number; private signedVolumeOfTriangle; random_rgb(): string; roundToMM(x: number): number; getCommonPoints(geo1: BufferGeometry, geo2: BufferGeometry): Vector3[]; drawIntersectionPoints(points: Vector3[]): { pointsObj: Points; contourObj: any[]; }; getContours(points: any, contours: any, firstRun: any): any; getContour(currentPoint: any, points: any, contour: any): any; getNearestPointIndex(point: any, points: any): number; getPairIndex(point: any, pointIndex: any, points: any): number; createAndLoadLine(points: Vector3[]): Line; getPointsOfBufferGeometry(elGeo: BufferGeometry, addFaceIndex?: boolean): Vector3[]; getFacesOfBufferGeometry(geo: BufferGeometry, getNormals?: boolean, load?: boolean): { faces: Triangle[]; normals: Vector3[]; }; createOBBMesh(obb: OBB, quaternion: Quaternion): LineSegments; private tripleProduct; isCoPlanar(a: any, b: any, c: any, d: any): boolean; pointsAreCoplanar(points: Vector3[], tolerance?: number): { isCoPlanar: boolean; plane: Plane; isLine: boolean; }; createOBBHelper(obb: YUKA.OBB, asWireframe?: boolean): Mesh; createReducedOBB(geo: BoxBufferGeometry, tolerance?: number): BufferGeometry; private isPointOnLine; removeIdentical(a: any[]): any[]; setTransparent(mesh: Mesh, randomColor?: boolean): Mesh; getIntersectingPoint(element: Mesh, target: Mesh): THREE.Intersection> | undefined; cleanMesh(mesh: Mesh): void; removeUnusedMaterials(mesh: Mesh): void; createSmallSphereAtPosition(position: Vector3, w?: number, h?: number, r?: number): Mesh; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }