import { ReactNode } from 'react'; import { Group, Matrix4, Object3D, Vector3 } from 'three'; import { ForwardRefComponent } from '@react-three/drei/helpers/ts-utils'; type DragStartInfo = { component: string; axis?: 0 | 1 | 2; origin?: Vector3; directions?: Vector3[]; }; export type VuerTransformControlProps = { /** Enables/disables the control, true **/ enabled?: boolean; /** Scale of the gizmo, 1 **/ scale?: number; /** Width of the gizmo lines, this is a Line2 prop, 2.5 **/ lineWidth?: number; /** If fixed is true is remains constant in size, scale is now in pixels, false **/ fixed?: boolean; /** Pivot does not act as a group, it won't shift contents but can offset in position **/ offset?: [number, number, number]; /** Starting rotation **/ rotation?: [number, number, number]; /** Enable using world axis, true **/ world?: boolean; object?: Object3D; /** Starting matrix **/ matrix?: Matrix4; /** BBAnchor, each axis can be between -1/0/+1 **/ anchor?: [number, number, number]; /** If autoTransform is true, automatically apply the local transform on drag, true **/ autoTransform?: boolean; /** Allows you to switch individual axes off **/ activeAxes?: [boolean, boolean, boolean]; /** Allows you to switch individual transformations off **/ disableAxes?: boolean; disableSliders?: boolean; disableRotations?: boolean; disableScaling?: boolean; /** Show bounding box around the target object **/ showBoundingBox?: boolean; /** Limits **/ translationLimits?: [ [ number, number ] | undefined, [ number, number ] | undefined, [ number, number ] | undefined ]; rotationLimits?: [ [ number, number ] | undefined, [ number, number ] | undefined, [ number, number ] | undefined ]; scaleLimits?: [ [ number, number ] | undefined, [ number, number ] | undefined, [ number, number ] | undefined ]; /** RGB colors **/ axisColors?: [string | number, string | number, string | number]; /** Color of the hovered item **/ hoveredColor?: string | number; /** HTML value annotations, default: false **/ annotations?: boolean; /** CSS Classname applied to the HTML annotations **/ annotationsClass?: string; /** Drag start event **/ onDragStart?: (props: DragStartInfo) => void; /** Drag event **/ onDrag?: (l: Matrix4, deltaL: Matrix4, w: Matrix4, deltaW: Matrix4) => void; /** Drag end event **/ onDragEnd?: () => void; /** Set this to false if you want the gizmo to be visible through faces **/ depthTest?: boolean; opacity?: number; visible?: boolean; userData?: { [key: string]: any; }; children?: ReactNode; /** World mode for coordinate system **/ useExtrinsic?: boolean; /** Callback when escape key is pressed to cancel drag **/ onEscapeCancel?: () => void; }; export declare const VuerTransformControl: ForwardRefComponent; export {};