import * as THREE from 'three'; import { Color, Vector2, Vector3 } from '@react-three/fiber'; export interface FollowLightProps { /** * The positional offset applied when following a target object. * The light will be placed at this offset relative to the followed object's position. * * This only takes effect if `followObjectRef` is set, or if it defaults to the controller’s `childrenGroup`. * Has no effect if the light is not following any object. * * @defaultValue `(30, 100, 30)` */ offset?: Vector3; /** * The light's intensity, or strength. * The units of intensity depend on the type of light. * @defaultValue `1` */ intensity?: number; /** * Color of the light. * @defaultValue `new THREE.Color(0xffffff)` _(white)_. */ color?: Color; /** * Perspective frustum near plane for the shadow camera. * @defaultValue `0.5` */ shadowCameraNear?: number; /** * Perspective frustum far plane for the shadow camera. * @defaultValue `50` */ shadowCameraFar?: number; /** * Perspective frustum left plane for the shadow camera. * @defaultValue `-20` */ shadowCameraLeft?: number; /** * Perspective frustum right plane for the shadow camera. * @defaultValue `20` */ shadowCameraRight?: number; /** * Perspective frustum top plane for the shadow camera. * @defaultValue `20` */ shadowCameraTop?: number; /** * Perspective frustum bottom plane for the shadow camera. * @defaultValue `-20` */ shadowCameraBottom?: number; /** * A {@link THREE.Vector2 | Vector2} defining the width and height of the shadow map. * @remarks Higher values give better quality shadows at the cost of computation time. * @remarks Values must be powers of 2, up to the {@link THREE.WebGLRenderer.capabilities | WebGLRenderer.capabilities}.maxTextureSize for a given device, * although the width and height don't have to be the same (so, for example, (512, 1024) is valid). * @defaultValue `new THREE.Vector2(2048, 2048)` */ shadowMapSize?: number[] | Vector2; /** * Shadow map bias, how much to add or subtract from the normalized depth when deciding whether a surface is in shadow. * The default is 0. Very tiny adjustments here (in the order of 0.0001) may help reduce artifacts in shadows * @defaultValue `0` */ shadowBias?: number; /** * Defines how much the position used to query the shadow map is offset along the object normal. * The default is 0. Increasing this value can be used to reduce shadow acne especially in large scenes where light shines onto geometry at a shallow angle. * The cost is that shadows may appear distorted. * @defaultValue `0` */ shadowNormalBias?: number; /** * Optional reference to a THREE.Object3D that the light should follow. * When set, the light's position will follow this target object. * If `offset` is also provided, the light will maintain a fixed distance relative to the target. * * If not set (i.e., `null` or `undefined`), the light will follow the controller’s `childrenGroup`, * obtained via `useControllerState()`, which represents the internal group of rendered child objects. * * @defaultValue `null` */ followObjectRef?: React.RefObject; } export declare const defaultFollowLightProps: Required;