import * as THREE from 'three'; import type { RenderableBody } from '../render/types/renderableBody'; type __VLS_Props = { /** The body to render. */ body: RenderableBody; /** * Parent body — used for shadow casting only. The lib does not own * orbital placement: world position comes from the caller (typically * via `pose`). */ parentBody?: RenderableBody | null; /** * Caller-driven world position, copied onto the body's group each frame. * Pass `null` (or omit) to leave the group position untouched. Only * `position` is consumed — rotation is intentionally cosmetic and * advanced by the body's local auto-spin accumulator. */ pose?: { position?: THREE.Vector3; } | null; /** Sets BodyController preview mode (zeroes axial tilt, body sits upright). */ previewMode?: boolean; /** Drag quaternion premultiplied onto the resolved orientation each frame. */ dragQuat?: THREE.Quaternion | null; /** Mount ShadowUpdater (pushes this body's position into its parent's shadow uniforms). */ showShadow?: boolean; /** * Controlled tile-hover state. Body forwards it to the underlying hex mesh * via `body.hover.setTile`. External scene controllers must drive this prop * from their own raycast events — Body itself never mutates hover state. */ hoveredTileId?: number | null; /** * Controlled body-level hover ring (used when another body is hovered * outside of the focused one). Forwarded to `body.hover.setBodyHover`. */ bodyHover?: boolean; /** * Activates tile-level interactive rendering (hex mesh + raycastable proxy). * Typically true for the focused body only. Body calls the matching * `activate` / `deactivate` methods on the underlying body when the flag * flips, so callers do not have to orchestrate the transition themselves. */ interactive?: boolean; /** * Optional explicit light source, forwarded to the mounted * `` (when the body has rings). When omitted, the ring * builder auto-discovers the dominant light in the scene each frame — * fine for single-light scenes. Multi-star scenes pass the resolved * sun light here. */ sunLight?: THREE.PointLight | THREE.DirectionalLight | null; }; declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, { interactive: boolean; bodyHover: boolean; pose: { position?: THREE.Vector3; } | null; dragQuat: THREE.Quaternion | null; previewMode: boolean; sunLight: THREE.PointLight | THREE.DirectionalLight | null; parentBody: RenderableBody | null; showShadow: boolean; hoveredTileId: number | null; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>; declare const _default: typeof __VLS_export; export default _default; //# sourceMappingURL=Body.vue.d.ts.map