import { PropsWithChildren, RefObject } from 'react'; import { ThreeEvent } from '@react-three/fiber'; import * as THREE from 'three'; interface DragStateManagerProps extends PropsWithChildren { enabled: boolean; dragForceScale?: number; showArrow?: boolean; showForceText?: boolean; arrowColor?: number; arrowOpacity?: number; onVisualizationUpdate?: (data: { currentWorldPoint: THREE.Vector3; worldHitPoint: THREE.Vector3; direction: THREE.Vector3; normalizedDirection: THREE.Vector3; length: number; }) => void; onDragStart?: (bodyId: number) => void; onDragEnd?: () => void; } interface DragContextT { dragging: RefObject; selectedPhysicsObject: RefObject; computeForce: () => void; applyForce: () => void; updateForce: () => void; startDragVr: (e: ThreeEvent) => void; updateDragVr: (e: ThreeEvent) => void; endDragVr: (e: ThreeEvent) => void; } export declare function MjDragProvider({ dragForceScale, showArrow, showForceText, arrowColor, arrowOpacity, enabled, onDragStart, onDragEnd, onVisualizationUpdate, children, }: DragStateManagerProps): import("react/jsx-runtime").JSX.Element; export declare const useMjDrag: () => DragContextT; export {};