import { DrawingID, GeometryElement, GraphicID, ScgObject, MemberType, ObjectID, ScgPointMem, ScgPoint, ContainerGeometryT } from '@buerli.io/core'; import * as THREE from 'three'; export declare function useGlobalToLocalMatrix(drawingId: DrawingID, objId: ObjectID | undefined): THREE.Matrix4; export declare function getGlobalToLocalMatrix(drawingId: DrawingID, objId: ObjectID): THREE.Matrix4; export declare function convertToVector(point: ScgPointMem | undefined): THREE.Vector3; export declare function convertToArray(point: ScgPointMem): number[]; export declare function linesIntersection(point1: THREE.Vector3, dir1: THREE.Vector3, point2: THREE.Vector3, dir2: THREE.Vector3): THREE.Vector3 | null; export declare const angleVecVec: (a: THREE.Vector3, b: THREE.Vector3) => number; export declare const degreesToRadians: (degrees: number) => number; export declare const radiansToDegrees: (radians: number) => number; export declare const getPointOnPlane: (unprojectedPoint: THREE.Vector3, camera: THREE.Camera, globalToLocalM: THREE.Matrix4) => THREE.Vector3; export declare const closestAngle: (value: number, to: number) => number; export declare const stringifyValue: (value: string | number | ScgPoint, type: MemberType) => string; export declare function findObject(drawingId: DrawingID, id: GraphicID | ObjectID, unrollRefs?: boolean): ScgObject | ContainerGeometryT | GeometryElement | undefined; export declare function fmod(num: number, denom: number): number; export declare const solveQuadratic: (a: number, b: number, c: number) => number[]; export declare const solveQuartic: (a: number, b: number, c: number, d: number, e: number) => number[]; export declare function getRegionCoordSys(drawingId: DrawingID, regionObj: ScgObject): THREE.Vector3[];