import { Box3, Object3D, Plane, Ray, Vector3 } from 'three'; import { DragHandleData } from './DragHandle'; export declare const calculateDragHandles: (box: Box3) => DragHandleData[]; export declare const calculateGeometryBoundingBox: (object: Object3D) => Box3; export declare const calculateEdgeCenter: (boundingBox: Box3, edgeIndex: number) => Vector3; export declare const calculateAnchorPoint: (handleData: DragHandleData, boundingBox: Box3, dragHandles: DragHandleData[], useCenterAnchor?: boolean) => Vector3; export declare const intersectRayWithPlane: (ray: Ray, plane: Plane) => Vector3 | null; export declare const getLocalCoordinateSystem: (object: Object3D) => { localX: Vector3; localY: Vector3; localZ: Vector3; }; export declare const validateScaleRatio: (scaleRatio: Vector3) => boolean; export declare const clampScaleRatio: (scaleRatio: Vector3) => Vector3; export declare const calculateEdgeScaleRatio: (originalDirection: Vector3, newDirection: Vector3, localCoords: { localX: Vector3; localY: Vector3; localZ: Vector3; }, axes: string[], isProportional?: boolean) => Vector3; export declare const calculateCornerScaleRatio: (originalDirection: Vector3, newDirection: Vector3, localCoords: { localX: Vector3; localY: Vector3; localZ: Vector3; }, isProportional?: boolean) => Vector3; export declare const updateTargetObjectBoundingBox: (targetObject: Object3D, onBoundingBoxChange: (newBox: Box3, newHandles: DragHandleData[]) => void) => void; export declare const getCursorForAxes: (axes: string[]) => string; export declare const calculateBoundingBoxEdges: (boundingBox: Box3) => { start: Vector3; end: Vector3; axes: string[]; index: number; }[];