@react-three/drei 11.0.0-alpha.5 → 11.0.0-alpha.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,10 +3,9 @@ import { ForwardRefExoticComponent, PropsWithoutRef, RefAttributes, CSSPropertie
3
3
  import * as _react_three_fiber from '@react-three/fiber';
4
4
  import { ThreeElements, ReactThreeFiber, ComputeFunction, Vector2, Vector3, ThreeElement, ThreeEvent, Color as Color$1, ObjectMap, Euler } from '@react-three/fiber';
5
5
  import * as THREE from 'three/webgpu';
6
- import { MeshBasicNodeMaterial, MeshNormalNodeMaterial, MeshPhysicalNodeMaterial, Material, Color, ColorRepresentation, Object3D, Texture as Texture$1, Fog, FogExp2, WebGLCubeRenderTarget, CubeCamera as CubeCamera$1, OrthographicCamera as OrthographicCamera$1, PerspectiveCamera as PerspectiveCamera$1, EventDispatcher, Camera, Matrix4, Vector3 as Vector3$1, Group, LOD, Mesh, ExtrudeGeometry, PositionalAudio as PositionalAudio$1, AnimationClip, AnimationMixer, AnimationAction, BufferGeometry, BufferAttribute, InstancedMesh as InstancedMesh$1, InstancedBufferAttribute, DepthTexture, CubeTexture as CubeTexture$1, Raycaster, Intersection, RenderTargetOptions, Box3, Sphere as Sphere$1, Loader as Loader$1, ColorSpace, Scene, PlaneGeometry, MeshBasicMaterial, SpriteNodeMaterial, SpotLight as SpotLight$1 } from 'three/webgpu';
7
- import { reflector, uniform, Fn } from 'three/tsl';
6
+ import { Material, UniformNode, TextureNode, Texture as Texture$1, MeshNormalNodeMaterial, CubeRenderTarget, Color, ColorRepresentation, Object3D, Fog, FogExp2, CubeCamera as CubeCamera$1, OrthographicCamera as OrthographicCamera$1, PerspectiveCamera as PerspectiveCamera$1, EventDispatcher, Camera, Group, Matrix4, Vector3 as Vector3$1, LOD, Mesh, ExtrudeGeometry, PositionalAudio as PositionalAudio$1, AnimationClip, AnimationMixer, AnimationAction, BufferGeometry, BufferAttribute, InstancedMesh as InstancedMesh$1, InstancedBufferAttribute, DepthTexture, CubeTexture as CubeTexture$1, Raycaster, Intersection, RenderTargetOptions, Box3, Sphere as Sphere$1, Loader as Loader$1, ColorSpace, Scene, PlaneGeometry, MeshBasicMaterial, MeshBasicNodeMaterial, SpriteNodeMaterial, SpotLight as SpotLight$1 } from 'three/webgpu';
7
+ import { reflector } from 'three/tsl';
8
8
  import { LineSegments2 } from 'three/examples/jsm/lines/webgpu/LineSegments2.js';
9
- import { DragConfig } from '@use-gesture/react';
10
9
  import * as zustand from 'zustand';
11
10
  import { StoreApi } from 'zustand';
12
11
  import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
@@ -47,6 +46,22 @@ type ContactShadowsProps = Omit<ThreeElements['group'], 'ref' | 'scale'> & {
47
46
  };
48
47
  declare const ContactShadows: ForwardRefComponent<ContactShadowsProps, THREE.Group>;
49
48
 
49
+ type AnyCtor = new (...args: any[]) => Material;
50
+ type UniformFactory = () => UniformNode<any, any> | TextureNode;
51
+ type UniformValue<F> = F extends () => TextureNode ? Texture$1 | null : F extends () => UniformNode<any, infer V> ? V : never;
52
+ type UniformProps<U> = {
53
+ [K in keyof U]: UniformValue<U[K]>;
54
+ };
55
+ type UniformNodes<U extends Record<string, UniformFactory>> = {
56
+ [K in keyof U]: ReturnType<U[K]>;
57
+ };
58
+ type UniformParameters<B extends AnyCtor, U> = NonNullable<ConstructorParameters<B>[0]> & Partial<UniformProps<U>>;
59
+ type WithUniforms<B extends AnyCtor, U extends Record<string, UniformFactory>> = Omit<B, 'prototype'> & {
60
+ new (parameters?: UniformParameters<B, U>, ...rest: any[]): InstanceType<B> & UniformProps<U> & {
61
+ readonly uniforms: UniformNodes<U>;
62
+ };
63
+ };
64
+
50
65
  type AccumulativeShadowsProps = Omit<ThreeElements['group'], 'ref'> & {
51
66
  frames?: number;
52
67
  blend?: number;
@@ -66,7 +81,7 @@ interface AccumulativeContext {
66
81
  frames: number;
67
82
  blend: number;
68
83
  count: number;
69
- getMesh: () => THREE.Mesh<THREE.PlaneGeometry, THREE.ShaderMaterial>;
84
+ getMesh: () => THREE.Mesh<THREE.PlaneGeometry, SoftShadowMaterialImpl>;
70
85
  reset: () => void;
71
86
  update: (frames?: number) => void;
72
87
  }
@@ -74,6 +89,14 @@ interface AccumulativeLightContext {
74
89
  update: () => void;
75
90
  }
76
91
  declare const accumulativeContext: React.Context<AccumulativeContext>;
92
+ declare const SoftShadowMaterialImpl_base: WithUniforms<typeof THREE.MeshBasicNodeMaterial, {
93
+ shadowColor: () => THREE.UniformNode<"color", THREE.Color>;
94
+ blend: () => THREE.UniformNode<"float", number>;
95
+ }>;
96
+ declare class SoftShadowMaterialImpl extends SoftShadowMaterialImpl_base {
97
+ constructor();
98
+ private _buildShader;
99
+ }
77
100
  declare const AccumulativeShadows: ForwardRefComponent<AccumulativeShadowsProps, AccumulativeContext>;
78
101
  type RandomizedLightProps = Omit<ThreeElements['group'], 'ref'> & {
79
102
  frames?: number;
@@ -91,70 +114,35 @@ type RandomizedLightProps = Omit<ThreeElements['group'], 'ref'> & {
91
114
  };
92
115
  declare const RandomizedLight: ForwardRefComponent<RandomizedLightProps, AccumulativeLightContext>;
93
116
 
94
- declare class CausticsProjectionMaterial extends MeshBasicNodeMaterial {
95
- private _causticsTexture;
96
- private _causticsTextureB;
97
- private _color;
98
- private _lightProjMatrix;
99
- private _lightViewMatrix;
117
+ declare const CausticsProjectionMaterial_base: WithUniforms<typeof THREE.MeshBasicNodeMaterial, {
118
+ causticsTexture: () => THREE.TextureNode<"vec4">;
119
+ causticsTextureB: () => THREE.TextureNode<"vec4">;
120
+ lightProjMatrix: () => THREE.UniformNode<"mat4", THREE.Matrix4>;
121
+ lightViewMatrix: () => THREE.UniformNode<"mat4", THREE.Matrix4>;
122
+ }>;
123
+ declare class CausticsProjectionMaterial extends CausticsProjectionMaterial_base {
100
124
  constructor();
101
125
  private _buildShader;
102
- get causticsTexture(): THREE.Texture;
103
- set causticsTexture(v: THREE.Texture);
104
- get causticsTextureB(): THREE.Texture;
105
- set causticsTextureB(v: THREE.Texture);
106
- get color(): THREE.Color;
107
- set color(v: THREE.Color);
108
- get lightProjMatrix(): THREE.Matrix4;
109
- set lightProjMatrix(v: THREE.Matrix4);
110
- get lightViewMatrix(): THREE.Matrix4;
111
- set lightViewMatrix(v: THREE.Matrix4);
112
126
  }
113
- declare class CausticsMaterial extends MeshBasicNodeMaterial {
114
- private _cameraMatrixWorld;
115
- private _cameraProjectionMatrixInv;
116
- private _normalTexture;
117
- private _depthTexture;
118
- private _lightDir;
119
- private _lightPlaneNormal;
120
- private _lightPlaneConstant;
121
- private _near;
122
- private _far;
123
- private _worldRadius;
124
- private _ior;
125
- private _resolution;
126
- private _size;
127
- private _intensity;
127
+ declare const CausticsMaterial_base: WithUniforms<typeof THREE.MeshBasicNodeMaterial, {
128
+ cameraMatrixWorld: () => THREE.UniformNode<"mat4", THREE.Matrix4>;
129
+ cameraProjectionMatrixInv: () => THREE.UniformNode<"mat4", THREE.Matrix4>;
130
+ normalTexture: () => THREE.TextureNode<"vec4">;
131
+ depthTexture: () => THREE.TextureNode<"vec4">;
132
+ lightDir: () => THREE.UniformNode<"vec3", THREE.Vector3>;
133
+ lightPlaneNormal: () => THREE.UniformNode<"vec3", THREE.Vector3>;
134
+ lightPlaneConstant: () => THREE.UniformNode<"float", number>;
135
+ near: () => THREE.UniformNode<"float", number>;
136
+ far: () => THREE.UniformNode<"float", number>;
137
+ worldRadius: () => THREE.UniformNode<"float", number>;
138
+ ior: () => THREE.UniformNode<"float", number>;
139
+ resolution: () => THREE.UniformNode<"float", number>;
140
+ size: () => THREE.UniformNode<"float", number>;
141
+ intensity: () => THREE.UniformNode<"float", number>;
142
+ }>;
143
+ declare class CausticsMaterial extends CausticsMaterial_base {
128
144
  constructor();
129
145
  private _buildShader;
130
- get cameraMatrixWorld(): THREE.Matrix4;
131
- set cameraMatrixWorld(v: THREE.Matrix4);
132
- get cameraProjectionMatrixInv(): THREE.Matrix4;
133
- set cameraProjectionMatrixInv(v: THREE.Matrix4);
134
- get normalTexture(): THREE.Texture | null;
135
- set normalTexture(v: THREE.Texture | null);
136
- get depthTexture(): THREE.Texture | null;
137
- set depthTexture(v: THREE.Texture | null);
138
- get lightDir(): THREE.Vector3;
139
- set lightDir(v: THREE.Vector3);
140
- get lightPlaneNormal(): THREE.Vector3;
141
- set lightPlaneNormal(v: THREE.Vector3);
142
- get lightPlaneConstant(): number;
143
- set lightPlaneConstant(v: number);
144
- get near(): number;
145
- set near(v: number);
146
- get far(): number;
147
- set far(v: number);
148
- get worldRadius(): number;
149
- set worldRadius(v: number);
150
- get ior(): number;
151
- set ior(v: number);
152
- get resolution(): number;
153
- set resolution(v: number);
154
- get size(): number;
155
- set size(v: number);
156
- get intensity(): number;
157
- set intensity(v: number);
158
146
  }
159
147
  declare class CausticsNormalMaterial extends MeshNormalNodeMaterial {
160
148
  constructor(side?: THREE.Side);
@@ -172,6 +160,7 @@ type MeshTransmissionMaterialType = Omit<ThreeElements['meshPhysicalMaterial'],
172
160
  temporalDistortion?: number;
173
161
  buffer?: THREE.Texture;
174
162
  time?: number;
163
+ debugMode?: number;
175
164
  args?: [samples: number, transmissionSampler: boolean];
176
165
  };
177
166
  type MeshTransmissionMaterialProps = Omit<MeshTransmissionMaterialType, 'ref' | 'args'> & {
@@ -189,44 +178,7 @@ declare module '@react-three/fiber' {
189
178
  meshTransmissionMaterial: MeshTransmissionMaterialType;
190
179
  }
191
180
  }
192
- declare class MeshTransmissionMaterialImpl extends MeshPhysicalNodeMaterial {
193
- private _chromaticAberration;
194
- private _anisotropicBlur;
195
- private _time;
196
- private _distortion;
197
- private _distortionScale;
198
- private _temporalDistortion;
199
- private _buffer;
200
- private _transmissionValue;
201
- private _attenuationDistance;
202
- private _attenuationColor;
203
- private _samples;
204
- private _transmissionSampler;
205
- readonly isMeshTransmissionMaterial = true;
206
- constructor(samples?: number, transmissionSampler?: boolean);
207
- private _buildTransmissionShader;
208
- get chromaticAberration(): number;
209
- set chromaticAberration(v: number);
210
- get anisotropicBlur(): number;
211
- set anisotropicBlur(v: number);
212
- get time(): number;
213
- set time(v: number);
214
- get distortion(): number;
215
- set distortion(v: number);
216
- get distortionScale(): number;
217
- set distortionScale(v: number);
218
- get temporalDistortion(): number;
219
- set temporalDistortion(v: number);
220
- get buffer(): THREE.Texture | null;
221
- set buffer(v: THREE.Texture | null);
222
- get _transmission(): number;
223
- set _transmission(v: number);
224
- get attenuationDistance(): number;
225
- set attenuationDistance(v: number);
226
- get attenuationColor(): THREE.Color;
227
- set attenuationColor(v: THREE.Color);
228
- }
229
- declare const MeshTransmissionMaterial: ForwardRefComponent<MeshTransmissionMaterialProps, MeshTransmissionMaterialImpl>;
181
+ declare const MeshTransmissionMaterial: ForwardRefComponent<MeshTransmissionMaterialProps, ThreeElements['meshTransmissionMaterial']>;
230
182
 
231
183
  interface MeshReflectorMaterialOptions {
232
184
  resolution?: number;
@@ -241,43 +193,23 @@ interface MeshReflectorMaterialOptions {
241
193
  mixContrast?: number;
242
194
  reflectorOffset?: number;
243
195
  }
244
- declare class MeshReflectorMaterial$1 extends THREE.MeshStandardNodeMaterial {
196
+ declare const MeshReflectorMaterial_base: WithUniforms<typeof THREE.MeshStandardNodeMaterial, {
197
+ mirror: () => THREE.UniformNode<"float", number>;
198
+ mixBlur: () => THREE.UniformNode<"float", number>;
199
+ mixStrength: () => THREE.UniformNode<"float", number>;
200
+ minDepthThreshold: () => THREE.UniformNode<"float", number>;
201
+ maxDepthThreshold: () => THREE.UniformNode<"float", number>;
202
+ depthScale: () => THREE.UniformNode<"float", number>;
203
+ depthToBlurRatioBias: () => THREE.UniformNode<"float", number>;
204
+ distortion: () => THREE.UniformNode<"float", number>;
205
+ mixContrast: () => THREE.UniformNode<"float", number>;
206
+ blurRadius: () => THREE.UniformNode<"float", number>;
207
+ }>;
208
+ declare class MeshReflectorMaterial$1 extends MeshReflectorMaterial_base {
245
209
  reflection: ReturnType<typeof reflector>;
246
- mirrorUniform: ReturnType<typeof uniform<number>>;
247
- mixBlurUniform: ReturnType<typeof uniform<number>>;
248
- mixStrengthUniform: ReturnType<typeof uniform<number>>;
249
- minDepthThresholdUniform: ReturnType<typeof uniform<number>>;
250
- maxDepthThresholdUniform: ReturnType<typeof uniform<number>>;
251
- depthScaleUniform: ReturnType<typeof uniform<number>>;
252
- depthToBlurRatioBiasUniform: ReturnType<typeof uniform<number>>;
253
- distortionUniform: ReturnType<typeof uniform<number>>;
254
- mixContrastUniform: ReturnType<typeof uniform<number>>;
255
- blurRadiusUniform: ReturnType<typeof uniform<number>>;
256
- hasBlurUniform: ReturnType<typeof uniform<number>>;
257
- hasDepthUniform: ReturnType<typeof uniform<number>>;
210
+ get reflectorTarget(): THREE.Object3D;
258
211
  constructor(options?: MeshReflectorMaterialOptions, parameters?: THREE.MeshStandardMaterialParameters);
259
212
  private setupNodes;
260
- get mirror(): number;
261
- set mirror(v: number);
262
- get mixBlur(): number;
263
- set mixBlur(v: number);
264
- get mixStrength(): number;
265
- set mixStrength(v: number);
266
- get minDepthThreshold(): number;
267
- set minDepthThreshold(v: number);
268
- get maxDepthThreshold(): number;
269
- set maxDepthThreshold(v: number);
270
- get depthScale(): number;
271
- set depthScale(v: number);
272
- get depthToBlurRatioBias(): number;
273
- set depthToBlurRatioBias(v: number);
274
- get distortion(): number;
275
- set distortion(v: number);
276
- get mixContrast(): number;
277
- set mixContrast(v: number);
278
- get blurRadius(): number;
279
- set blurRadius(v: number);
280
- get reflectorTarget(): THREE.Object3D;
281
213
  }
282
214
 
283
215
  declare module '@react-three/fiber' {
@@ -320,6 +252,7 @@ type MeshRefractionMaterialType = Omit<ThreeElements['meshPhysicalMaterial'], 'a
320
252
  fastChroma?: boolean;
321
253
  tintColor?: THREE.ColorRepresentation;
322
254
  opacity?: number;
255
+ args?: [fastChroma?: boolean];
323
256
  };
324
257
  type MeshRefractionMaterialProps = Omit<MeshRefractionMaterialType, 'ref'>;
325
258
  declare module '@react-three/fiber' {
@@ -327,38 +260,17 @@ declare module '@react-three/fiber' {
327
260
  meshRefractionMaterial: MeshRefractionMaterialType;
328
261
  }
329
262
  }
330
- declare class MeshRefractionMaterialImpl extends MeshPhysicalNodeMaterial {
331
- private _envMap;
332
- private _bounces;
333
- private _ior;
334
- private _fresnel;
335
- private _aberrationStrength;
336
- private _color;
337
- private _opacityValue;
338
- private _resolution;
339
- private _thickness;
263
+ declare const MeshRefractionMaterialImpl_base: WithUniforms<typeof THREE.MeshPhysicalNodeMaterial, {
264
+ bounces: () => THREE.UniformNode<"float", number>;
265
+ fresnel: () => THREE.UniformNode<"float", number>;
266
+ aberrationStrength: () => THREE.UniformNode<"float", number>;
267
+ tintColor: () => THREE.UniformNode<"color", THREE.Color>;
268
+ }>;
269
+ declare class MeshRefractionMaterialImpl extends MeshRefractionMaterialImpl_base {
340
270
  private _fastChroma;
341
271
  readonly isMeshRefractionMaterial = true;
342
272
  constructor(fastChroma?: boolean);
343
273
  private _buildRefractionShader;
344
- get envMap(): THREE.Texture | THREE.CubeTexture | null;
345
- set envMap(v: THREE.Texture | THREE.CubeTexture | null);
346
- get bounces(): number;
347
- set bounces(v: number);
348
- get ior(): number;
349
- set ior(v: number);
350
- get fresnel(): number;
351
- set fresnel(v: number);
352
- get aberrationStrength(): number;
353
- set aberrationStrength(v: number);
354
- get tintColor(): THREE.Color;
355
- set tintColor(v: THREE.Color | THREE.ColorRepresentation);
356
- get opacity(): number;
357
- set opacity(v: number);
358
- get resolution(): THREE.Vector2;
359
- set resolution(v: THREE.Vector2);
360
- get thickness(): number;
361
- set thickness(v: number);
362
274
  }
363
275
  declare const MeshRefractionMaterial: ForwardRefComponent<MeshRefractionMaterialProps, MeshRefractionMaterialImpl>;
364
276
 
@@ -372,41 +284,26 @@ type PortalProps = Omit<ThreeElements['meshBasicMaterial'], 'ref'> & {
372
284
  events?: boolean;
373
285
  children?: React.ReactNode;
374
286
  };
375
- declare class PortalMaterialImpl extends MeshBasicNodeMaterial {
376
- private _blur;
377
- private _map;
378
- private _sdf;
379
- private _blend;
380
- private _size;
381
- private _resolution;
287
+ declare const PortalMaterialImpl_base: WithUniforms<typeof THREE.MeshBasicNodeMaterial, {
288
+ blur: () => THREE.UniformNode<"float", number>;
289
+ sdf: () => THREE.TextureNode<"vec4">;
290
+ blend: () => THREE.UniformNode<"float", number>;
291
+ size: () => THREE.UniformNode<"float", number>;
292
+ resolution: () => THREE.UniformNode<"vec2", THREE.Vector2>;
293
+ }>;
294
+ declare class PortalMaterialImpl extends PortalMaterialImpl_base {
382
295
  constructor();
383
296
  private _buildShader;
384
- get blur(): number;
385
- set blur(v: number);
386
- get map(): THREE.Texture | null;
387
- set map(v: THREE.Texture | null);
388
- get sdf(): THREE.Texture | null;
389
- set sdf(v: THREE.Texture | null);
390
- get blend(): number;
391
- set blend(v: number);
392
- get size(): number;
393
- set size(v: number);
394
- get resolution(): THREE.Vector2 | [number, number];
395
- set resolution(v: THREE.Vector2 | [number, number]);
396
297
  }
397
298
  declare const MeshPortalMaterial: ForwardRefComponent<PortalProps, PortalMaterialImpl>;
398
299
 
399
- declare class DistortMaterialImplWebGPU extends THREE.MeshPhysicalNodeMaterial {
400
- timeUniform: ReturnType<typeof uniform>;
401
- distortUniform: ReturnType<typeof uniform>;
402
- radiusUniform: ReturnType<typeof uniform>;
300
+ declare const DistortMaterialImplWebGPU_base: WithUniforms<typeof THREE.MeshPhysicalNodeMaterial, {
301
+ time: () => THREE.UniformNode<"float", number>;
302
+ distort: () => THREE.UniformNode<"float", number>;
303
+ radius: () => THREE.UniformNode<"float", number>;
304
+ }>;
305
+ declare class DistortMaterialImplWebGPU extends DistortMaterialImplWebGPU_base {
403
306
  constructor(parameters?: THREE.MeshPhysicalMaterialParameters);
404
- get time(): unknown;
405
- set time(v: unknown);
406
- get distort(): unknown;
407
- set distort(v: unknown);
408
- get radius(): unknown;
409
- set radius(v: unknown);
410
307
  }
411
308
  declare module '@react-three/fiber' {
412
309
  interface ThreeElements {
@@ -423,14 +320,12 @@ type MeshDistortMaterialProps = Omit<ThreeElements['distortMaterialImplWebGPU'],
423
320
  };
424
321
  declare const MeshDistortMaterial: ForwardRefComponent<MeshDistortMaterialProps, DistortMaterialImplWebGPU>;
425
322
 
426
- declare class WobbleMaterialImpl extends THREE.MeshStandardNodeMaterial {
427
- timeUniform: ReturnType<typeof uniform>;
428
- factorUniform: ReturnType<typeof uniform>;
323
+ declare const WobbleMaterialImpl_base: WithUniforms<typeof THREE.MeshStandardNodeMaterial, {
324
+ time: () => THREE.UniformNode<"float", number>;
325
+ factor: () => THREE.UniformNode<"float", number>;
326
+ }>;
327
+ declare class WobbleMaterialImpl extends WobbleMaterialImpl_base {
429
328
  constructor(parameters?: THREE.MeshStandardMaterialParameters);
430
- get time(): unknown;
431
- set time(v: unknown);
432
- get factor(): unknown;
433
- set factor(v: unknown);
434
329
  }
435
330
  declare module '@react-three/fiber' {
436
331
  interface ThreeElements {
@@ -447,7 +342,7 @@ type WobbleMaterialProps = Omit<ThreeElements['meshStandardMaterial'], 'ref'> &
447
342
  };
448
343
  declare const MeshWobbleMaterial: ForwardRefComponent<WobbleMaterialProps, WobbleMaterialImpl>;
449
344
 
450
- declare function FakeCloudMaterial(BaseMaterial: typeof Material): Material;
345
+ declare function FakeCloudMaterial(BaseMaterial: typeof Material): Material<three.MaterialEventMap>;
451
346
 
452
347
  type OutlinesProps = Omit<ThreeElements['group'], 'ref'> & {
453
348
  color?: ReactThreeFiber.Color;
@@ -501,7 +396,7 @@ type RenderCubeTextureProps = Omit<ThreeElements['texture'], 'ref' | 'args' | 'r
501
396
  };
502
397
  type RenderCubeTextureApi = {
503
398
  scene: THREE.Scene;
504
- fbo: THREE.WebGLCubeRenderTarget;
399
+ fbo: CubeRenderTarget;
505
400
  camera: THREE.CubeCamera;
506
401
  };
507
402
  declare const RenderCubeTexture: ForwardRefComponent<RenderCubeTextureProps, RenderCubeTextureApi>;
@@ -577,7 +472,7 @@ type CubeCameraProps = Omit<ThreeElements['group'], 'children'> & {
577
472
  frames?: number;
578
473
  } & CubeCameraOptions;
579
474
  declare function useCubeCamera({ resolution, near, far, envMap, fog }?: CubeCameraOptions): {
580
- fbo: WebGLCubeRenderTarget;
475
+ fbo: CubeRenderTarget;
581
476
  camera: CubeCamera$1;
582
477
  update: () => void;
583
478
  };
@@ -638,10 +533,6 @@ type DeviceOrientationControlsProps = Omit<ThreeElement<typeof DeviceOrientation
638
533
  };
639
534
  declare const DeviceOrientationControls: ForwardRefComponent<DeviceOrientationControlsProps, DeviceOrientationControls$1>;
640
535
 
641
- type ExpandedDragConfig = DragConfig & {
642
- preventOverlap?: boolean;
643
- };
644
-
645
536
  type State = object;
646
537
  type StateSelector<T extends State, U> = (state: T) => U;
647
538
  type EqualityChecker<T> = (state: T, newState: T) => boolean;
@@ -796,6 +687,7 @@ type CloudsProps = Omit<ThreeElements['group'], 'ref'> & {
796
687
  frustumCulled?: boolean;
797
688
  };
798
689
  type CloudProps = Omit<ThreeElements['group'], 'ref'> & {
690
+ materialFactory?: (baseMaterial: typeof Material) => Material;
799
691
  seed?: number;
800
692
  segments?: number;
801
693
  bounds?: ReactThreeFiber.Vector3;
@@ -813,9 +705,52 @@ type CloudProps = Omit<ThreeElements['group'], 'ref'> & {
813
705
  opacity?: number;
814
706
  color?: ReactThreeFiber.Color;
815
707
  };
816
- declare const Clouds: React.ForwardRefExoticComponent<Omit<CloudsProps, "ref"> & React.RefAttributes<Group<three.Object3DEventMap>>>;
817
- declare const CloudInstance: React.ForwardRefExoticComponent<Omit<CloudProps, "ref"> & React.RefAttributes<Group<three.Object3DEventMap>>>;
818
- declare const Cloud: React.ForwardRefExoticComponent<Omit<CloudProps, "ref"> & React.RefAttributes<Group<three.Object3DEventMap>>>;
708
+ declare const Clouds: React.ForwardRefExoticComponent<Omit<_react_three_fiber.Mutable<_react_three_fiber.Overwrite<Partial<_react_three_fiber.Overwrite<Group<three.Object3DEventMap>, _react_three_fiber.MathProps<Group<three.Object3DEventMap>> & _react_three_fiber.ReactProps<Group<three.Object3DEventMap>> & Partial<_react_three_fiber.EventHandlers> & _react_three_fiber.NodeProps<Group<three.Object3DEventMap>>>>, Omit<_react_three_fiber.InstanceProps<Group<three.Object3DEventMap>, typeof Group>, "object">>>, "ref"> & {
709
+ texture?: string;
710
+ limit?: number;
711
+ range?: number;
712
+ material?: typeof Material;
713
+ materialFactory?: (baseMaterial: typeof Material) => Material;
714
+ frustumCulled?: boolean;
715
+ } & React.RefAttributes<Group<three.Object3DEventMap>>>;
716
+ declare const CloudInstance: React.ForwardRefExoticComponent<Omit<_react_three_fiber.Mutable<_react_three_fiber.Overwrite<Partial<_react_three_fiber.Overwrite<Group<three.Object3DEventMap>, _react_three_fiber.MathProps<Group<three.Object3DEventMap>> & _react_three_fiber.ReactProps<Group<three.Object3DEventMap>> & Partial<_react_three_fiber.EventHandlers> & _react_three_fiber.NodeProps<Group<three.Object3DEventMap>>>>, Omit<_react_three_fiber.InstanceProps<Group<three.Object3DEventMap>, typeof Group>, "object">>>, "ref"> & {
717
+ materialFactory?: (baseMaterial: typeof Material) => Material;
718
+ seed?: number;
719
+ segments?: number;
720
+ bounds?: ReactThreeFiber.Vector3;
721
+ concentrate?: "random" | "inside" | "outside";
722
+ scale?: ReactThreeFiber.Vector3;
723
+ volume?: number;
724
+ smallestVolume?: number;
725
+ distribute?: (cloud: CloudState, index: number) => {
726
+ point: Vector3$1;
727
+ volume?: number;
728
+ };
729
+ growth?: number;
730
+ speed?: number;
731
+ fade?: number;
732
+ opacity?: number;
733
+ color?: ReactThreeFiber.Color;
734
+ } & React.RefAttributes<Group<three.Object3DEventMap>>>;
735
+ declare const Cloud: React.ForwardRefExoticComponent<Omit<_react_three_fiber.Mutable<_react_three_fiber.Overwrite<Partial<_react_three_fiber.Overwrite<Group<three.Object3DEventMap>, _react_three_fiber.MathProps<Group<three.Object3DEventMap>> & _react_three_fiber.ReactProps<Group<three.Object3DEventMap>> & Partial<_react_three_fiber.EventHandlers> & _react_three_fiber.NodeProps<Group<three.Object3DEventMap>>>>, Omit<_react_three_fiber.InstanceProps<Group<three.Object3DEventMap>, typeof Group>, "object">>>, "ref"> & {
736
+ materialFactory?: (baseMaterial: typeof Material) => Material;
737
+ seed?: number;
738
+ segments?: number;
739
+ bounds?: ReactThreeFiber.Vector3;
740
+ concentrate?: "random" | "inside" | "outside";
741
+ scale?: ReactThreeFiber.Vector3;
742
+ volume?: number;
743
+ smallestVolume?: number;
744
+ distribute?: (cloud: CloudState, index: number) => {
745
+ point: Vector3$1;
746
+ volume?: number;
747
+ };
748
+ growth?: number;
749
+ speed?: number;
750
+ fade?: number;
751
+ opacity?: number;
752
+ color?: ReactThreeFiber.Color;
753
+ } & React.RefAttributes<Group<three.Object3DEventMap>>>;
819
754
 
820
755
  type CatmullRomLineProps = Omit<LineProps, 'ref' | 'segments'> & {
821
756
  closed?: boolean;
@@ -935,25 +870,25 @@ type Args<T> = T extends new (...args: any) => any ? ConstructorParameters<T> :
935
870
  type ShapeProps<T> = Omit<ThreeElements['mesh'], 'ref' | 'args'> & {
936
871
  args?: Args<T>;
937
872
  };
938
- declare const Box: ForwardRefComponent<ShapeProps<typeof THREE.BoxGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
939
- declare const Circle: ForwardRefComponent<ShapeProps<typeof THREE.CircleGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
940
- declare const Cone: ForwardRefComponent<ShapeProps<typeof THREE.ConeGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
941
- declare const Cylinder: ForwardRefComponent<ShapeProps<typeof THREE.CylinderGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
942
- declare const Sphere: ForwardRefComponent<ShapeProps<typeof THREE.SphereGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
943
- declare const Plane: ForwardRefComponent<ShapeProps<typeof THREE.PlaneGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
944
- declare const Tube: ForwardRefComponent<ShapeProps<typeof THREE.TubeGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
945
- declare const Torus: ForwardRefComponent<ShapeProps<typeof THREE.TorusGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
946
- declare const TorusKnot: ForwardRefComponent<ShapeProps<typeof THREE.TorusKnotGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
947
- declare const Tetrahedron: ForwardRefComponent<ShapeProps<typeof THREE.TetrahedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
948
- declare const Ring: ForwardRefComponent<ShapeProps<typeof THREE.RingGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
949
- declare const Polyhedron: ForwardRefComponent<ShapeProps<typeof THREE.PolyhedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
950
- declare const Icosahedron: ForwardRefComponent<ShapeProps<typeof THREE.IcosahedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
951
- declare const Octahedron: ForwardRefComponent<ShapeProps<typeof THREE.OctahedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
952
- declare const Dodecahedron: ForwardRefComponent<ShapeProps<typeof THREE.DodecahedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
953
- declare const Extrude: ForwardRefComponent<ShapeProps<typeof THREE.ExtrudeGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
954
- declare const Lathe: ForwardRefComponent<ShapeProps<typeof THREE.LatheGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
955
- declare const Capsule: ForwardRefComponent<ShapeProps<typeof THREE.CapsuleGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
956
- declare const Shape: ForwardRefComponent<ShapeProps<typeof THREE.ShapeGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
873
+ declare const Box: ForwardRefComponent<ShapeProps<typeof THREE.BoxGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
874
+ declare const Circle: ForwardRefComponent<ShapeProps<typeof THREE.CircleGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
875
+ declare const Cone: ForwardRefComponent<ShapeProps<typeof THREE.ConeGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
876
+ declare const Cylinder: ForwardRefComponent<ShapeProps<typeof THREE.CylinderGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
877
+ declare const Sphere: ForwardRefComponent<ShapeProps<typeof THREE.SphereGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
878
+ declare const Plane: ForwardRefComponent<ShapeProps<typeof THREE.PlaneGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
879
+ declare const Tube: ForwardRefComponent<ShapeProps<typeof THREE.TubeGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
880
+ declare const Torus: ForwardRefComponent<ShapeProps<typeof THREE.TorusGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
881
+ declare const TorusKnot: ForwardRefComponent<ShapeProps<typeof THREE.TorusKnotGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
882
+ declare const Tetrahedron: ForwardRefComponent<ShapeProps<typeof THREE.TetrahedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
883
+ declare const Ring: ForwardRefComponent<ShapeProps<typeof THREE.RingGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
884
+ declare const Polyhedron: ForwardRefComponent<ShapeProps<typeof THREE.PolyhedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
885
+ declare const Icosahedron: ForwardRefComponent<ShapeProps<typeof THREE.IcosahedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
886
+ declare const Octahedron: ForwardRefComponent<ShapeProps<typeof THREE.OctahedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
887
+ declare const Dodecahedron: ForwardRefComponent<ShapeProps<typeof THREE.DodecahedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
888
+ declare const Extrude: ForwardRefComponent<ShapeProps<typeof THREE.ExtrudeGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
889
+ declare const Lathe: ForwardRefComponent<ShapeProps<typeof THREE.LatheGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
890
+ declare const Capsule: ForwardRefComponent<ShapeProps<typeof THREE.CapsuleGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
891
+ declare const Shape: ForwardRefComponent<ShapeProps<typeof THREE.ShapeGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
957
892
 
958
893
  type Glyph = {
959
894
  _cachedOutline: string[];
@@ -992,7 +927,8 @@ type Text3DProps = Omit<ThreeElements['mesh'], 'ref'> & {
992
927
  font: FontData | string;
993
928
  bevelSegments?: number;
994
929
  smooth?: number;
995
- } & Omit<TextGeometryParameters, 'font'>;
930
+ height?: number;
931
+ } & Omit<TextGeometryParameters, 'font' | 'depth'>;
996
932
  declare const Text3D: ForwardRefComponent<React.PropsWithChildren<Text3DProps & {
997
933
  letterSpacing?: number;
998
934
  lineHeight?: number;
@@ -1044,6 +980,12 @@ type OnDragStartProps = {
1044
980
  origin: THREE.Vector3;
1045
981
  directions: THREE.Vector3[];
1046
982
  };
983
+ type OnDragProps = {
984
+ local: THREE.Matrix4;
985
+ deltaLocal: THREE.Matrix4;
986
+ world: THREE.Matrix4;
987
+ deltaWorld: THREE.Matrix4;
988
+ };
1047
989
  type OnHoverProps = {
1048
990
  component: 'Arrow' | 'Slider' | 'Rotator' | 'Sphere';
1049
991
  axis: 0 | 1 | 2;
@@ -1074,8 +1016,8 @@ type PivotControlsProps = {
1074
1016
  annotations?: boolean;
1075
1017
  annotationsClass?: string;
1076
1018
  onDragStart?: (props: OnDragStartProps) => void;
1077
- onDrag?: (l: THREE.Matrix4, deltaL: THREE.Matrix4, w: THREE.Matrix4, deltaW: THREE.Matrix4) => void;
1078
- onDragEnd?: () => void;
1019
+ onDrag?: (props: OnDragProps) => void;
1020
+ onDragEnd?: (props: OnDragProps) => void;
1079
1021
  onHover?: (props: OnHoverProps) => void;
1080
1022
  depthTest?: boolean;
1081
1023
  renderOrder?: number;
@@ -1118,8 +1060,8 @@ type HelperType = Object3D & {
1118
1060
  dispose: () => void;
1119
1061
  };
1120
1062
  type HelperConstructor = new (...args: any[]) => any;
1121
- type HelperArgs<T> = T extends [infer _, ...infer R] ? R : never;
1122
- declare function useHelper<T extends HelperConstructor>(object3D: React.RefObject<Object3D> | Falsey, helperConstructor: T, ...args: HelperArgs<ConstructorParameters<T>>): React.RefObject<HelperType | null>;
1063
+ type HelperArgs<T> = T extends [infer _, ...infer R] ? R : [];
1064
+ declare function useHelper<T extends HelperConstructor>(object3D: React.RefObject<Object3D | null> | Falsey, helperConstructor: T, ...args: HelperArgs<ConstructorParameters<T>>): React.RefObject<HelperType | null>;
1123
1065
  type HelperProps<T extends HelperConstructor> = {
1124
1066
  type: T;
1125
1067
  args?: HelperArgs<ConstructorParameters<T>>;
@@ -1176,7 +1118,7 @@ declare class PositionMesh extends THREE.Group {
1176
1118
  get geometry(): THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap> | undefined;
1177
1119
  raycast(raycaster: THREE.Raycaster, intersects: THREE.Intersection[]): void;
1178
1120
  }
1179
- declare const Instance: React.ForwardRefExoticComponent<Omit<_react_three_fiber.Mutable<_react_three_fiber.Overwrite<Partial<_react_three_fiber.Overwrite<PositionMesh, _react_three_fiber.MathProps<PositionMesh> & _react_three_fiber.ReactProps<PositionMesh> & Partial<_react_three_fiber.EventHandlers>>>, Omit<_react_three_fiber.InstanceProps<PositionMesh, typeof PositionMesh>, "object">>>, "ref"> & {
1121
+ declare const Instance: React.ForwardRefExoticComponent<Omit<_react_three_fiber.Mutable<_react_three_fiber.Overwrite<Partial<_react_three_fiber.Overwrite<PositionMesh, _react_three_fiber.MathProps<PositionMesh> & _react_three_fiber.ReactProps<PositionMesh> & Partial<_react_three_fiber.EventHandlers> & _react_three_fiber.NodeProps<PositionMesh>>>, Omit<_react_three_fiber.InstanceProps<PositionMesh, typeof PositionMesh>, "object">>>, "ref"> & {
1180
1122
  context?: React.Context<Api$1>;
1181
1123
  } & React.RefAttributes<unknown>>;
1182
1124
  declare const Instances: ForwardRefComponent<InstancesProps, THREE.InstancedMesh>;
@@ -1185,10 +1127,21 @@ interface MergedProps extends Omit<InstancesProps, 'children'> {
1185
1127
  children: (...instances: [React.FC<InstanceProps> & Record<string, React.FC<InstanceProps>>, ...React.FC<InstanceProps>[]]) => React.ReactNode;
1186
1128
  }
1187
1129
  declare const Merged: ForwardRefComponent<MergedProps, THREE.Group>;
1188
- declare function createInstances<T = InstanceProps>(): readonly [React.ForwardRefExoticComponent<Omit<InstancesProps, "ref"> & React.RefAttributes<THREE.InstancedMesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.InstancedMeshEventMap>>>, React.ForwardRefExoticComponent<React.PropsWithoutRef<T & Omit<_react_three_fiber.Mutable<_react_three_fiber.Overwrite<Partial<_react_three_fiber.Overwrite<PositionMesh, _react_three_fiber.MathProps<PositionMesh> & _react_three_fiber.ReactProps<PositionMesh> & Partial<_react_three_fiber.EventHandlers>>>, Omit<_react_three_fiber.InstanceProps<PositionMesh, typeof PositionMesh>, "object">>>, "ref"> & {
1130
+ declare function createInstances<T = InstanceProps>(): readonly [React.ForwardRefExoticComponent<Omit<_react_three_fiber.Mutable<_react_three_fiber.Overwrite<Partial<_react_three_fiber.Overwrite<THREE.InstancedMesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.InstancedMeshEventMap>, _react_three_fiber.MathProps<THREE.InstancedMesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.InstancedMeshEventMap>> & _react_three_fiber.ReactProps<THREE.InstancedMesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.InstancedMeshEventMap>> & Partial<_react_three_fiber.EventHandlers> & _react_three_fiber.NodeProps<THREE.InstancedMesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.InstancedMeshEventMap>>>>, Omit<_react_three_fiber.InstanceProps<THREE.InstancedMesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.InstancedMeshEventMap>, typeof THREE.InstancedMesh>, "object">>>, "ref" | "args"> & {
1131
+ context?: React.Context<Api$1>;
1132
+ range?: number;
1133
+ limit?: number;
1134
+ frames?: number;
1135
+ } & React.RefAttributes<THREE.InstancedMesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.InstancedMeshEventMap>>>, React.ForwardRefExoticComponent<React.PropsWithoutRef<T & Omit<_react_three_fiber.Mutable<_react_three_fiber.Overwrite<Partial<_react_three_fiber.Overwrite<PositionMesh, _react_three_fiber.MathProps<PositionMesh> & _react_three_fiber.ReactProps<PositionMesh> & Partial<_react_three_fiber.EventHandlers> & _react_three_fiber.NodeProps<PositionMesh>>>, Omit<_react_three_fiber.InstanceProps<PositionMesh, typeof PositionMesh>, "object">>>, "ref"> & {
1189
1136
  context?: React.Context<Api$1>;
1190
1137
  }> & React.RefAttributes<PositionMesh & T>>];
1191
- declare const InstancedAttribute: React.ForwardRefExoticComponent<Omit<InstancedAttributeProps, "ref"> & React.RefAttributes<THREE.InstancedBufferAttribute>>;
1138
+ declare const InstancedAttribute: React.ForwardRefExoticComponent<Omit<_react_three_fiber.Mutable<_react_three_fiber.Overwrite<Partial<_react_three_fiber.Overwrite<THREE.InstancedBufferAttribute, _react_three_fiber.MathProps<THREE.InstancedBufferAttribute> & _react_three_fiber.ReactProps<THREE.InstancedBufferAttribute> & _react_three_fiber.NodeProps<THREE.InstancedBufferAttribute>>>, Omit<_react_three_fiber.InstanceProps<THREE.InstancedBufferAttribute, typeof THREE.InstancedBufferAttribute>, "object">>>, "ref" | "args"> & {
1139
+ name: string;
1140
+ defaultValue: any;
1141
+ normalized?: boolean;
1142
+ usage?: number;
1143
+ type?: "float" | "int" | "uint" | "short" | "ushort" | "byte";
1144
+ } & React.RefAttributes<THREE.InstancedBufferAttribute>>;
1192
1145
 
1193
1146
  type Size = {
1194
1147
  w: number;
@@ -1292,7 +1245,40 @@ type SpriteAnimatorState = {
1292
1245
  ref: React.Ref<THREE.Group>;
1293
1246
  };
1294
1247
  declare function useSpriteAnimator(): SpriteAnimatorState | null;
1295
- declare const SpriteAnimator: React.ForwardRefExoticComponent<Omit<SpriteAnimatorProps, "ref"> & React.RefAttributes<THREE.Group<THREE.Object3DEventMap>>>;
1248
+ declare const SpriteAnimator: React.ForwardRefExoticComponent<{
1249
+ startFrame?: number;
1250
+ endFrame?: number;
1251
+ fps?: number;
1252
+ frameName?: string;
1253
+ textureDataURL?: string;
1254
+ textureImageURL?: string;
1255
+ loop?: boolean;
1256
+ numberOfFrames?: number;
1257
+ autoPlay?: boolean;
1258
+ animationNames?: Array<string>;
1259
+ onStart?: (data: AnimationEventData) => void;
1260
+ onEnd?: (data: AnimationEventData) => void;
1261
+ onLoopEnd?: (data: AnimationEventData) => void;
1262
+ onFrame?: (data: AnimationEventData) => void;
1263
+ play?: boolean;
1264
+ pause?: boolean;
1265
+ flipX?: boolean;
1266
+ alphaTest?: number;
1267
+ asSprite?: boolean;
1268
+ offset?: number;
1269
+ playBackwards?: boolean;
1270
+ resetOnEnd?: boolean;
1271
+ instanceItems?: Vector3[];
1272
+ maxItems?: number;
1273
+ spriteDataset?: {
1274
+ spriteTexture: THREE.Texture;
1275
+ spriteData: SpriteData | null;
1276
+ aspect: Vector3;
1277
+ } | null;
1278
+ canvasRenderingContext2DSettings?: CanvasRenderingContext2DSettings;
1279
+ roundFramePosition?: boolean;
1280
+ meshProps?: CommonMeshProps;
1281
+ } & Omit<_react_three_fiber.Mutable<_react_three_fiber.Overwrite<Partial<_react_three_fiber.Overwrite<THREE.Group<THREE.Object3DEventMap>, _react_three_fiber.MathProps<THREE.Group<THREE.Object3DEventMap>> & _react_three_fiber.ReactProps<THREE.Group<THREE.Object3DEventMap>> & Partial<_react_three_fiber.EventHandlers> & _react_three_fiber.NodeProps<THREE.Group<THREE.Object3DEventMap>>>>, Omit<_react_three_fiber.InstanceProps<THREE.Group<THREE.Object3DEventMap>, typeof THREE.Group>, "object">>>, "ref"> & React.RefAttributes<THREE.Group<THREE.Object3DEventMap>>>;
1296
1282
 
1297
1283
  type Api<T extends AnimationClip> = {
1298
1284
  ref: React.RefObject<Object3D | undefined | null>;
@@ -1378,7 +1364,7 @@ declare const Svg: ForwardRefComponent<SvgProps, Object3D>;
1378
1364
  declare function useDepthBuffer({ size, frames }?: {
1379
1365
  size?: number;
1380
1366
  frames?: number;
1381
- }): DepthTexture | null;
1367
+ }): DepthTexture<three.DepthTextureImageData> | null;
1382
1368
 
1383
1369
  interface CubeTextureOptions {
1384
1370
  path: string;
@@ -1477,27 +1463,42 @@ declare function Fbx({ path, ...props }: {
1477
1463
  type Path = string | string[];
1478
1464
  type UseDraco = boolean | string;
1479
1465
  type UseMeshopt = boolean;
1466
+ type UseKTX2 = boolean | string;
1480
1467
  type ExtendLoader$1 = (loader: GLTFLoader) => void;
1481
- declare const useGLTF: {
1482
- <T extends Path>(path: T, useDraco?: UseDraco, useMeshopt?: UseMeshopt, extendLoader?: ExtendLoader$1): T extends any[] ? (GLTF & ObjectMap)[] : GLTF & ObjectMap;
1483
- preload(path: Path, useDraco?: UseDraco, useMeshopt?: UseMeshopt, extendLoader?: ExtendLoader$1): void;
1484
- clear(path: Path): void;
1485
- setDecoderPath(path: string): void;
1486
- };
1468
+ interface UseGLTFOptions {
1469
+ draco?: UseDraco;
1470
+ meshopt?: UseMeshopt;
1471
+ ktx2?: UseKTX2;
1472
+ extendLoader?: ExtendLoader$1;
1473
+ }
1474
+ declare function useGLTF<T extends Path>(path: T, optionsOrDraco?: UseGLTFOptions | UseDraco, useMeshoptArg?: UseMeshopt, useKTX2Arg?: UseKTX2, extendLoaderArg?: ExtendLoader$1): T extends any[] ? (GLTF & ObjectMap)[] : GLTF & ObjectMap;
1475
+ declare namespace useGLTF {
1476
+ var preload: (path: Path, optionsOrDraco?: UseGLTFOptions | UseDraco, useMeshoptArg?: UseMeshopt, useKTX2Arg?: UseKTX2, extendLoaderArg?: ExtendLoader$1) => void;
1477
+ var clear: (path: Path) => void;
1478
+ var setDecoderPath: (path: string) => void;
1479
+ var setKTX2TranscoderPath: (path: string) => void;
1480
+ }
1487
1481
  type GltfProps = Omit<CloneProps, 'object'> & {
1488
1482
  src: string;
1489
1483
  useDraco?: UseDraco;
1490
1484
  useMeshOpt?: UseMeshopt;
1491
1485
  extendLoader?: ExtendLoader$1;
1486
+ options?: UseGLTFOptions;
1492
1487
  };
1493
- declare const Gltf: React.ForwardRefExoticComponent<Omit<GltfProps, "ref"> & React.RefAttributes<three.Group<three.Object3DEventMap>>>;
1488
+ declare const Gltf: React.ForwardRefExoticComponent<Omit<CloneProps, "object"> & {
1489
+ src: string;
1490
+ useDraco?: UseDraco;
1491
+ useMeshOpt?: UseMeshopt;
1492
+ extendLoader?: ExtendLoader$1;
1493
+ options?: UseGLTFOptions;
1494
+ } & React.RefAttributes<three.Group<three.Object3DEventMap>>>;
1494
1495
 
1495
1496
  type ExtendLoader = (loader: KTX2Loader) => void;
1496
1497
  declare function useKTX2<Url extends string[] | string | Record<string, string>>(input: Url, basisPath?: boolean | string, extendLoader?: ExtendLoader): Url extends any[] ? Texture$1[] : Url extends object ? {
1497
1498
  [key in keyof Url]: Texture$1;
1498
1499
  } : Texture$1;
1499
1500
  declare namespace useKTX2 {
1500
- var preload: (url: string extends any[] ? string[] : string, basisPath?: boolean | string, extendLoader?: ExtendLoader) => void;
1501
+ var preload: (url: string | string[], basisPath?: boolean | string, extendLoader?: ExtendLoader) => void;
1501
1502
  var clear: (input: string | string[]) => void;
1502
1503
  var setTranscoderPath: (path: string) => void;
1503
1504
  }
@@ -1623,7 +1624,7 @@ declare const StatsGl: ForwardRefComponent<StatsGlProps, HTMLDivElement>;
1623
1624
  type FBOSettings = {
1624
1625
  depth?: boolean;
1625
1626
  } & RenderTargetOptions;
1626
- declare function useFBO(width?: number | FBOSettings, height?: number, settings?: FBOSettings): THREE.WebGLRenderTarget<THREE.Texture<unknown>>;
1627
+ declare function useFBO(width?: number | FBOSettings, height?: number, settings?: FBOSettings): THREE.WebGLRenderTarget<THREE.Texture<unknown, THREE.TextureEventMap>>;
1627
1628
  type UseFBOParams = Parameters<typeof useFBO>;
1628
1629
  type FboProps = {
1629
1630
  children?: (target: Fbo) => React.ReactNode;
@@ -1637,7 +1638,7 @@ declare const Fbo: React.ForwardRefExoticComponent<{
1637
1638
  height?: UseFBOParams[1];
1638
1639
  } & {
1639
1640
  depth?: boolean;
1640
- } & THREE.RenderTargetOptions & React.RefAttributes<THREE.WebGLRenderTarget<THREE.Texture<unknown>>>>;
1641
+ } & THREE.RenderTargetOptions & React.RefAttributes<THREE.WebGLRenderTarget<THREE.Texture<unknown, THREE.TextureEventMap>>>>;
1641
1642
 
1642
1643
  type FisheyeProps = ThreeElements['mesh'] & {
1643
1644
  zoom?: number;
@@ -1657,7 +1658,7 @@ declare const Mask: ForwardRefComponent<MaskProps, THREE.Mesh>;
1657
1658
  declare function useMask(id: number, inverse?: boolean): {
1658
1659
  stencilWrite: boolean;
1659
1660
  stencilRef: number;
1660
- stencilFunc: 517 | 514;
1661
+ stencilFunc: 514 | 517;
1661
1662
  stencilFail: 7680;
1662
1663
  stencilZFail: 7680;
1663
1664
  stencilZPass: 7680;
@@ -1810,7 +1811,7 @@ type EnvironmentLoaderProps = {
1810
1811
  extensions?: (loader: Loader$1) => void;
1811
1812
  colorSpace?: ColorSpace;
1812
1813
  };
1813
- declare function useEnvironment({ files, path, preset, colorSpace, extensions, }?: Partial<EnvironmentLoaderProps>): Texture$1<unknown> | CubeTexture$1<unknown>;
1814
+ declare function useEnvironment({ files, path, preset, colorSpace, extensions, }?: Partial<EnvironmentLoaderProps>): Texture$1<unknown, three.TextureEventMap> | CubeTexture$1<unknown>;
1814
1815
  declare namespace useEnvironment {
1815
1816
  var preload: (preloadOptions?: EnvironmentLoaderPreloadOptions) => void;
1816
1817
  var clear: (clearOptions?: EnvironmentLoaderClearOptions) => void;
@@ -1881,7 +1882,13 @@ type ResizeProps = Omit<ThreeElements['group'], 'ref'> & {
1881
1882
  box3?: THREE.Box3;
1882
1883
  precise?: boolean;
1883
1884
  };
1884
- declare const Resize: React.ForwardRefExoticComponent<Omit<ResizeProps, "ref"> & React.RefAttributes<THREE.Group<THREE.Object3DEventMap>>>;
1885
+ declare const Resize: React.ForwardRefExoticComponent<Omit<_react_three_fiber.Mutable<_react_three_fiber.Overwrite<Partial<_react_three_fiber.Overwrite<THREE.Group<THREE.Object3DEventMap>, _react_three_fiber.MathProps<THREE.Group<THREE.Object3DEventMap>> & _react_three_fiber.ReactProps<THREE.Group<THREE.Object3DEventMap>> & Partial<_react_three_fiber.EventHandlers> & _react_three_fiber.NodeProps<THREE.Group<THREE.Object3DEventMap>>>>, Omit<_react_three_fiber.InstanceProps<THREE.Group<THREE.Object3DEventMap>, typeof THREE.Group>, "object">>>, "ref"> & {
1886
+ width?: boolean;
1887
+ height?: boolean;
1888
+ depth?: boolean;
1889
+ box3?: THREE.Box3;
1890
+ precise?: boolean;
1891
+ } & React.RefAttributes<THREE.Group<THREE.Object3DEventMap>>>;
1885
1892
 
1886
1893
  type ScreenSizerProps = Omit<ThreeElements['object3D'], 'ref'> & {
1887
1894
  scale?: number;
@@ -2012,55 +2019,27 @@ declare module '@react-three/fiber' {
2012
2019
  wireframeMaterial: WireframeMaterialType;
2013
2020
  }
2014
2021
  }
2015
- declare class WireframeMaterialImpl extends MeshBasicNodeMaterial {
2016
- private _strokeOpacity;
2017
- private _fillOpacity;
2018
- private _fillMix;
2019
- private _thickness;
2020
- private _colorBackfaces;
2021
- private _dashInvert;
2022
- private _dash;
2023
- private _dashRepeats;
2024
- private _dashLength;
2025
- private _squeeze;
2026
- private _squeezeMin;
2027
- private _squeezeMax;
2028
- private _stroke;
2029
- private _backfaceStroke;
2030
- private _fill;
2022
+ declare const WireframeMaterialImpl_base: WithUniforms<typeof THREE.MeshBasicNodeMaterial, {
2023
+ strokeOpacity: () => THREE.UniformNode<"float", number>;
2024
+ fillOpacity: () => THREE.UniformNode<"float", number>;
2025
+ fillMix: () => THREE.UniformNode<"float", number>;
2026
+ thickness: () => THREE.UniformNode<"float", number>;
2027
+ colorBackfaces: () => THREE.UniformNode<"bool", boolean>;
2028
+ dashInvert: () => THREE.UniformNode<"bool", boolean>;
2029
+ dash: () => THREE.UniformNode<"bool", boolean>;
2030
+ dashRepeats: () => THREE.UniformNode<"float", number>;
2031
+ dashLength: () => THREE.UniformNode<"float", number>;
2032
+ squeeze: () => THREE.UniformNode<"bool", boolean>;
2033
+ squeezeMin: () => THREE.UniformNode<"float", number>;
2034
+ squeezeMax: () => THREE.UniformNode<"float", number>;
2035
+ stroke: () => THREE.UniformNode<"color", THREE.Color>;
2036
+ backfaceStroke: () => THREE.UniformNode<"color", THREE.Color>;
2037
+ fill: () => THREE.UniformNode<"color", THREE.Color>;
2038
+ }>;
2039
+ declare class WireframeMaterialImpl extends WireframeMaterialImpl_base {
2031
2040
  readonly isWireframeMaterial = true;
2032
2041
  constructor();
2033
2042
  private _buildWireframeShader;
2034
- get strokeOpacity(): number;
2035
- set strokeOpacity(v: number);
2036
- get fillOpacity(): number;
2037
- set fillOpacity(v: number);
2038
- get fillMix(): number;
2039
- set fillMix(v: number);
2040
- get thickness(): number;
2041
- set thickness(v: number);
2042
- get colorBackfaces(): boolean;
2043
- set colorBackfaces(v: boolean);
2044
- get dashInvert(): boolean;
2045
- set dashInvert(v: boolean);
2046
- get dash(): boolean;
2047
- set dash(v: boolean);
2048
- get dashRepeats(): number;
2049
- set dashRepeats(v: number);
2050
- get dashLength(): number;
2051
- set dashLength(v: number);
2052
- get squeeze(): boolean;
2053
- set squeeze(v: boolean);
2054
- get squeezeMin(): number;
2055
- set squeezeMin(v: number);
2056
- get squeezeMax(): number;
2057
- set squeezeMax(v: number);
2058
- get stroke(): THREE.Color;
2059
- set stroke(v: THREE.Color | THREE.ColorRepresentation);
2060
- get backfaceStroke(): THREE.Color;
2061
- set backfaceStroke(v: THREE.Color | THREE.ColorRepresentation);
2062
- get fill(): THREE.Color;
2063
- set fill(v: THREE.Color | THREE.ColorRepresentation);
2064
2043
  }
2065
2044
  declare function setBarycentricCoordinates(geometry: THREE.BufferGeometry): THREE.BufferGeometry;
2066
2045
  declare const WireframeMaterial: ForwardRefComponent<WireframeMaterialProps, WireframeMaterialImpl>;
@@ -2100,57 +2079,34 @@ declare function Wireframe({ geometry: customGeometry, ...props }: WireframeProp
2100
2079
 
2101
2080
  declare function BakeShadows(): null;
2102
2081
 
2103
- declare class ConvolutionMaterial extends MeshBasicNodeMaterial {
2104
- private _inputBuffer;
2105
- private _depthBuffer;
2106
- private _resolution;
2107
- private _texelSize;
2108
- private _halfTexelSize;
2109
- private _kernel;
2110
- private _scale;
2111
- private _cameraNear;
2112
- private _cameraFar;
2113
- private _minDepthThreshold;
2114
- private _maxDepthThreshold;
2115
- private _depthScale;
2116
- private _depthToBlurRatioBias;
2117
- private _useDepth;
2082
+ declare const ConvolutionMaterial_base: WithUniforms<typeof THREE.MeshBasicNodeMaterial, {
2083
+ inputBuffer: () => THREE.TextureNode<"vec4">;
2084
+ depthBuffer: () => THREE.TextureNode<"vec4">;
2085
+ resolution: () => THREE.UniformNode<"vec2", THREE.Vector2>;
2086
+ texelSize: () => THREE.UniformNode<"vec2", THREE.Vector2>;
2087
+ halfTexelSize: () => THREE.UniformNode<"vec2", THREE.Vector2>;
2088
+ kernelValue: () => THREE.UniformNode<"float", number>;
2089
+ scale: () => THREE.UniformNode<"float", number>;
2090
+ cameraNear: () => THREE.UniformNode<"float", number>;
2091
+ cameraFar: () => THREE.UniformNode<"float", number>;
2092
+ minDepthThreshold: () => THREE.UniformNode<"float", number>;
2093
+ maxDepthThreshold: () => THREE.UniformNode<"float", number>;
2094
+ depthScale: () => THREE.UniformNode<"float", number>;
2095
+ depthToBlurRatioBias: () => THREE.UniformNode<"float", number>;
2096
+ useDepth: () => THREE.UniformNode<"bool", boolean>;
2097
+ }>;
2098
+ declare class ConvolutionMaterial extends ConvolutionMaterial_base {
2118
2099
  readonly kernel: Float32Array;
2119
2100
  constructor(texelSize?: THREE.Vector2);
2120
2101
  private _buildShader;
2121
2102
  setTexelSize(x: number, y: number): void;
2122
2103
  setResolution(resolution: THREE.Vector2): void;
2123
- get inputBuffer(): THREE.Texture | null;
2124
- set inputBuffer(v: THREE.Texture | null);
2125
- get depthBuffer(): THREE.Texture | null;
2126
- set depthBuffer(v: THREE.Texture | null);
2127
- get resolution(): THREE.Vector2;
2128
- set resolution(v: THREE.Vector2);
2129
- get texelSize(): THREE.Vector2;
2130
- set texelSize(v: THREE.Vector2);
2131
- get halfTexelSize(): THREE.Vector2;
2132
- set halfTexelSize(v: THREE.Vector2);
2133
- get kernelValue(): number;
2134
- set kernelValue(v: number);
2135
- get scale(): number;
2136
- set scale(v: number);
2137
- get cameraNear(): number;
2138
- set cameraNear(v: number);
2139
- get cameraFar(): number;
2140
- set cameraFar(v: number);
2141
- get minDepthThreshold(): number;
2142
- set minDepthThreshold(v: number);
2143
- get maxDepthThreshold(): number;
2144
- set maxDepthThreshold(v: number);
2145
- get depthScale(): number;
2146
- set depthScale(v: number);
2147
- get depthToBlurRatioBias(): number;
2148
- set depthToBlurRatioBias(v: number);
2149
- get useDepth(): boolean;
2150
- set useDepth(v: boolean);
2151
2104
  }
2152
2105
 
2153
- declare const DiscardMaterial: MeshBasicNodeMaterial;
2106
+ declare class DiscardNodeMaterial extends MeshBasicNodeMaterial {
2107
+ constructor();
2108
+ }
2109
+ declare const DiscardMaterial: DiscardNodeMaterial;
2154
2110
 
2155
2111
  declare enum GradientType {
2156
2112
  Linear = "linear",
@@ -2164,7 +2120,7 @@ type GradientTextureProps = {
2164
2120
  type?: GradientType;
2165
2121
  innerCircleRadius?: number;
2166
2122
  outerCircleRadius?: number | 'auto';
2167
- } & Omit<ThreeElements['canvasTexture'], 'args'>;
2123
+ } & Omit<ThreeElements['canvasTexture'], 'args' | 'type'>;
2168
2124
  declare function GradientTexture({ stops, colors, size, width, type, innerCircleRadius, outerCircleRadius, ...props }: GradientTextureProps): React.JSX.Element;
2169
2125
 
2170
2126
  type ImageProps = Omit<ThreeElements['mesh'], 'scale'> & {
@@ -2187,64 +2143,37 @@ type ImageProps = Omit<ThreeElements['mesh'], 'scale'> & {
2187
2143
  });
2188
2144
  declare const Image: ForwardRefComponent<ImageProps, THREE.Mesh>;
2189
2145
 
2190
- declare class SpotLightMaterial extends MeshBasicNodeMaterial {
2191
- private _depth;
2192
- private _opacity;
2193
- private _attenuation;
2194
- private _anglePower;
2195
- private _spotPosition;
2196
- private _lightColor;
2197
- private _cameraNear;
2198
- private _cameraFar;
2199
- private _resolution;
2146
+ declare const SpotLightMaterial_base: WithUniforms<typeof THREE.MeshBasicNodeMaterial, {
2147
+ depth: () => THREE.TextureNode<"vec4">;
2148
+ attenuation: () => THREE.UniformNode<"float", number>;
2149
+ anglePower: () => THREE.UniformNode<"float", number>;
2150
+ spotPosition: () => THREE.UniformNode<"vec3", THREE.Vector3>;
2151
+ lightColor: () => THREE.UniformNode<"color", THREE.Color>;
2152
+ cameraNear: () => THREE.UniformNode<"float", number>;
2153
+ cameraFar: () => THREE.UniformNode<"float", number>;
2154
+ resolution: () => THREE.UniformNode<"vec2", THREE.Vector2>;
2155
+ }>;
2156
+ declare class SpotLightMaterial extends SpotLightMaterial_base {
2200
2157
  constructor();
2201
2158
  private _buildShader;
2202
- get depth(): THREE.Texture | null;
2203
- set depth(v: THREE.Texture | null);
2204
- get opacity(): number;
2205
- set opacity(v: number);
2206
- get attenuation(): number;
2207
- set attenuation(v: number);
2208
- get anglePower(): number;
2209
- set anglePower(v: number);
2210
- get spotPosition(): THREE.Vector3;
2211
- set spotPosition(v: THREE.Vector3);
2212
- get lightColor(): THREE.Color;
2213
- set lightColor(v: THREE.Color);
2214
- get cameraNear(): number;
2215
- set cameraNear(v: number);
2216
- get cameraFar(): number;
2217
- set cameraFar(v: number);
2218
- get resolution(): THREE.Vector2;
2219
- set resolution(v: THREE.Vector2);
2220
2159
  }
2221
2160
 
2222
- declare class StarfieldMaterial extends SpriteNodeMaterial {
2223
- private _time;
2224
- private _fade;
2225
- positionNode: ReturnType<typeof Fn>;
2226
- scaleNode: ReturnType<typeof Fn>;
2227
- colorNode: ReturnType<typeof Fn>;
2161
+ declare const StarfieldMaterial_base: WithUniforms<typeof SpriteNodeMaterial, {
2162
+ time: () => THREE.UniformNode<"float", number>;
2163
+ fade: () => THREE.UniformNode<"float", number>;
2164
+ }>;
2165
+ declare class StarfieldMaterial extends StarfieldMaterial_base {
2228
2166
  constructor();
2229
2167
  setTime(time: number): void;
2230
2168
  setFade(fade: number): void;
2231
- get time(): number;
2232
- set time(value: number);
2233
- get fade(): number;
2234
- set fade(value: number);
2235
2169
  }
2236
2170
 
2237
- declare class SparklesMaterial extends SpriteNodeMaterial {
2238
- private _time;
2239
- private _pixelRatio;
2240
- positionNode: ReturnType<typeof Fn>;
2241
- scaleNode: ReturnType<typeof Fn>;
2242
- colorNode: ReturnType<typeof Fn>;
2171
+ declare const SparklesMaterial_base: WithUniforms<typeof SpriteNodeMaterial, {
2172
+ time: () => THREE.UniformNode<"float", number>;
2173
+ pixelRatio: () => THREE.UniformNode<"float", number>;
2174
+ }>;
2175
+ declare class SparklesMaterial extends SparklesMaterial_base {
2243
2176
  constructor();
2244
- get time(): number;
2245
- set time(value: number);
2246
- get pixelRatio(): number;
2247
- set pixelRatio(value: number);
2248
2177
  }
2249
2178
 
2250
2179
  type GridMaterialType = {
@@ -2271,7 +2200,7 @@ type SoftShadowsProps = {
2271
2200
  samples?: number;
2272
2201
  focus?: number;
2273
2202
  };
2274
- declare function SoftShadows(props: SoftShadowsProps): null;
2203
+ declare function SoftShadows({ size, samples, focus }: SoftShadowsProps): null;
2275
2204
 
2276
2205
  type SpotLightProps = Omit<ThreeElements['spotLight'], 'ref'> & {
2277
2206
  depthBuffer?: Texture$1;
@@ -2319,4 +2248,4 @@ type SparklesProps = Omit<ThreeElements['mesh'], 'ref'> & {
2319
2248
  declare const Sparkles: ForwardRefComponent<SparklesProps, THREE.InstancedMesh>;
2320
2249
 
2321
2250
  export { AccumulativeShadows, AdaptiveDpr, AdaptiveEvents, BBAnchor, Backdrop, BakeShadows, Billboard, Bounds, Box, CameraShake, Capsule, CatmullRomLine, CausticsMaterial, CausticsNormalMaterial, CausticsProjectionMaterial, Center, Circle, Clone, Cloud, CloudInstance, Clouds, ComputedAttribute, Cone, ContactShadows, ConvolutionMaterial, CubeCamera, CubeTexture, CubicBezierLine, CurveModifier, CycleRaycast, Cylinder, Decal, Detailed, DetectGPU, DeviceOrientationControls, DiscardMaterial, Dodecahedron, Edges, Environment, EnvironmentCube, EnvironmentMap, EnvironmentPortal, Example, Extrude, FakeCloudMaterial, Fbo, Fbx, Fisheye, Float, GizmoHelper, GizmoViewcube, GizmoViewport, Gltf, GradientTexture, GradientType, Grid, Helper, Hud, Icosahedron, Image, Instance, InstancedAttribute, Instances, IsObject, Ktx2, Lathe, Lightformer, Line, Loader, Mask, MatcapTexture, Merged, MeshDistortMaterial, MeshPortalMaterial, MeshReflectorMaterial, MeshReflectorMaterial$1 as MeshReflectorMaterialImpl, MeshRefractionMaterial, MeshTransmissionMaterial, MeshWobbleMaterial, MotionPathControls, NormalTexture, Octahedron, OrthographicCamera, Outlines, PerformanceMonitor, PerspectiveCamera, PivotControls, Plane, Point, PointMaterial, PointMaterialImpl, Points, PointsBuffer, Polyhedron, PositionMesh, PositionPoint, PositionalAudio, Preload, PresentationControls, Progress, QuadraticBezierLine, RandomizedLight, RenderCubeTexture, RenderTexture, Resize, Ring, RoundedBox, RoundedBoxGeometry, Sampler, ScreenQuad, ScreenSizer, ScreenSpace, ScreenVideoTexture, Scroll, Segment, SegmentObject, Segments, Select, Shadow, Shape, Sky, SoftShadows, Sparkles, SparklesMaterial, Sphere, SpotLight, SpotLightMaterial, SpriteAnimator, Stage, StarfieldMaterial, Stars, Stats, StatsGl, Svg, Tetrahedron, Text3D, Texture, Torus, TorusKnot, Trail, TrailTexture, TransformControls, Tube, VideoTexture, View, WebcamVideoTexture, Wireframe, WireframeMaterial, WireframeMaterialShaders, accumulativeContext, calcPosFromAngles, checkIfFrameIsEmpty, createInstances, getFirstFrame, meshBounds, presetsObj, setBarycentricCoordinates, setWireframeOverride, useAnimations, useAspect, useBounds, useContextBridge, useCubeCamera, useCubeTexture, useCursor, useCustomRaycast, useDepthBuffer, useDetectGPU, useEnvironment, useFBO, useFBX, useFont, useGLTF, useGizmoContext, useHelper, useIntersect, useKTX2, useKeyboardControls, useMask, useMatcapTexture, useMotion, useNormalTexture, usePerformanceMonitor, useProgress, useScroll, useSelect, useSpriteAnimator, useSpriteLoader, useSurfaceSampler, useTexture, useTrail, useTrailTexture, useVideoTexture, useWireframeUniforms };
2322
- export type { AccumulativeShadowsProps, Args, BBAnchorProps, BackdropProps, BillboardProps, BoundsApi, BoundsProps, CalculatePosition, CameraShakeProps, CatmullRomLineProps, CenterProps, CloneProps, CloudProps, CloudsProps, ComputedAttributeProps, ContactShadowsProps, ContainerProps, CubeCameraOptions, CubeCameraProps, CubeTextureProps, CubicBezierLineProps, CurveModifierProps, CurveModifierRef, CycleRaycastProps, DecalProps, DetailedProps, DetectGPUProps, DeviceOrientationControlsProps, EdgesProps, EdgesRef, EnvironmentLoaderProps, EnvironmentProps, ExampleApi, ExampleProps, ExpandedDragConfig, FboProps, FisheyeProps, FloatProps, FontData, FrameData, GizmoHelperProps, GltfProps, Glyph, GradientTextureProps, GridMaterialType, GridProps, HelperProps, HudProps, ImageProps, InstanceProps, InstancedAttributeProps, InstancesProps, KeyboardControlsEntry, LightProps, LineProps, LoaderOptions, MaskProps, MergedProps, MeshDistortMaterialProps, MeshReflectorMaterialProps, MeshRefractionMaterialProps, MeshRefractionMaterialType, MeshTransmissionMaterialProps, MetaData, MotionPathProps, MotionPathRef, OnCenterCallbackProps, OnDragStartProps, OnHoverProps, OrbitControlsChangeEvent, OrthographicCameraProps, OutlinesProps, PerformanceMonitorApi, PerformanceMonitorProps, PerspectiveCameraProps, PivotControlsProps, PointMaterialProps, PointsBuffersProps, PointsInstancesProps, PortalProps, PositionalAudioProps, PreloadProps, PresentationControlProps, PresetsType, QuadraticBezierLineProps, QuadraticBezierLineRef, RandomizedLightProps, RenderCubeTextureApi, RenderCubeTextureProps, RenderTextureProps, ResizeProps, RoundedBoxGeometryProps, RoundedBoxProps, SamplerProps, ScreenQuadProps, ScreenSizerProps, ScreenSpaceProps, ScreenVideoTextureProps, ScrollControlsState, ScrollProps, SegmentProps, SegmentsProps, SelectProps, ShadowProps, ShadowType, ShakeController, ShapeProps, Size, SizeProps, SkyProps, SoftShadowsProps, SparklesProps, SpotLightProps, SpriteAnimatorProps, SpriteData, StageProps, StarsProps, StatsGlProps, StatsProps, SvgProps, Text3DProps, TrailProps, TrailTextureProps, TransformControlsProps, TransformFn, VideoTextureProps, ViewProps, ViewportProps, WebcamVideoTextureProps, WireframeMaterialProps, WireframeMaterialType, WobbleMaterialProps, useSurfaceSamplerProps };
2251
+ export type { AccumulativeShadowsProps, Args, BBAnchorProps, BackdropProps, BillboardProps, BoundsApi, BoundsProps, CalculatePosition, CameraShakeProps, CatmullRomLineProps, CenterProps, CloneProps, CloudProps, CloudsProps, ComputedAttributeProps, ContactShadowsProps, ContainerProps, CubeCameraOptions, CubeCameraProps, CubeTextureProps, CubicBezierLineProps, CurveModifierProps, CurveModifierRef, CycleRaycastProps, DecalProps, DetailedProps, DetectGPUProps, DeviceOrientationControlsProps, EdgesProps, EdgesRef, EnvironmentLoaderProps, EnvironmentProps, ExampleApi, ExampleProps, FboProps, FisheyeProps, FloatProps, FontData, FrameData, GizmoHelperProps, GltfProps, Glyph, GradientTextureProps, GridMaterialType, GridProps, HelperProps, HudProps, ImageProps, InstanceProps, InstancedAttributeProps, InstancesProps, KeyboardControlsEntry, LightProps, LineProps, LoaderOptions, MaskProps, MergedProps, MeshDistortMaterialProps, MeshReflectorMaterialProps, MeshRefractionMaterialProps, MeshRefractionMaterialType, MeshTransmissionMaterialProps, MetaData, MotionPathProps, MotionPathRef, OnCenterCallbackProps, OnDragStartProps, OnHoverProps, OrbitControlsChangeEvent, OrthographicCameraProps, OutlinesProps, PerformanceMonitorApi, PerformanceMonitorProps, PerspectiveCameraProps, PivotControlsProps, PointMaterialProps, PointsBuffersProps, PointsInstancesProps, PortalProps, PositionalAudioProps, PreloadProps, PresentationControlProps, PresetsType, QuadraticBezierLineProps, QuadraticBezierLineRef, RandomizedLightProps, RenderCubeTextureApi, RenderCubeTextureProps, RenderTextureProps, ResizeProps, RoundedBoxGeometryProps, RoundedBoxProps, SamplerProps, ScreenQuadProps, ScreenSizerProps, ScreenSpaceProps, ScreenVideoTextureProps, ScrollControlsState, ScrollProps, SegmentProps, SegmentsProps, SelectProps, ShadowProps, ShadowType, ShakeController, ShapeProps, Size, SizeProps, SkyProps, SoftShadowsProps, SparklesProps, SpotLightProps, SpriteAnimatorProps, SpriteData, StageProps, StarsProps, StatsGlProps, StatsProps, SvgProps, Text3DProps, TrailProps, TrailTextureProps, TransformControlsProps, TransformFn, VideoTextureProps, ViewProps, ViewportProps, WebcamVideoTextureProps, WireframeMaterialProps, WireframeMaterialType, WobbleMaterialProps, useSurfaceSamplerProps };