@react-three/drei 11.0.0-alpha.1 → 11.0.0-alpha.4

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.
Files changed (119) hide show
  1. package/core/index.d.mts +1858 -0
  2. package/core/index.d.ts +1858 -0
  3. package/core/index.mjs +8559 -0
  4. package/experimental/index.d.mts +222 -0
  5. package/experimental/index.d.ts +222 -0
  6. package/experimental/index.mjs +353 -0
  7. package/external/index.d.mts +464 -0
  8. package/external/index.d.ts +464 -0
  9. package/external/index.mjs +5079 -0
  10. package/index.d.mts +1746 -2147
  11. package/index.d.ts +2166 -0
  12. package/index.mjs +12940 -19766
  13. package/legacy/index.d.mts +2350 -0
  14. package/legacy/index.d.ts +2350 -0
  15. package/legacy/index.mjs +12325 -0
  16. package/native/index.d.mts +2515 -0
  17. package/native/index.d.ts +2515 -0
  18. package/native/index.mjs +12383 -0
  19. package/package.json +18 -15
  20. package/webgpu/index.d.mts +2514 -0
  21. package/webgpu/index.d.ts +2514 -0
  22. package/webgpu/index.mjs +12547 -0
  23. package/_chunks/hls.mjs +0 -3
  24. package/_chunks/libs/@mediapipe/tasks-vision.mjs +0 -4781
  25. package/_chunks/libs/@monogrid/gainmap-js.mjs +0 -1137
  26. package/_chunks/libs/@use-gesture/core.mjs +0 -1650
  27. package/_chunks/libs/@use-gesture/react.mjs +0 -207
  28. package/_chunks/libs/camera-controls.mjs +0 -2207
  29. package/_chunks/libs/detect-gpu.mjs +0 -515
  30. package/_chunks/libs/hls.js.mjs +0 -21925
  31. package/_chunks/libs/maath.mjs +0 -5200
  32. package/_chunks/libs/stats-gl.mjs +0 -301
  33. package/_chunks/libs/stats.js.mjs +0 -90
  34. package/_chunks/libs/suspend-react.mjs +0 -60
  35. package/_chunks/libs/three.mjs +0 -23169
  36. package/_chunks/libs/tunnel-rat.mjs +0 -458
  37. package/_chunks/libs/zustand.mjs +0 -104
  38. package/_chunks/rolldown-runtime.mjs +0 -47
  39. package/_chunks/vision_bundle.mjs +0 -3
  40. package/core/_chunks/hls.mjs +0 -3
  41. package/core/_chunks/libs/@monogrid/gainmap-js.mjs +0 -1137
  42. package/core/_chunks/libs/@use-gesture/core.mjs +0 -1650
  43. package/core/_chunks/libs/@use-gesture/react.mjs +0 -207
  44. package/core/_chunks/libs/detect-gpu.mjs +0 -515
  45. package/core/_chunks/libs/hls.js.mjs +0 -21925
  46. package/core/_chunks/libs/maath.mjs +0 -5200
  47. package/core/_chunks/libs/stats-gl.mjs +0 -301
  48. package/core/_chunks/libs/stats.js.mjs +0 -90
  49. package/core/_chunks/libs/suspend-react.mjs +0 -60
  50. package/core/_chunks/libs/three.mjs +0 -22457
  51. package/core/_chunks/libs/tunnel-rat.mjs +0 -458
  52. package/core/_chunks/libs/zustand.mjs +0 -104
  53. package/core/_chunks/rolldown-runtime.mjs +0 -47
  54. package/core/core/index.d.mts +0 -2232
  55. package/core/core/index.mjs +0 -11082
  56. package/experimental/_chunks/libs/three.mjs +0 -15386
  57. package/experimental/experimental/index.d.mts +0 -253
  58. package/experimental/experimental/index.mjs +0 -434
  59. package/external/_chunks/hls.mjs +0 -3
  60. package/external/_chunks/libs/@mediapipe/tasks-vision.mjs +0 -4781
  61. package/external/_chunks/libs/camera-controls.mjs +0 -2207
  62. package/external/_chunks/libs/hls.js.mjs +0 -21925
  63. package/external/_chunks/libs/maath.mjs +0 -5200
  64. package/external/_chunks/libs/suspend-react.mjs +0 -58
  65. package/external/_chunks/libs/three.mjs +0 -15387
  66. package/external/_chunks/rolldown-runtime.mjs +0 -32
  67. package/external/_chunks/vision_bundle.mjs +0 -3
  68. package/external/external/index.d.mts +0 -499
  69. package/external/external/index.mjs +0 -9422
  70. package/legacy/_chunks/hls.mjs +0 -3
  71. package/legacy/_chunks/libs/@monogrid/gainmap-js.mjs +0 -1137
  72. package/legacy/_chunks/libs/@use-gesture/core.mjs +0 -1650
  73. package/legacy/_chunks/libs/@use-gesture/react.mjs +0 -207
  74. package/legacy/_chunks/libs/bidi-js.mjs +0 -675
  75. package/legacy/_chunks/libs/detect-gpu.mjs +0 -515
  76. package/legacy/_chunks/libs/hls.js.mjs +0 -21925
  77. package/legacy/_chunks/libs/maath.mjs +0 -5200
  78. package/legacy/_chunks/libs/stats-gl.mjs +0 -301
  79. package/legacy/_chunks/libs/stats.js.mjs +0 -90
  80. package/legacy/_chunks/libs/suspend-react.mjs +0 -60
  81. package/legacy/_chunks/libs/three.mjs +0 -26062
  82. package/legacy/_chunks/libs/troika-three-text.mjs +0 -6494
  83. package/legacy/_chunks/libs/tunnel-rat.mjs +0 -458
  84. package/legacy/_chunks/libs/zustand.mjs +0 -104
  85. package/legacy/_chunks/rolldown-runtime.mjs +0 -47
  86. package/legacy/legacy/index.d.mts +0 -2788
  87. package/legacy/legacy/index.mjs +0 -14984
  88. package/native/_chunks/hls.mjs +0 -3
  89. package/native/_chunks/libs/@monogrid/gainmap-js.mjs +0 -1137
  90. package/native/_chunks/libs/@use-gesture/core.mjs +0 -1650
  91. package/native/_chunks/libs/@use-gesture/react.mjs +0 -207
  92. package/native/_chunks/libs/detect-gpu.mjs +0 -515
  93. package/native/_chunks/libs/hls.js.mjs +0 -21925
  94. package/native/_chunks/libs/maath.mjs +0 -5200
  95. package/native/_chunks/libs/stats-gl.mjs +0 -301
  96. package/native/_chunks/libs/stats.js.mjs +0 -90
  97. package/native/_chunks/libs/suspend-react.mjs +0 -60
  98. package/native/_chunks/libs/three.mjs +0 -22592
  99. package/native/_chunks/libs/tunnel-rat.mjs +0 -458
  100. package/native/_chunks/libs/zustand.mjs +0 -104
  101. package/native/_chunks/rolldown-runtime.mjs +0 -47
  102. package/native/native/index.d.mts +0 -3168
  103. package/native/native/index.mjs +0 -14863
  104. package/webgpu/_chunks/hls.mjs +0 -3
  105. package/webgpu/_chunks/libs/@monogrid/gainmap-js.mjs +0 -1137
  106. package/webgpu/_chunks/libs/@use-gesture/core.mjs +0 -1650
  107. package/webgpu/_chunks/libs/@use-gesture/react.mjs +0 -207
  108. package/webgpu/_chunks/libs/detect-gpu.mjs +0 -515
  109. package/webgpu/_chunks/libs/hls.js.mjs +0 -21925
  110. package/webgpu/_chunks/libs/maath.mjs +0 -5200
  111. package/webgpu/_chunks/libs/stats-gl.mjs +0 -301
  112. package/webgpu/_chunks/libs/stats.js.mjs +0 -90
  113. package/webgpu/_chunks/libs/suspend-react.mjs +0 -60
  114. package/webgpu/_chunks/libs/three.mjs +0 -22592
  115. package/webgpu/_chunks/libs/tunnel-rat.mjs +0 -458
  116. package/webgpu/_chunks/libs/zustand.mjs +0 -104
  117. package/webgpu/_chunks/rolldown-runtime.mjs +0 -47
  118. package/webgpu/webgpu/index.d.mts +0 -3166
  119. package/webgpu/webgpu/index.mjs +0 -15015
@@ -0,0 +1,2350 @@
1
+ import * as React from 'react';
2
+ import { ForwardRefExoticComponent, PropsWithoutRef, RefAttributes, CSSProperties } from 'react';
3
+ import * as _react_three_fiber from '@react-three/fiber';
4
+ import { ThreeElements, ReactThreeFiber, ThreeElement, Vector2, Vector3, ThreeEvent, Color as Color$1, ObjectMap, ComputeFunction, Euler, ConstructorRepresentation } from '@react-three/fiber';
5
+ import * as THREE from 'three';
6
+ import { MeshStandardMaterial, Texture as Texture$1, Matrix4, MeshPhysicalMaterial, MeshPhysicalMaterialParameters, IUniform, MeshStandardMaterialParameters, Material, ColorSpace, TextureDataType, Color, ColorRepresentation, Object3D, Fog, FogExp2, WebGLCubeRenderTarget, CubeCamera as CubeCamera$1, OrthographicCamera as OrthographicCamera$1, PerspectiveCamera as PerspectiveCamera$1, Event, Camera, 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, Scene, PlaneGeometry, MeshBasicMaterial, WebGLRenderer, WebGLRenderTarget, ShaderMaterial, Uniform as Uniform$2, SpotLight as SpotLight$1, Points as Points$1 } from 'three';
7
+ import { RenderPass } from 'three/examples/jsm/postprocessing/RenderPass.js';
8
+ import { ShaderPass } from 'three/examples/jsm/postprocessing/ShaderPass.js';
9
+ import { EffectComposer } from 'three/examples/jsm/postprocessing/EffectComposer.js';
10
+ import { LineSegments2 } from 'three/examples/jsm/lines/LineSegments2.js';
11
+ import { LineMaterialParameters, LineMaterial } from 'three/examples/jsm/lines/LineMaterial.js';
12
+ import { ArcballControls as ArcballControls$1 } from 'three/examples/jsm/controls/ArcballControls.js';
13
+ import { DeviceOrientationControls as DeviceOrientationControls$1 } from 'three-stdlib';
14
+ import { DragConfig } from '@use-gesture/react';
15
+ import { FirstPersonControls as FirstPersonControls$1 } from 'three/examples/jsm/controls/FirstPersonControls.js';
16
+ import { FlyControls as FlyControls$1 } from 'three/examples/jsm/controls/FlyControls.js';
17
+ import * as zustand from 'zustand';
18
+ import { StoreApi } from 'zustand';
19
+ import { MapControls as MapControls$1 } from 'three/examples/jsm/controls/MapControls.js';
20
+ import { OrbitControls as OrbitControls$1 } from 'three/addons/controls/OrbitControls.js';
21
+ import { PointerLockControls as PointerLockControls$1 } from 'three/examples/jsm/controls/PointerLockControls.js';
22
+ import { TrackballControls as TrackballControls$1 } from 'three/examples/jsm/controls/TrackballControls.js';
23
+ import { Line2 } from 'three/examples/jsm/lines/Line2.js';
24
+ import { Flow } from 'three/examples/jsm/modifiers/CurveModifier.js';
25
+ import { TextGeometry, TextGeometryParameters } from 'three/examples/jsm/geometries/TextGeometry.js';
26
+ import * as three_examples_jsm_loaders_FontLoader_js from 'three/examples/jsm/loaders/FontLoader.js';
27
+ import { TransformControls as TransformControls$1 } from 'three/examples/jsm/controls/TransformControls.js';
28
+ import { Falsey, Assign } from 'utility-types';
29
+ import * as hls_js from 'hls.js';
30
+ import hls_js__default from 'hls.js';
31
+ import { GLTFLoader, GLTF } from 'three/examples/jsm/loaders/GLTFLoader.js';
32
+ import * as detect_gpu from 'detect-gpu';
33
+ import { GetGPUTier } from 'detect-gpu';
34
+ import Stats$1 from 'stats-gl';
35
+ import { GroundedSkybox } from 'three/examples/jsm/objects/GroundedSkybox.js';
36
+ import { Sky as Sky$1 } from 'three/examples/jsm/objects/Sky.js';
37
+ import { MeshBVHUniformStruct } from 'three-mesh-bvh';
38
+
39
+ type NamedArrayTuple<T extends (...args: any) => any> = Parameters<T>;
40
+ type ForwardRefComponent<P, T> = ForwardRefExoticComponent<PropsWithoutRef<P> & RefAttributes<T>>;
41
+ type NonFunctionKeys<T> = {
42
+ [K in keyof T]-?: T[K] extends Function ? never : K;
43
+ }[keyof T];
44
+ type Overwrite<T, O> = Omit<T, NonFunctionKeys<O>> & O;
45
+
46
+ type ContactShadowsProps = Omit<ThreeElements['group'], 'ref' | 'scale'> & {
47
+ opacity?: number;
48
+ width?: number;
49
+ height?: number;
50
+ blur?: number;
51
+ near?: number;
52
+ far?: number;
53
+ smooth?: boolean;
54
+ resolution?: number;
55
+ frames?: number;
56
+ scale?: number | [x: number, y: number];
57
+ color?: THREE.ColorRepresentation;
58
+ depthWrite?: boolean;
59
+ };
60
+ declare const ContactShadows: ForwardRefComponent<ContactShadowsProps, THREE.Group>;
61
+
62
+ type AccumulativeShadowsProps = Omit<ThreeElements['group'], 'ref'> & {
63
+ frames?: number;
64
+ blend?: number;
65
+ limit?: number;
66
+ scale?: number;
67
+ temporal?: boolean;
68
+ opacity?: number;
69
+ alphaTest?: number;
70
+ color?: string;
71
+ colorBlend?: number;
72
+ resolution?: number;
73
+ toneMapped?: boolean;
74
+ };
75
+ interface AccumulativeContext {
76
+ lights: Map<any, any>;
77
+ temporal: boolean;
78
+ frames: number;
79
+ blend: number;
80
+ count: number;
81
+ getMesh: () => THREE.Mesh<THREE.PlaneGeometry, SoftShadowMaterialProps & THREE.ShaderMaterial>;
82
+ reset: () => void;
83
+ update: (frames?: number) => void;
84
+ }
85
+ interface AccumulativeLightContext {
86
+ update: () => void;
87
+ }
88
+ type SoftShadowMaterialProps = {
89
+ map: THREE.Texture;
90
+ color?: ReactThreeFiber.Color;
91
+ alphaTest?: number;
92
+ blend?: number;
93
+ };
94
+ declare module '@react-three/fiber' {
95
+ interface ThreeElements {
96
+ softShadowMaterial: ThreeElements['shaderMaterial'] & SoftShadowMaterialProps;
97
+ }
98
+ }
99
+ declare const accumulativeContext: React.Context<AccumulativeContext>;
100
+ declare const AccumulativeShadows: ForwardRefComponent<AccumulativeShadowsProps, AccumulativeContext>;
101
+ type RandomizedLightProps = Omit<ThreeElements['group'], 'ref'> & {
102
+ frames?: number;
103
+ position?: [x: number, y: number, z: number];
104
+ radius?: number;
105
+ amount?: number;
106
+ intensity?: number;
107
+ ambient?: number;
108
+ castShadow?: boolean;
109
+ bias?: number;
110
+ mapSize?: number;
111
+ size?: number;
112
+ near?: number;
113
+ far?: number;
114
+ };
115
+ declare const RandomizedLight: ForwardRefComponent<RandomizedLightProps, AccumulativeLightContext>;
116
+
117
+ type CausticsProps = Omit<ThreeElements['group'], 'ref'> & {
118
+ frames?: number;
119
+ debug?: boolean;
120
+ causticsOnly?: boolean;
121
+ backside?: boolean;
122
+ ior?: number;
123
+ backsideIOR?: number;
124
+ worldRadius?: number;
125
+ intensity?: number;
126
+ color?: ReactThreeFiber.Color;
127
+ resolution?: number;
128
+ lightSource?: [x: number, y: number, z: number] | React.RefObject<THREE.Object3D>;
129
+ };
130
+ declare module '@react-three/fiber' {
131
+ interface ThreeElements {
132
+ causticsProjectionMaterial: ThreeElements['meshNormalMaterial'] & {
133
+ viewMatrix?: {
134
+ value: THREE.Matrix4;
135
+ };
136
+ color?: ReactThreeFiber.Color;
137
+ causticsTexture?: THREE.Texture;
138
+ causticsTextureB?: THREE.Texture;
139
+ lightProjMatrix?: THREE.Matrix4;
140
+ lightViewMatrix?: THREE.Matrix4;
141
+ };
142
+ }
143
+ }
144
+ declare const Caustics: ForwardRefComponent<CausticsProps, THREE.Group>;
145
+
146
+ type MeshTransmissionMaterialType = Omit<ThreeElements['meshPhysicalMaterial'], 'args' | 'roughness' | 'thickness' | 'transmission'> & {
147
+ transmission?: number;
148
+ thickness?: number;
149
+ roughness?: number;
150
+ chromaticAberration?: number;
151
+ anisotropy?: number;
152
+ anisotropicBlur?: number;
153
+ distortion?: number;
154
+ distortionScale?: number;
155
+ temporalDistortion?: number;
156
+ buffer?: THREE.Texture;
157
+ time?: number;
158
+ args?: [samples: number, transmissionSampler: boolean];
159
+ };
160
+ type MeshTransmissionMaterialProps = Omit<MeshTransmissionMaterialType, 'ref' | 'args'> & {
161
+ transmissionSampler?: boolean;
162
+ backside?: boolean;
163
+ backsideThickness?: number;
164
+ backsideEnvMapIntensity?: number;
165
+ resolution?: number;
166
+ backsideResolution?: number;
167
+ samples?: number;
168
+ background?: THREE.Texture | THREE.Color;
169
+ };
170
+ declare module '@react-three/fiber' {
171
+ interface ThreeElements {
172
+ meshTransmissionMaterial: MeshTransmissionMaterialType;
173
+ }
174
+ }
175
+ declare const MeshTransmissionMaterial: ForwardRefComponent<MeshTransmissionMaterialProps, ThreeElements['meshTransmissionMaterial']>;
176
+
177
+ declare class MeshReflectorMaterial$1 extends MeshStandardMaterial {
178
+ private _tDepth;
179
+ private _distortionMap;
180
+ private _tDiffuse;
181
+ private _tDiffuseBlur;
182
+ private _textureMatrix;
183
+ private _hasBlur;
184
+ private _mirror;
185
+ private _mixBlur;
186
+ private _blurStrength;
187
+ private _minDepthThreshold;
188
+ private _maxDepthThreshold;
189
+ private _depthScale;
190
+ private _depthToBlurRatioBias;
191
+ private _distortion;
192
+ private _mixContrast;
193
+ constructor(parameters?: {});
194
+ onBeforeCompile(shader: any): void;
195
+ get tDiffuse(): Texture$1 | null;
196
+ set tDiffuse(v: Texture$1 | null);
197
+ get tDepth(): Texture$1 | null;
198
+ set tDepth(v: Texture$1 | null);
199
+ get distortionMap(): Texture$1 | null;
200
+ set distortionMap(v: Texture$1 | null);
201
+ get tDiffuseBlur(): Texture$1 | null;
202
+ set tDiffuseBlur(v: Texture$1 | null);
203
+ get textureMatrix(): Matrix4 | null;
204
+ set textureMatrix(v: Matrix4 | null);
205
+ get hasBlur(): boolean;
206
+ set hasBlur(v: boolean);
207
+ get mirror(): number;
208
+ set mirror(v: number);
209
+ get mixBlur(): number;
210
+ set mixBlur(v: number);
211
+ get mixStrength(): number;
212
+ set mixStrength(v: number);
213
+ get minDepthThreshold(): number;
214
+ set minDepthThreshold(v: number);
215
+ get maxDepthThreshold(): number;
216
+ set maxDepthThreshold(v: number);
217
+ get depthScale(): number;
218
+ set depthScale(v: number);
219
+ get depthToBlurRatioBias(): number;
220
+ set depthToBlurRatioBias(v: number);
221
+ get distortion(): number;
222
+ set distortion(v: number);
223
+ get mixContrast(): number;
224
+ set mixContrast(v: number);
225
+ }
226
+
227
+ declare module '@react-three/fiber' {
228
+ interface ThreeElements {
229
+ meshReflectorMaterialImpl: ThreeElement<typeof MeshReflectorMaterial$1>;
230
+ }
231
+ }
232
+ type MeshReflectorMaterialProps = ThreeElements['meshReflectorMaterialImpl'] & {
233
+ resolution?: number;
234
+ blur?: [number, number] | number;
235
+ reflectorOffset?: number;
236
+ };
237
+ declare const MeshReflectorMaterial: ForwardRefComponent<MeshReflectorMaterialProps, MeshReflectorMaterial$1>;
238
+
239
+ declare const MeshRefractionMaterial: _react_three_fiber.ConstructorRepresentation<THREE.ShaderMaterial & {
240
+ envMap: null;
241
+ bounces: number;
242
+ ior: number;
243
+ correctMips: true;
244
+ aberrationStrength: number;
245
+ fresnel: number;
246
+ bvh: MeshBVHUniformStruct;
247
+ color: THREE.Color;
248
+ opacity: number;
249
+ resolution: THREE.Vector2;
250
+ viewMatrixInverse: THREE.Matrix4;
251
+ projectionMatrixInverse: THREE.Matrix4;
252
+ }> & {
253
+ key: string;
254
+ };
255
+
256
+ declare module '@react-three/fiber' {
257
+ interface ThreeElements {
258
+ portalMaterialImpl: ThreeElements['shaderMaterial'] & {
259
+ resolution: ReactThreeFiber.Vector2;
260
+ blur: number;
261
+ blend: number;
262
+ size?: number;
263
+ sdf?: THREE.Texture;
264
+ map?: THREE.Texture;
265
+ };
266
+ }
267
+ }
268
+ type PortalProps = Omit<ThreeElements['portalMaterialImpl'], 'ref' | 'blend'> & {
269
+ blend?: number;
270
+ blur?: number;
271
+ resolution?: number;
272
+ worldUnits?: boolean;
273
+ eventPriority?: number;
274
+ renderPriority?: number;
275
+ events?: boolean;
276
+ };
277
+ declare const MeshPortalMaterial: ForwardRefComponent<PortalProps, ThreeElements['portalMaterialImpl']>;
278
+
279
+ interface Uniform$1<T> {
280
+ value: T;
281
+ }
282
+ declare class DistortMaterialImpl extends MeshPhysicalMaterial {
283
+ _time: Uniform$1<number>;
284
+ _distort: Uniform$1<number>;
285
+ _radius: Uniform$1<number>;
286
+ constructor(parameters?: MeshPhysicalMaterialParameters);
287
+ onBeforeCompile(shader: {
288
+ vertexShader: string;
289
+ uniforms: {
290
+ [uniform: string]: IUniform;
291
+ };
292
+ }): void;
293
+ get time(): number;
294
+ set time(v: number);
295
+ get distort(): number;
296
+ set distort(v: number);
297
+ get radius(): number;
298
+ set radius(v: number);
299
+ }
300
+ declare module '@react-three/fiber' {
301
+ interface ThreeElements {
302
+ distortMaterialImpl: ThreeElements['meshPhysicalMaterial'] & {
303
+ time?: number;
304
+ distort?: number;
305
+ radius?: number;
306
+ };
307
+ }
308
+ }
309
+ type MeshDistortMaterialProps = Omit<ThreeElements['distortMaterialImpl'], 'ref'> & {
310
+ speed?: number;
311
+ factor?: number;
312
+ };
313
+ declare const MeshDistortMaterial: ForwardRefComponent<MeshDistortMaterialProps, DistortMaterialImpl>;
314
+
315
+ interface Uniform<T> {
316
+ value: T;
317
+ }
318
+ declare class WobbleMaterialImpl extends MeshStandardMaterial {
319
+ readonly timeUniform: Uniform<number>;
320
+ readonly factorUniform: Uniform<number>;
321
+ readonly isMeshStandardMaterial: true;
322
+ constructor(parameters?: MeshStandardMaterialParameters);
323
+ onBeforeCompile(shader: {
324
+ vertexShader: string;
325
+ uniforms: {
326
+ [uniform: string]: IUniform;
327
+ };
328
+ }): void;
329
+ get time(): number;
330
+ set time(v: number);
331
+ get factor(): number;
332
+ set factor(v: number);
333
+ }
334
+ declare module '@react-three/fiber' {
335
+ interface ThreeElements {
336
+ wobbleMaterialImpl: ThreeElements['meshStandardMaterial'] & {
337
+ time?: number;
338
+ factor?: number;
339
+ speed?: number;
340
+ };
341
+ }
342
+ }
343
+ type WobbleMaterialProps = Omit<ThreeElements['meshStandardMaterial'], 'ref'> & {
344
+ speed?: number;
345
+ factor?: number;
346
+ };
347
+ declare const MeshWobbleMaterial: ForwardRefComponent<WobbleMaterialProps, WobbleMaterialImpl>;
348
+
349
+ declare function CloudMaterial(BaseMaterial: typeof Material): Material;
350
+
351
+ type OutlinesProps = Omit<ThreeElements['group'], 'ref'> & {
352
+ color?: ReactThreeFiber.Color;
353
+ screenspace?: boolean;
354
+ opacity?: number;
355
+ transparent?: boolean;
356
+ thickness?: number;
357
+ angle?: number;
358
+ clippingPlanes?: THREE.Plane[];
359
+ toneMapped?: boolean;
360
+ polygonOffset?: boolean;
361
+ polygonOffsetFactor?: number;
362
+ renderOrder?: number;
363
+ };
364
+ declare function Outlines({ color, opacity, transparent, screenspace, toneMapped, polygonOffset, polygonOffsetFactor, renderOrder, thickness, angle, clippingPlanes, ...props }: OutlinesProps): React.JSX.Element;
365
+
366
+ type EffectsProps = Omit<ThreeElements['effectComposer'], 'ref' | 'args'> & {
367
+ multisamping?: number;
368
+ colorSpace?: ColorSpace;
369
+ type?: TextureDataType;
370
+ renderIndex?: number;
371
+ disableGamma?: boolean;
372
+ disableRenderPass?: boolean;
373
+ disableRender?: boolean;
374
+ depthBuffer?: boolean;
375
+ stencilBuffer?: boolean;
376
+ anisotropy?: number;
377
+ };
378
+ declare module '@react-three/fiber' {
379
+ interface ThreeElements {
380
+ effectComposer: ThreeElement<typeof EffectComposer>;
381
+ renderPass: ThreeElement<typeof RenderPass>;
382
+ shaderPass: ThreeElement<typeof ShaderPass>;
383
+ }
384
+ }
385
+ declare const isWebGL2Available: () => boolean;
386
+ declare const Effects: ForwardRefComponent<EffectsProps, EffectComposer>;
387
+
388
+ type RenderTextureProps = Omit<ThreeElements['texture'], 'ref' | 'args'> & {
389
+ width?: number;
390
+ height?: number;
391
+ samples?: number;
392
+ stencilBuffer?: boolean;
393
+ depthBuffer?: boolean;
394
+ generateMipmaps?: boolean;
395
+ renderPriority?: number;
396
+ eventPriority?: number;
397
+ frames?: number;
398
+ compute?: (event: any, state: any, previous: any) => false | undefined;
399
+ children: React.ReactNode;
400
+ };
401
+ declare const RenderTexture: ForwardRefComponent<RenderTextureProps, THREE.Texture>;
402
+
403
+ type LineProps = Omit<{
404
+ points: ReadonlyArray<Vector2 | Vector3>;
405
+ vertexColors?: ReadonlyArray<Color | [number, number, number] | [number, number, number, number]>;
406
+ lineWidth?: number;
407
+ segments?: boolean;
408
+ } & Omit<LineMaterialParameters, 'vertexColors' | 'color'> & Omit<ThreeElement<typeof Line2>, 'ref' | 'args'> & Omit<ThreeElement<typeof LineMaterial>, 'ref' | 'color' | 'vertexColors' | 'args'> & {
409
+ color?: ColorRepresentation;
410
+ }, 'ref'>;
411
+ declare const Line: ForwardRefComponent<LineProps, Line2 | LineSegments2>;
412
+
413
+ type SegmentsProps = LineMaterialParameters & {
414
+ limit?: number;
415
+ lineWidth?: number;
416
+ children: React.ReactNode;
417
+ };
418
+ type SegmentProps = Omit<ThreeElements['segmentObject'], 'ref' | 'start' | 'end' | 'color'> & {
419
+ start: ReactThreeFiber.Vector3;
420
+ end: ReactThreeFiber.Vector3;
421
+ color?: ReactThreeFiber.Color;
422
+ };
423
+ declare const Segments: ForwardRefComponent<SegmentsProps, LineSegments2>;
424
+ declare module '@react-three/fiber' {
425
+ interface ThreeElements {
426
+ segmentObject: ThreeElement<typeof SegmentObject>;
427
+ }
428
+ }
429
+ declare class SegmentObject {
430
+ color: THREE.Color;
431
+ start: THREE.Vector3;
432
+ end: THREE.Vector3;
433
+ constructor();
434
+ }
435
+ declare const Segment: ForwardRefComponent<SegmentProps, SegmentObject>;
436
+
437
+ type Settings$1 = {
438
+ width: number;
439
+ length: number;
440
+ decay: number;
441
+ local: boolean;
442
+ stride: number;
443
+ interval: number;
444
+ };
445
+ type TrailProps = {
446
+ color?: ColorRepresentation;
447
+ attenuation?: (t: number) => number;
448
+ target?: React.RefObject<Object3D>;
449
+ } & Partial<Settings$1>;
450
+ declare function useTrail(target: Object3D, settings: Partial<Settings$1>, pointCount: number): React.RefObject<Float32Array>;
451
+ declare const Trail: ForwardRefComponent<React.PropsWithChildren<TrailProps>, Line2>;
452
+
453
+ type CubeCameraOptions = {
454
+ resolution?: number;
455
+ near?: number;
456
+ far?: number;
457
+ envMap?: Texture$1;
458
+ fog?: Fog | FogExp2;
459
+ };
460
+ type CubeCameraProps = Omit<ThreeElements['group'], 'children'> & {
461
+ children?: (tex: Texture$1) => React.ReactNode;
462
+ frames?: number;
463
+ } & CubeCameraOptions;
464
+ declare function useCubeCamera({ resolution, near, far, envMap, fog }?: CubeCameraOptions): {
465
+ fbo: WebGLCubeRenderTarget;
466
+ camera: CubeCamera$1;
467
+ update: () => void;
468
+ };
469
+ declare function CubeCamera({ children, frames, resolution, near, far, envMap, fog, ...props }: CubeCameraProps): React.JSX.Element;
470
+
471
+ type OrthographicCameraProps = Omit<ThreeElements['orthographicCamera'], 'ref' | 'children'> & {
472
+ makeDefault?: boolean;
473
+ manual?: boolean;
474
+ children?: React.ReactNode | ((texture: THREE.Texture) => React.ReactNode);
475
+ frames?: number;
476
+ resolution?: number;
477
+ envMap?: THREE.Texture;
478
+ };
479
+ declare const OrthographicCamera: ForwardRefComponent<OrthographicCameraProps, OrthographicCamera$1>;
480
+
481
+ type PerspectiveCameraProps = Omit<ThreeElements['perspectiveCamera'], 'ref' | 'children'> & {
482
+ makeDefault?: boolean;
483
+ manual?: boolean;
484
+ children?: React.ReactNode | ((texture: THREE.Texture) => React.ReactNode);
485
+ frames?: number;
486
+ resolution?: number;
487
+ envMap?: THREE.Texture;
488
+ };
489
+ declare const PerspectiveCamera: ForwardRefComponent<PerspectiveCameraProps, PerspectiveCamera$1>;
490
+
491
+ type ArcballControlsProps = Omit<Overwrite<ThreeElement<typeof ArcballControls$1>, {
492
+ target?: ReactThreeFiber.Vector3;
493
+ camera?: OrthographicCamera$1 | PerspectiveCamera$1;
494
+ domElement?: HTMLElement;
495
+ regress?: boolean;
496
+ makeDefault?: boolean;
497
+ onChange?: (e?: Event) => void;
498
+ onStart?: (e?: Event) => void;
499
+ onEnd?: (e?: Event) => void;
500
+ }>, 'ref' | 'args'>;
501
+ declare const ArcballControls: ForwardRefComponent<ArcballControlsProps, ArcballControls$1>;
502
+
503
+ type DeviceOrientationControlsProps = Omit<ThreeElement<typeof DeviceOrientationControls$1>, 'ref' | 'args'> & {
504
+ camera?: THREE.Camera;
505
+ onChange?: (e?: THREE.Event) => void;
506
+ makeDefault?: boolean;
507
+ };
508
+ declare const DeviceOrientationControls: ForwardRefComponent<DeviceOrientationControlsProps, DeviceOrientationControls$1>;
509
+
510
+ type DragControlsProps = {
511
+ autoTransform?: boolean;
512
+ matrix?: THREE.Matrix4;
513
+ axisLock?: 'x' | 'y' | 'z';
514
+ dragLimits?: [[number, number] | undefined, [number, number] | undefined, [number, number] | undefined];
515
+ onHover?: (hovering: boolean) => void;
516
+ onDragStart?: (origin: THREE.Vector3) => void;
517
+ onDrag?: (localMatrix: THREE.Matrix4, deltaLocalMatrix: THREE.Matrix4, worldMatrix: THREE.Matrix4, deltaWorldMatrix: THREE.Matrix4) => void;
518
+ onDragEnd?: () => void;
519
+ children: React.ReactNode;
520
+ dragConfig?: DragConfig;
521
+ };
522
+ declare const DragControls: ForwardRefComponent<DragControlsProps, THREE.Group>;
523
+
524
+ type FirstPersonControlsProps = Omit<ThreeElement<typeof FirstPersonControls$1>, 'ref' | 'args'> & {
525
+ domElement?: HTMLElement;
526
+ makeDefault?: boolean;
527
+ };
528
+ declare const FirstPersonControls: ForwardRefComponent<FirstPersonControlsProps, FirstPersonControls$1>;
529
+
530
+ type FlyControlsProps = Omit<ThreeElement<typeof FlyControls$1>, 'ref' | 'args'> & {
531
+ onChange?: (e?: THREE.Event) => void;
532
+ domElement?: HTMLElement;
533
+ makeDefault?: boolean;
534
+ };
535
+ declare const FlyControls: ForwardRefComponent<FlyControlsProps, FlyControls$1>;
536
+
537
+ type State = object;
538
+ type StateSelector<T extends State, U> = (state: T) => U;
539
+ type EqualityChecker<T> = (state: T, newState: T) => boolean;
540
+ type StateListener<T> = (state: T, previousState: T) => void;
541
+ type StoreApiWithSubscribeWithSelector<T extends State> = Omit<StoreApi<T>, 'subscribe'> & {
542
+ subscribe: {
543
+ (listener: StateListener<T>): () => void;
544
+ <StateSlice>(selector: StateSelector<T, StateSlice>, listener: StateListener<StateSlice>, options?: {
545
+ equalityFn?: EqualityChecker<StateSlice>;
546
+ fireImmediately?: boolean;
547
+ }): () => void;
548
+ };
549
+ };
550
+ type KeyboardControlsState<T extends string = string> = {
551
+ [K in T]: boolean;
552
+ };
553
+ type KeyboardControlsEntry<T extends string = string> = {
554
+ name: T;
555
+ keys: string[];
556
+ up?: boolean;
557
+ };
558
+ type KeyboardControlsProps = {
559
+ map: KeyboardControlsEntry[];
560
+ children: React.ReactNode;
561
+ onChange?: (name: string, pressed: boolean, state: KeyboardControlsState) => void;
562
+ domElement?: HTMLElement;
563
+ };
564
+ declare function KeyboardControls({ map, children, onChange, domElement }: KeyboardControlsProps): React.JSX.Element;
565
+ type Selector<T extends string = string> = (state: KeyboardControlsState<T>) => boolean;
566
+ declare function useKeyboardControls<T extends string = string>(): [
567
+ StoreApiWithSubscribeWithSelector<KeyboardControlsState<T>>['subscribe'],
568
+ StoreApiWithSubscribeWithSelector<KeyboardControlsState<T>>['getState']
569
+ ];
570
+ declare function useKeyboardControls<T extends string = string>(sel: Selector<T>): ReturnType<Selector<T>>;
571
+
572
+ type MapControlsProps = Omit<Overwrite<ThreeElement<typeof MapControls$1>, {
573
+ target?: ReactThreeFiber.Vector3;
574
+ camera?: THREE.Camera;
575
+ makeDefault?: boolean;
576
+ onChange?: (e?: THREE.Event) => void;
577
+ onStart?: (e?: THREE.Event) => void;
578
+ onEnd?: (e?: THREE.Event) => void;
579
+ domElement?: HTMLElement;
580
+ }>, 'ref' | 'args'>;
581
+ declare const MapControls: ForwardRefComponent<MapControlsProps, MapControls$1>;
582
+
583
+ type MotionPathProps = ThreeElements['group'] & {
584
+ curves?: THREE.Curve<THREE.Vector3>[];
585
+ debug?: boolean;
586
+ debugColor?: THREE.ColorRepresentation;
587
+ object?: React.RefObject<THREE.Object3D>;
588
+ focus?: [x: number, y: number, z: number] | React.RefObject<THREE.Object3D>;
589
+ loop?: boolean;
590
+ offset?: number;
591
+ smooth?: boolean | number;
592
+ eps?: number;
593
+ damping?: number;
594
+ focusDamping?: number;
595
+ maxSpeed?: number;
596
+ };
597
+ type MotionState = {
598
+ current: number;
599
+ path: THREE.CurvePath<THREE.Vector3>;
600
+ focus: React.RefObject<THREE.Object3D> | [x: number, y: number, z: number] | undefined;
601
+ object: React.RefObject<THREE.Object3D>;
602
+ offset: number;
603
+ point: THREE.Vector3;
604
+ tangent: THREE.Vector3;
605
+ next: THREE.Vector3;
606
+ };
607
+ type MotionPathRef = THREE.Group & {
608
+ motion: MotionState;
609
+ };
610
+ declare function useMotion(): MotionState;
611
+ declare const MotionPathControls: React.ForwardRefExoticComponent<Omit<MotionPathProps, "ref"> & React.RefAttributes<MotionPathRef>>;
612
+
613
+ type ExtractCallback<T, E extends string> = T extends {
614
+ addEventListener(event: E, callback: infer C): void;
615
+ } ? C : never;
616
+ type OrbitControlsChangeEvent = Parameters<ExtractCallback<OrbitControls$1, 'change'>>[0];
617
+ type OrbitControlsProps = Omit<Overwrite<ThreeElement<typeof OrbitControls$1>, {
618
+ camera?: Camera;
619
+ domElement?: HTMLElement;
620
+ enableDamping?: boolean;
621
+ makeDefault?: boolean;
622
+ onChange?: (e?: OrbitControlsChangeEvent) => void;
623
+ onEnd?: (e?: Event) => void;
624
+ onStart?: (e?: Event) => void;
625
+ regress?: boolean;
626
+ target?: ReactThreeFiber.Vector3;
627
+ keyEvents?: boolean | HTMLElement;
628
+ }>, 'ref' | 'args'>;
629
+ declare const OrbitControls: ForwardRefComponent<OrbitControlsProps, OrbitControls$1>;
630
+
631
+ type PointerLockControlsProps = Omit<ThreeElement<typeof PointerLockControls$1>, 'ref' | 'args'> & {
632
+ domElement?: HTMLElement;
633
+ selector?: string;
634
+ enabled?: boolean;
635
+ camera?: THREE.Camera;
636
+ onChange?: (e?: THREE.Event) => void;
637
+ onLock?: (e?: THREE.Event) => void;
638
+ onUnlock?: (e?: THREE.Event) => void;
639
+ makeDefault?: boolean;
640
+ };
641
+ declare const PointerLockControls: ForwardRefComponent<PointerLockControlsProps, PointerLockControls$1>;
642
+
643
+ type PresentationControlProps = {
644
+ snap?: Boolean | number;
645
+ global?: boolean;
646
+ cursor?: boolean;
647
+ speed?: number;
648
+ zoom?: number;
649
+ rotation?: [number, number, number];
650
+ polar?: [number, number];
651
+ azimuth?: [number, number];
652
+ damping?: number;
653
+ enabled?: boolean;
654
+ children?: React.ReactNode;
655
+ domElement?: HTMLElement;
656
+ };
657
+ declare function PresentationControls({ enabled, snap, global, domElement, cursor, children, speed, rotation, zoom, polar, azimuth, damping, }: PresentationControlProps): React.JSX.Element;
658
+
659
+ type ScrollControlsProps = {
660
+ eps?: number;
661
+ horizontal?: boolean;
662
+ infinite?: boolean;
663
+ pages?: number;
664
+ distance?: number;
665
+ damping?: number;
666
+ maxSpeed?: number;
667
+ prepend?: boolean;
668
+ enabled?: boolean;
669
+ style?: React.CSSProperties;
670
+ children: React.ReactNode;
671
+ };
672
+ type ScrollControlsState = {
673
+ el: HTMLDivElement;
674
+ eps: number;
675
+ fill: HTMLDivElement;
676
+ fixed: HTMLDivElement;
677
+ horizontal: boolean | undefined;
678
+ damping: number;
679
+ offset: number;
680
+ delta: number;
681
+ pages: number;
682
+ range(from: number, distance: number, margin?: number): number;
683
+ curve(from: number, distance: number, margin?: number): number;
684
+ visible(from: number, distance: number, margin?: number): boolean;
685
+ };
686
+ declare function useScroll(): ScrollControlsState;
687
+ declare function ScrollControls({ eps, enabled, infinite, horizontal, pages, distance, damping, maxSpeed, prepend, style, children, }: ScrollControlsProps): React.JSX.Element;
688
+ interface ScrollPropsWithFalseHtml {
689
+ children?: React.ReactNode;
690
+ html?: false;
691
+ style?: never;
692
+ }
693
+ interface ScrollPropsWithTrueHtml {
694
+ children?: React.ReactNode;
695
+ html: true;
696
+ style?: React.CSSProperties;
697
+ }
698
+ type ScrollProps = ScrollPropsWithFalseHtml | ScrollPropsWithTrueHtml;
699
+ declare const Scroll: ForwardRefComponent<ScrollProps, THREE.Group & HTMLDivElement>;
700
+
701
+ type TrackballControlsProps = Omit<Overwrite<ThreeElement<typeof TrackballControls$1>, {
702
+ target?: ReactThreeFiber.Vector3;
703
+ camera?: THREE.Camera;
704
+ domElement?: HTMLElement;
705
+ regress?: boolean;
706
+ makeDefault?: boolean;
707
+ onChange?: (e?: THREE.Event) => void;
708
+ onStart?: (e?: THREE.Event) => void;
709
+ onEnd?: (e?: THREE.Event) => void;
710
+ }>, 'ref' | 'args'>;
711
+ declare const TrackballControls: ForwardRefComponent<TrackballControlsProps, TrackballControls$1>;
712
+
713
+ interface ShakeController {
714
+ getIntensity: () => number;
715
+ setIntensity: (val: number) => void;
716
+ }
717
+ interface CameraShakeProps {
718
+ intensity?: number;
719
+ decay?: boolean;
720
+ decayRate?: number;
721
+ maxYaw?: number;
722
+ maxPitch?: number;
723
+ maxRoll?: number;
724
+ yawFrequency?: number;
725
+ pitchFrequency?: number;
726
+ rollFrequency?: number;
727
+ }
728
+ declare const CameraShake: ForwardRefComponent<CameraShakeProps, ShakeController | undefined>;
729
+
730
+ type CloudState = {
731
+ uuid: string;
732
+ index: number;
733
+ segments: number;
734
+ dist: number;
735
+ matrix: Matrix4;
736
+ bounds: Vector3$1;
737
+ position: Vector3$1;
738
+ volume: number;
739
+ length: number;
740
+ ref: React.RefObject<Group>;
741
+ speed: number;
742
+ growth: number;
743
+ opacity: number;
744
+ fade: number;
745
+ density: number;
746
+ rotation: number;
747
+ rotationFactor: number;
748
+ color: Color;
749
+ };
750
+ type CloudsProps = Omit<ThreeElements['group'], 'ref'> & {
751
+ texture?: string;
752
+ limit?: number;
753
+ range?: number;
754
+ material?: typeof Material;
755
+ materialFactory?: (baseMaterial: typeof Material) => Material;
756
+ frustumCulled?: boolean;
757
+ };
758
+ type CloudProps = Omit<ThreeElements['group'], 'ref'> & {
759
+ seed?: number;
760
+ segments?: number;
761
+ bounds?: ReactThreeFiber.Vector3;
762
+ concentrate?: 'random' | 'inside' | 'outside';
763
+ scale?: ReactThreeFiber.Vector3;
764
+ volume?: number;
765
+ smallestVolume?: number;
766
+ distribute?: (cloud: CloudState, index: number) => {
767
+ point: Vector3$1;
768
+ volume?: number;
769
+ };
770
+ growth?: number;
771
+ speed?: number;
772
+ fade?: number;
773
+ opacity?: number;
774
+ color?: ReactThreeFiber.Color;
775
+ };
776
+ declare const Clouds: React.ForwardRefExoticComponent<Omit<CloudsProps, "ref"> & React.RefAttributes<Group<THREE.Object3DEventMap>>>;
777
+ declare const CloudInstance: React.ForwardRefExoticComponent<Omit<CloudProps, "ref"> & React.RefAttributes<Group<THREE.Object3DEventMap>>>;
778
+ declare const Cloud: React.ForwardRefExoticComponent<Omit<CloudProps, "ref"> & React.RefAttributes<Group<THREE.Object3DEventMap>>>;
779
+
780
+ type CatmullRomLineProps = Omit<LineProps, 'ref' | 'segments'> & {
781
+ closed?: boolean;
782
+ curveType?: 'centripetal' | 'chordal' | 'catmullrom';
783
+ tension?: number;
784
+ segments?: number;
785
+ LineComponent?: React.ComponentType<LineProps>;
786
+ };
787
+ declare const CatmullRomLine: ForwardRefComponent<CatmullRomLineProps, Line2>;
788
+
789
+ type CubicBezierLineProps = Omit<LineProps, 'points' | 'ref'> & {
790
+ start: Vector3$1 | [number, number, number];
791
+ end: Vector3$1 | [number, number, number];
792
+ midA: Vector3$1 | [number, number, number];
793
+ midB: Vector3$1 | [number, number, number];
794
+ segments?: number;
795
+ LineComponent?: React.ComponentType<LineProps>;
796
+ };
797
+ declare const CubicBezierLine: ForwardRefComponent<CubicBezierLineProps, Line2>;
798
+
799
+ interface CurveModifierProps {
800
+ children: React.ReactElement<ThreeElements['mesh']>;
801
+ curve?: THREE.Curve<THREE.Vector3>;
802
+ }
803
+ type CurveModifierRef = Flow;
804
+ declare const CurveModifier: ForwardRefComponent<CurveModifierProps, CurveModifierRef>;
805
+
806
+ type DecalProps = Omit<_react_three_fiber.ThreeElements['mesh'], 'ref' | 'children'> & {
807
+ debug?: boolean;
808
+ mesh?: React.RefObject<THREE.Mesh>;
809
+ position?: _react_three_fiber.Vector3;
810
+ rotation?: _react_three_fiber.Euler | number;
811
+ scale?: _react_three_fiber.Vector3;
812
+ map?: THREE.Texture;
813
+ children?: React.ReactNode;
814
+ polygonOffsetFactor?: number;
815
+ depthTest?: boolean;
816
+ };
817
+ declare const Decal: ForwardRefComponent<DecalProps, THREE.Mesh>;
818
+
819
+ type DetailedProps = Omit<ThreeElements['lOD'], 'ref'> & {
820
+ children: React.ReactElement<Object3D>[];
821
+ hysteresis?: number;
822
+ distances: number[];
823
+ };
824
+ declare const Detailed: ForwardRefComponent<DetailedProps, LOD>;
825
+
826
+ interface EdgesProps {
827
+ threshold?: number;
828
+ geometry?: THREE.BufferGeometry;
829
+ lineWidth?: number;
830
+ color?: THREE.ColorRepresentation;
831
+ scale?: number;
832
+ LineComponent?: React.ComponentType<LineProps>;
833
+ }
834
+ interface EdgesRef {
835
+ computeLineDistances: () => void;
836
+ }
837
+ declare const Edges: ForwardRefComponent<EdgesProps, EdgesRef>;
838
+
839
+ declare module '@react-three/fiber' {
840
+ interface ThreeElements {
841
+ positionPoint: ThreeElement<typeof PositionPoint>;
842
+ }
843
+ }
844
+ type PointsInstancesProps = Omit<ThreeElements['points'], 'ref'> & {
845
+ range?: number;
846
+ limit?: number;
847
+ };
848
+ declare class PositionPoint extends THREE.Group {
849
+ size: number;
850
+ color: THREE.Color;
851
+ instance: React.RefObject<THREE.Points | undefined>;
852
+ instanceKey: React.RefObject<PositionPoint | undefined>;
853
+ constructor();
854
+ get geometry(): THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap> | undefined;
855
+ raycast(raycaster: THREE.Raycaster, intersects: THREE.Intersection[]): void;
856
+ }
857
+ declare const Point: ForwardRefComponent<ThreeElements['positionPoint'], PositionPoint>;
858
+ type PointsBuffersProps = ThreeElements['points'] & {
859
+ positions: Float32Array;
860
+ colors?: Float32Array;
861
+ sizes?: Float32Array;
862
+ stride?: 2 | 3;
863
+ };
864
+ declare const PointsBuffer: ForwardRefComponent<PointsBuffersProps, THREE.Points>;
865
+ declare const Points: ForwardRefComponent<PointsBuffersProps | PointsInstancesProps, THREE.Points>;
866
+
867
+ type QuadraticBezierLineRef = Line2 & {
868
+ setPoints(start: Vector3$1 | [number, number, number], end: Vector3$1 | [number, number, number], mid: Vector3$1 | [number, number, number]): void;
869
+ };
870
+ type QuadraticBezierLineProps = Omit<LineProps, 'points' | 'ref'> & {
871
+ start: Vector3$1 | [number, number, number];
872
+ end: Vector3$1 | [number, number, number];
873
+ mid?: Vector3$1 | [number, number, number];
874
+ segments?: number;
875
+ LineComponent?: React.ComponentType<LineProps>;
876
+ };
877
+ declare const QuadraticBezierLine: ForwardRefComponent<QuadraticBezierLineProps, QuadraticBezierLineRef>;
878
+
879
+ type RoundedBoxProps = {
880
+ args?: NamedArrayTuple<(width?: number, height?: number, depth?: number) => void>;
881
+ radius?: number;
882
+ smoothness?: number;
883
+ bevelSegments?: number;
884
+ steps?: number;
885
+ creaseAngle?: number;
886
+ } & Omit<ThreeElements['mesh'], 'ref' | 'args'>;
887
+ type RoundedBoxGeometryProps = Omit<RoundedBoxProps, 'children'> & Omit<ThreeElements['extrudeGeometry'], 'args' | 'ref'>;
888
+ declare const RoundedBox: ForwardRefComponent<RoundedBoxProps, Mesh>;
889
+ declare const RoundedBoxGeometry: ForwardRefComponent<RoundedBoxGeometryProps, ExtrudeGeometry>;
890
+
891
+ type ScreenQuadProps = Omit<ThreeElements['mesh'], 'ref' | 'args'>;
892
+ declare const ScreenQuad: ForwardRefComponent<ScreenQuadProps, THREE.Mesh>;
893
+
894
+ type Args<T> = T extends new (...args: any) => any ? ConstructorParameters<T> : T;
895
+ type ShapeProps<T> = Omit<ThreeElements['mesh'], 'ref' | 'args'> & {
896
+ args?: Args<T>;
897
+ };
898
+ declare const Box: ForwardRefComponent<ShapeProps<typeof THREE.BoxGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
899
+ declare const Circle: ForwardRefComponent<ShapeProps<typeof THREE.CircleGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
900
+ declare const Cone: ForwardRefComponent<ShapeProps<typeof THREE.ConeGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
901
+ declare const Cylinder: ForwardRefComponent<ShapeProps<typeof THREE.CylinderGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
902
+ declare const Sphere: ForwardRefComponent<ShapeProps<typeof THREE.SphereGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
903
+ declare const Plane: ForwardRefComponent<ShapeProps<typeof THREE.PlaneGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
904
+ declare const Tube: ForwardRefComponent<ShapeProps<typeof THREE.TubeGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
905
+ declare const Torus: ForwardRefComponent<ShapeProps<typeof THREE.TorusGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
906
+ declare const TorusKnot: ForwardRefComponent<ShapeProps<typeof THREE.TorusKnotGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
907
+ declare const Tetrahedron: ForwardRefComponent<ShapeProps<typeof THREE.TetrahedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
908
+ declare const Ring: ForwardRefComponent<ShapeProps<typeof THREE.RingGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
909
+ declare const Polyhedron: ForwardRefComponent<ShapeProps<typeof THREE.PolyhedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
910
+ declare const Icosahedron: ForwardRefComponent<ShapeProps<typeof THREE.IcosahedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
911
+ declare const Octahedron: ForwardRefComponent<ShapeProps<typeof THREE.OctahedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
912
+ declare const Dodecahedron: ForwardRefComponent<ShapeProps<typeof THREE.DodecahedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
913
+ declare const Extrude: ForwardRefComponent<ShapeProps<typeof THREE.ExtrudeGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
914
+ declare const Lathe: ForwardRefComponent<ShapeProps<typeof THREE.LatheGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
915
+ declare const Capsule: ForwardRefComponent<ShapeProps<typeof THREE.CapsuleGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
916
+ declare const Shape: ForwardRefComponent<ShapeProps<typeof THREE.ShapeGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
917
+
918
+ type Glyph = {
919
+ _cachedOutline: string[];
920
+ ha: number;
921
+ o: string;
922
+ };
923
+ type FontData = {
924
+ boundingBox: {
925
+ yMax: number;
926
+ yMin: number;
927
+ };
928
+ familyName: string;
929
+ glyphs: {
930
+ [k: string]: Glyph;
931
+ };
932
+ resolution: number;
933
+ underlineThickness: number;
934
+ ascender?: number;
935
+ descender?: number;
936
+ underlinePosition?: number;
937
+ original_font_information?: Record<string, unknown>;
938
+ };
939
+ type FontInput = string | FontData;
940
+ declare function useFont(font: FontInput): three_examples_jsm_loaders_FontLoader_js.Font;
941
+ declare namespace useFont {
942
+ var preload: (font: FontInput) => undefined;
943
+ var clear: (font: FontInput) => void;
944
+ }
945
+
946
+ declare module '@react-three/fiber' {
947
+ interface ThreeElements {
948
+ renamedTextGeometry: ThreeElement<typeof TextGeometry>;
949
+ }
950
+ }
951
+ type Text3DProps = Omit<ThreeElements['mesh'], 'ref'> & {
952
+ font: FontData | string;
953
+ bevelSegments?: number;
954
+ smooth?: number;
955
+ } & Omit<TextGeometryParameters, 'font'>;
956
+ declare const Text3D: ForwardRefComponent<React.PropsWithChildren<Text3DProps & {
957
+ letterSpacing?: number;
958
+ lineHeight?: number;
959
+ }>, THREE.Mesh>;
960
+
961
+ interface WireframeMaterialProps extends THREE.ShaderMaterialParameters {
962
+ fillOpacity?: number;
963
+ fillMix?: number;
964
+ strokeOpacity?: number;
965
+ thickness?: number;
966
+ colorBackfaces?: boolean;
967
+ dashInvert?: boolean;
968
+ dash?: boolean;
969
+ dashRepeats?: number;
970
+ dashLength?: number;
971
+ squeeze?: boolean;
972
+ squeezeMin?: number;
973
+ squeezeMax?: number;
974
+ stroke?: THREE.ColorRepresentation;
975
+ backfaceStroke?: THREE.ColorRepresentation;
976
+ fill?: THREE.ColorRepresentation;
977
+ }
978
+ declare const WireframeMaterialShaders: {
979
+ uniforms: {
980
+ strokeOpacity: number;
981
+ fillOpacity: number;
982
+ fillMix: number;
983
+ thickness: number;
984
+ colorBackfaces: boolean;
985
+ dashInvert: boolean;
986
+ dash: boolean;
987
+ dashRepeats: number;
988
+ dashLength: number;
989
+ squeeze: boolean;
990
+ squeezeMin: number;
991
+ squeezeMax: number;
992
+ stroke: THREE.Color;
993
+ backfaceStroke: THREE.Color;
994
+ fill: THREE.Color;
995
+ };
996
+ vertex: string;
997
+ fragment: string;
998
+ };
999
+ declare const WireframeMaterial: _react_three_fiber.ConstructorRepresentation<THREE.ShaderMaterial & {
1000
+ strokeOpacity: number;
1001
+ fillOpacity: number;
1002
+ fillMix: number;
1003
+ thickness: number;
1004
+ colorBackfaces: boolean;
1005
+ dashInvert: boolean;
1006
+ dash: boolean;
1007
+ dashRepeats: number;
1008
+ dashLength: number;
1009
+ squeeze: boolean;
1010
+ squeezeMin: number;
1011
+ squeezeMax: number;
1012
+ stroke: THREE.Color;
1013
+ backfaceStroke: THREE.Color;
1014
+ fill: THREE.Color;
1015
+ }> & {
1016
+ key: string;
1017
+ };
1018
+ declare function setWireframeOverride(material: THREE.Material, uniforms: {
1019
+ [key: string]: THREE.IUniform<any>;
1020
+ }): void;
1021
+ declare function useWireframeUniforms(uniforms: {
1022
+ [key: string]: THREE.IUniform<any>;
1023
+ }, props: WireframeMaterialProps): void;
1024
+
1025
+ declare module '@react-three/fiber' {
1026
+ interface ThreeElements {
1027
+ meshWireframeMaterial: ThreeElement<typeof WireframeMaterial>;
1028
+ }
1029
+ }
1030
+ interface WireframeProps {
1031
+ geometry?: THREE.BufferGeometry | React.RefObject<THREE.BufferGeometry>;
1032
+ simplify?: boolean;
1033
+ }
1034
+ declare function Wireframe({ geometry: customGeometry, ...props }: WireframeProps & WireframeMaterialProps): React.JSX.Element;
1035
+
1036
+ type GizmoHelperContext = {
1037
+ tweenCamera: (direction: Vector3$1) => void;
1038
+ };
1039
+ declare const useGizmoContext: () => GizmoHelperContext;
1040
+ type GizmoHelperProps = ThreeElements['group'] & {
1041
+ alignment?: 'top-left' | 'top-right' | 'bottom-right' | 'bottom-left' | 'bottom-center' | 'center-right' | 'center-left' | 'center-center' | 'top-center';
1042
+ margin?: [number, number];
1043
+ renderPriority?: number;
1044
+ autoClear?: boolean;
1045
+ onUpdate?: () => void;
1046
+ onTarget?: () => Vector3$1;
1047
+ };
1048
+ declare const GizmoHelper: ({ alignment, margin, renderPriority, onUpdate, onTarget, children, }: GizmoHelperProps) => any;
1049
+
1050
+ type GenericProps = {
1051
+ font?: string;
1052
+ opacity?: number;
1053
+ color?: string;
1054
+ hoverColor?: string;
1055
+ textColor?: string;
1056
+ strokeColor?: string;
1057
+ onClick?: (e: ThreeEvent<MouseEvent>) => null;
1058
+ faces?: string[];
1059
+ };
1060
+ declare const GizmoViewcube: (props: GenericProps) => React.JSX.Element;
1061
+
1062
+ type GizmoViewportProps = ThreeElements['group'] & {
1063
+ axisColors?: [string, string, string];
1064
+ axisScale?: [number, number, number];
1065
+ labels?: [string, string, string];
1066
+ axisHeadScale?: number;
1067
+ labelColor?: string;
1068
+ hideNegativeAxes?: boolean;
1069
+ hideAxisHeads?: boolean;
1070
+ disabled?: boolean;
1071
+ font?: string;
1072
+ onClick?: (e: ThreeEvent<MouseEvent>) => null;
1073
+ };
1074
+ declare const GizmoViewport: ({ hideNegativeAxes, hideAxisHeads, disabled, font, axisColors, axisHeadScale, axisScale, labels, labelColor, onClick, ...props }: GizmoViewportProps) => React.JSX.Element;
1075
+
1076
+ type OnDragStartProps = {
1077
+ component: 'Arrow' | 'Slider' | 'Rotator' | 'Sphere';
1078
+ axis: 0 | 1 | 2;
1079
+ origin: THREE.Vector3;
1080
+ directions: THREE.Vector3[];
1081
+ };
1082
+
1083
+ type PivotControlsProps = {
1084
+ enabled?: boolean;
1085
+ scale?: number;
1086
+ lineWidth?: number;
1087
+ fixed?: boolean;
1088
+ offset?: [number, number, number];
1089
+ rotation?: [number, number, number];
1090
+ matrix?: THREE.Matrix4;
1091
+ anchor?: [number, number, number];
1092
+ autoTransform?: boolean;
1093
+ activeAxes?: [boolean, boolean, boolean];
1094
+ disableAxes?: boolean;
1095
+ disableSliders?: boolean;
1096
+ disableRotations?: boolean;
1097
+ disableScaling?: boolean;
1098
+ translationLimits?: [[number, number] | undefined, [number, number] | undefined, [number, number] | undefined];
1099
+ rotationLimits?: [[number, number] | undefined, [number, number] | undefined, [number, number] | undefined];
1100
+ scaleLimits?: [[number, number] | undefined, [number, number] | undefined, [number, number] | undefined];
1101
+ axisColors?: [string | number, string | number, string | number];
1102
+ hoveredColor?: string | number;
1103
+ annotations?: boolean;
1104
+ annotationsClass?: string;
1105
+ onDragStart?: (props: OnDragStartProps) => void;
1106
+ onDrag?: (l: THREE.Matrix4, deltaL: THREE.Matrix4, w: THREE.Matrix4, deltaW: THREE.Matrix4) => void;
1107
+ onDragEnd?: () => void;
1108
+ depthTest?: boolean;
1109
+ renderOrder?: number;
1110
+ opacity?: number;
1111
+ visible?: boolean;
1112
+ userData?: {
1113
+ [key: string]: any;
1114
+ };
1115
+ children?: React.ReactNode;
1116
+ LineComponent?: React.ComponentType<LineProps>;
1117
+ };
1118
+ declare const PivotControls: ForwardRefComponent<PivotControlsProps, THREE.Group>;
1119
+
1120
+ type TransformControlsProps = Omit<ThreeElement<typeof TransformControls$1>, 'ref' | 'args'> & Omit<ThreeElements['group'], 'ref'> & {
1121
+ object?: THREE.Object3D | React.RefObject<THREE.Object3D>;
1122
+ enabled?: boolean;
1123
+ axis?: string | null;
1124
+ domElement?: HTMLElement;
1125
+ mode?: 'translate' | 'rotate' | 'scale';
1126
+ translationSnap?: number | null;
1127
+ rotationSnap?: number | null;
1128
+ scaleSnap?: number | null;
1129
+ space?: 'world' | 'local';
1130
+ size?: number;
1131
+ showX?: boolean;
1132
+ showY?: boolean;
1133
+ showZ?: boolean;
1134
+ children?: React.ReactElement<THREE.Object3D>;
1135
+ camera?: THREE.Camera;
1136
+ onChange?: (e?: THREE.Event) => void;
1137
+ onMouseDown?: (e?: THREE.Event) => void;
1138
+ onMouseUp?: (e?: THREE.Event) => void;
1139
+ onObjectChange?: (e?: THREE.Event) => void;
1140
+ makeDefault?: boolean;
1141
+ };
1142
+ declare const TransformControls: ForwardRefComponent<TransformControlsProps, TransformControls$1>;
1143
+
1144
+ type HelperType = Object3D & {
1145
+ update: () => void;
1146
+ dispose: () => void;
1147
+ };
1148
+ type HelperConstructor = new (...args: any[]) => any;
1149
+ type HelperArgs<T> = T extends [infer _, ...infer R] ? R : never;
1150
+ declare function useHelper<T extends HelperConstructor>(object3D: React.RefObject<Object3D> | Falsey, helperConstructor: T, ...args: HelperArgs<ConstructorParameters<T>>): React.RefObject<HelperType | null>;
1151
+ type HelperProps<T extends HelperConstructor> = {
1152
+ type: T;
1153
+ args?: HelperArgs<ConstructorParameters<T>>;
1154
+ };
1155
+ declare const Helper: <T extends HelperConstructor>({ type: helperConstructor, args, }: HelperProps<T>) => React.JSX.Element;
1156
+
1157
+ declare class PointMaterialImpl extends THREE.PointsMaterial {
1158
+ constructor(props?: THREE.PointsMaterialParameters | null);
1159
+ }
1160
+ type PointMaterialProps = Omit<ThreeElements['pointsMaterial'], 'ref'>;
1161
+ declare const PointMaterial: ForwardRefComponent<PointMaterialProps, PointMaterialImpl>;
1162
+
1163
+ type PositionalAudioProps = Omit<ThreeElements['positionalAudio'], 'ref' | 'args'> & {
1164
+ url: string;
1165
+ distance?: number;
1166
+ loop?: boolean;
1167
+ };
1168
+ declare const PositionalAudio: ForwardRefComponent<PositionalAudioProps, PositionalAudio$1>;
1169
+
1170
+ declare module '@react-three/fiber' {
1171
+ interface ThreeElements {
1172
+ positionMesh: ThreeElement<typeof PositionMesh>;
1173
+ }
1174
+ }
1175
+ type Api$1 = {
1176
+ getParent: () => React.RefObject<InstancedMesh>;
1177
+ subscribe: <T>(ref: React.RefObject<T>) => void;
1178
+ };
1179
+ type InstancesProps = Omit<ThreeElements['instancedMesh'], 'ref' | 'args'> & {
1180
+ context?: React.Context<Api$1>;
1181
+ range?: number;
1182
+ limit?: number;
1183
+ frames?: number;
1184
+ };
1185
+ type InstanceProps = Omit<ThreeElements['positionMesh'], 'ref'> & {
1186
+ context?: React.Context<Api$1>;
1187
+ };
1188
+ type InstancedAttributeProps = Omit<ThreeElements['instancedBufferAttribute'], 'ref' | 'args'> & {
1189
+ name: string;
1190
+ defaultValue: any;
1191
+ normalized?: boolean;
1192
+ usage?: number;
1193
+ };
1194
+ type InstancedMesh = Omit<THREE.InstancedMesh, 'instanceMatrix' | 'instanceColor'> & {
1195
+ instanceMatrix: THREE.InstancedBufferAttribute;
1196
+ instanceColor: THREE.InstancedBufferAttribute;
1197
+ };
1198
+ declare class PositionMesh extends THREE.Group {
1199
+ color: THREE.Color;
1200
+ instance: React.RefObject<THREE.InstancedMesh | undefined>;
1201
+ instanceKey: React.RefObject<PositionMesh | undefined>;
1202
+ constructor();
1203
+ get geometry(): THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap> | undefined;
1204
+ raycast(raycaster: THREE.Raycaster, intersects: THREE.Intersection[]): void;
1205
+ }
1206
+ 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"> & {
1207
+ context?: React.Context<Api$1>;
1208
+ } & React.RefAttributes<unknown>>;
1209
+ declare const Instances: ForwardRefComponent<InstancesProps, THREE.InstancedMesh>;
1210
+ interface MergedProps extends Omit<InstancesProps, 'children'> {
1211
+ meshes: THREE.Mesh[] | Record<string, THREE.Object3D>;
1212
+ children: (...instances: [React.FC<InstanceProps> & Record<string, React.FC<InstanceProps>>, ...React.FC<InstanceProps>[]]) => React.ReactNode;
1213
+ }
1214
+ declare const Merged: ForwardRefComponent<MergedProps, THREE.Group>;
1215
+ 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"> & {
1216
+ context?: React.Context<Api$1>;
1217
+ }> & React.RefAttributes<PositionMesh & T>>];
1218
+ declare const InstancedAttribute: React.ForwardRefExoticComponent<Omit<InstancedAttributeProps, "ref"> & React.RefAttributes<THREE.InstancedBufferAttribute>>;
1219
+
1220
+ type Size = {
1221
+ w: number;
1222
+ h: number;
1223
+ };
1224
+ type FrameData = {
1225
+ frame: {
1226
+ x: number;
1227
+ y: number;
1228
+ w: number;
1229
+ h: number;
1230
+ };
1231
+ scaleRatio?: number;
1232
+ rotated: boolean;
1233
+ trimmed: boolean;
1234
+ spriteSourceSize: {
1235
+ x: number;
1236
+ y: number;
1237
+ w: number;
1238
+ h: number;
1239
+ };
1240
+ sourceSize: Size;
1241
+ };
1242
+ type MetaData = {
1243
+ version: string;
1244
+ size: {
1245
+ w: number;
1246
+ h: number;
1247
+ };
1248
+ rows: number;
1249
+ columns: number;
1250
+ frameWidth: number;
1251
+ frameHeight: number;
1252
+ scale: string;
1253
+ };
1254
+ type Frames = Record<string, FrameData[]> | FrameData[];
1255
+ type SpriteData = {
1256
+ frames: Frames;
1257
+ meta: MetaData;
1258
+ };
1259
+ declare const getFirstFrame: (frames: SpriteData["frames"], frameName?: string) => FrameData;
1260
+ declare const checkIfFrameIsEmpty: (frameData: Uint8ClampedArray) => boolean;
1261
+ declare function useSpriteLoader<Url extends string>(input: Url | null, json?: string | null, animationNames?: string[] | null, numberOfFrames?: number | null, onLoad?: (texture: Texture$1, textureData?: SpriteData | null) => void, canvasRenderingContext2DSettings?: CanvasRenderingContext2DSettings): {
1262
+ spriteObj: {
1263
+ spriteTexture: THREE.Texture;
1264
+ spriteData: SpriteData | null;
1265
+ aspect: Vector3;
1266
+ } | null;
1267
+ loadJsonAndTexture: (textureUrl: string, jsonUrl?: string) => void;
1268
+ };
1269
+ declare namespace useSpriteLoader {
1270
+ var preload: (url: string) => void;
1271
+ var clear: (input: string) => void;
1272
+ }
1273
+
1274
+ type AnimationEventData = {
1275
+ currentFrameName: string;
1276
+ currentFrame: number;
1277
+ };
1278
+ type CommonProps<T, U, V> = Pick<T & U & V, keyof T & keyof U & keyof V>;
1279
+ type CommonMeshProps = CommonProps<React.ComponentProps<'mesh'>, React.ComponentProps<typeof Instance>, React.ComponentProps<typeof Instances>>;
1280
+ type SpriteAnimatorProps = {
1281
+ startFrame?: number;
1282
+ endFrame?: number;
1283
+ fps?: number;
1284
+ frameName?: string;
1285
+ textureDataURL?: string;
1286
+ textureImageURL?: string;
1287
+ loop?: boolean;
1288
+ numberOfFrames?: number;
1289
+ autoPlay?: boolean;
1290
+ animationNames?: Array<string>;
1291
+ onStart?: (data: AnimationEventData) => void;
1292
+ onEnd?: (data: AnimationEventData) => void;
1293
+ onLoopEnd?: (data: AnimationEventData) => void;
1294
+ onFrame?: (data: AnimationEventData) => void;
1295
+ play?: boolean;
1296
+ pause?: boolean;
1297
+ flipX?: boolean;
1298
+ alphaTest?: number;
1299
+ asSprite?: boolean;
1300
+ offset?: number;
1301
+ playBackwards?: boolean;
1302
+ resetOnEnd?: boolean;
1303
+ instanceItems?: Vector3[];
1304
+ maxItems?: number;
1305
+ spriteDataset?: {
1306
+ spriteTexture: THREE.Texture;
1307
+ spriteData: SpriteData | null;
1308
+ aspect: Vector3;
1309
+ } | null;
1310
+ canvasRenderingContext2DSettings?: CanvasRenderingContext2DSettings;
1311
+ roundFramePosition?: boolean;
1312
+ meshProps?: CommonMeshProps;
1313
+ } & Omit<ThreeElements['group'], 'ref'>;
1314
+ type SpriteAnimatorState = {
1315
+ current?: number;
1316
+ offset?: number;
1317
+ imageUrl?: string;
1318
+ hasEnded: boolean;
1319
+ ref: React.Ref<THREE.Group>;
1320
+ };
1321
+ declare function useSpriteAnimator(): SpriteAnimatorState | null;
1322
+ declare const SpriteAnimator: React.ForwardRefExoticComponent<Omit<SpriteAnimatorProps, "ref"> & React.RefAttributes<THREE.Group<THREE.Object3DEventMap>>>;
1323
+
1324
+ type Api<T extends AnimationClip> = {
1325
+ ref: React.RefObject<Object3D | undefined | null>;
1326
+ clips: AnimationClip[];
1327
+ mixer: AnimationMixer;
1328
+ names: T['name'][];
1329
+ actions: {
1330
+ [key in T['name']]: AnimationAction | null;
1331
+ };
1332
+ };
1333
+ declare function useAnimations<T extends AnimationClip>(clips: T[], root?: React.RefObject<Object3D | undefined | null> | Object3D): Api<T>;
1334
+
1335
+ declare function useContextBridge(...contexts: Array<React.Context<any>>): ({ children }: {
1336
+ children: React.ReactNode;
1337
+ }) => React.JSX.Element;
1338
+
1339
+ type CloneProps = Omit<ThreeElements['group'], 'ref' | 'children'> & {
1340
+ object: THREE.Object3D | THREE.Object3D[];
1341
+ children?: React.ReactNode;
1342
+ deep?: boolean | 'materialsOnly' | 'geometriesOnly';
1343
+ keys?: string[];
1344
+ inject?: ThreeElements['mesh'] | React.ReactNode | ((object: THREE.Object3D) => React.ReactNode);
1345
+ castShadow?: boolean;
1346
+ receiveShadow?: boolean;
1347
+ isChild?: boolean;
1348
+ };
1349
+ declare const Clone: ForwardRefComponent<CloneProps, THREE.Group>;
1350
+
1351
+ type ComputedAttributeProps = Omit<ThreeElements['bufferAttribute'], 'args'> & {
1352
+ compute: (geometry: BufferGeometry) => BufferAttribute;
1353
+ name: string;
1354
+ };
1355
+ declare const ComputedAttribute: ({ compute, name, ...props }: ComputedAttributeProps) => React.JSX.Element;
1356
+
1357
+ type ExampleProps = {
1358
+ font: string;
1359
+ color?: Color$1;
1360
+ debug?: boolean;
1361
+ bevelSize?: number;
1362
+ } & React.ComponentProps<'group'>;
1363
+ type ExampleApi = {
1364
+ incr: (x?: number) => void;
1365
+ decr: (x?: number) => void;
1366
+ };
1367
+ declare const Example: React.ForwardRefExoticComponent<Omit<ExampleProps, "ref"> & React.RefAttributes<ExampleApi>>;
1368
+
1369
+ type SamplePayload = {
1370
+ position: Vector3$1;
1371
+ normal: Vector3$1;
1372
+ color: Color;
1373
+ };
1374
+ type TransformFn = (payload: TransformPayload, i: number) => void;
1375
+ type TransformPayload = SamplePayload & {
1376
+ dummy: Object3D;
1377
+ sampledMesh: Mesh;
1378
+ };
1379
+ type SamplerProps = Omit<ThreeElements['group'], 'ref'> & {
1380
+ mesh?: React.RefObject<Mesh>;
1381
+ instances?: React.RefObject<InstancedMesh$1>;
1382
+ weight?: string;
1383
+ transform?: TransformFn;
1384
+ count?: number;
1385
+ };
1386
+ interface useSurfaceSamplerProps {
1387
+ transform?: TransformFn;
1388
+ weight?: string;
1389
+ count?: number;
1390
+ }
1391
+ declare function useSurfaceSampler(mesh: React.RefObject<Mesh>, count?: number, transform?: TransformFn, weight?: string, instanceMesh?: React.RefObject<InstancedMesh$1> | null): InstancedBufferAttribute;
1392
+ declare function Sampler({ children, weight, transform, instances, mesh, count, ...props }: SamplerProps): React.JSX.Element;
1393
+
1394
+ interface SvgProps extends Omit<ThreeElements['object3D'], 'ref'> {
1395
+ src: string;
1396
+ skipFill?: boolean;
1397
+ skipStrokes?: boolean;
1398
+ fillMaterial?: ThreeElements['meshBasicMaterial'];
1399
+ strokeMaterial?: ThreeElements['meshBasicMaterial'];
1400
+ fillMeshProps?: ThreeElements['mesh'];
1401
+ strokeMeshProps?: ThreeElements['mesh'];
1402
+ }
1403
+ declare const Svg: ForwardRefComponent<SvgProps, Object3D>;
1404
+
1405
+ declare function useDepthBuffer({ size, frames }?: {
1406
+ size?: number;
1407
+ frames?: number;
1408
+ }): DepthTexture | null;
1409
+
1410
+ interface CubeTextureOptions {
1411
+ path: string;
1412
+ }
1413
+ interface CubeTextureProps extends CubeTextureOptions {
1414
+ children?: (texture: CubeTexture$1) => React.ReactNode;
1415
+ files: string[];
1416
+ }
1417
+ declare function useCubeTexture(files: string[], { path }: CubeTextureOptions): CubeTexture$1;
1418
+ declare namespace useCubeTexture {
1419
+ var preload: (files: string[], { path }: CubeTextureOptions) => void;
1420
+ }
1421
+ declare function CubeTexture({ children, files, ...options }: CubeTextureProps): React.JSX.Element;
1422
+
1423
+ interface LoaderOptions {
1424
+ containerStyles: CSSProperties;
1425
+ innerStyles: CSSProperties;
1426
+ barStyles: CSSProperties;
1427
+ dataStyles: CSSProperties;
1428
+ dataInterpolation: (p: number) => string;
1429
+ initialState: (active: boolean) => boolean;
1430
+ }
1431
+ declare function Loader({ containerStyles, innerStyles, barStyles, dataStyles, dataInterpolation, initialState, }: Partial<LoaderOptions>): React.JSX.Element | null;
1432
+
1433
+ type PreloadProps = {
1434
+ all?: boolean;
1435
+ scene?: Object3D;
1436
+ camera?: Camera;
1437
+ };
1438
+ declare function Preload({ all, scene, camera }: PreloadProps): null;
1439
+
1440
+ declare function getHls(...args: ConstructorParameters<typeof hls_js__default>): Promise<hls_js__default | null>;
1441
+ declare function useVideoTexture(srcOrSrcObject: HTMLVideoElement['src' | 'srcObject'], { unsuspend, start, hls: hlsConfig, crossOrigin, muted, loop, playsInline, onVideoFrame, ...videoProps }?: {
1442
+ unsuspend?: keyof HTMLVideoElementEventMap;
1443
+ start?: boolean;
1444
+ hls?: Parameters<typeof getHls>[0];
1445
+ onVideoFrame?: VideoFrameRequestCallback;
1446
+ } & Partial<Omit<HTMLVideoElement, 'children' | 'src' | 'srcObject'>>): THREE.VideoTexture<HTMLVideoElement>;
1447
+ type UseVideoTextureParams = Parameters<typeof useVideoTexture>;
1448
+ type VideoTextureProps = {
1449
+ children?: (texture: VideoTexture) => React.ReactNode;
1450
+ src: UseVideoTextureParams[0];
1451
+ } & UseVideoTextureParams[1];
1452
+ type VideoTexture = ReturnType<typeof useVideoTexture>;
1453
+ declare const VideoTexture: React.ForwardRefExoticComponent<{
1454
+ children?: (texture: VideoTexture) => React.ReactNode;
1455
+ src: UseVideoTextureParams[0];
1456
+ } & {
1457
+ unsuspend?: keyof HTMLVideoElementEventMap;
1458
+ start?: boolean;
1459
+ hls?: Parameters<typeof getHls>[0];
1460
+ onVideoFrame?: VideoFrameRequestCallback;
1461
+ } & Partial<Omit<HTMLVideoElement, "children" | "src" | "srcObject">> & React.RefAttributes<THREE.VideoTexture<HTMLVideoElement>>>;
1462
+
1463
+ type ScreenVideoTextureProps = Omit<VideoTextureProps, 'src'> & {
1464
+ options?: DisplayMediaStreamOptions;
1465
+ };
1466
+ declare const ScreenVideoTexture: React.ForwardRefExoticComponent<Omit<{
1467
+ children?: (texture: THREE.VideoTexture<HTMLVideoElement>) => React.ReactNode;
1468
+ src: string | MediaProvider | null;
1469
+ } & {
1470
+ unsuspend?: keyof HTMLVideoElementEventMap;
1471
+ start?: boolean;
1472
+ hls?: Parameters<(userConfig?: Partial<hls_js.HlsConfig> | undefined) => Promise<hls_js.default | null>>[0];
1473
+ onVideoFrame?: VideoFrameRequestCallback;
1474
+ } & Partial<Omit<HTMLVideoElement, "children" | "src" | "srcObject">>, "src"> & {
1475
+ options?: DisplayMediaStreamOptions;
1476
+ } & React.RefAttributes<THREE.VideoTexture<HTMLVideoElement>>>;
1477
+
1478
+ type TrailConfig = {
1479
+ size?: number;
1480
+ maxAge?: number;
1481
+ radius?: number;
1482
+ intensity?: number;
1483
+ interpolate?: number;
1484
+ smoothing?: number;
1485
+ minForce?: number;
1486
+ blend?: CanvasRenderingContext2D['globalCompositeOperation'];
1487
+ ease?: (t: number) => number;
1488
+ };
1489
+ declare function useTrailTexture(config?: Partial<TrailConfig>): [Texture$1, (ThreeEvent: any) => void];
1490
+ type TrailTextureProps = {
1491
+ children?: (texture: ReturnType<typeof useTrailTexture>) => React.ReactNode;
1492
+ } & TrailConfig;
1493
+ declare const TrailTexture: ({ children, ...config }: TrailTextureProps) => React.JSX.Element;
1494
+
1495
+ declare function useFBX(path: string): Group;
1496
+ declare namespace useFBX {
1497
+ var preload: (path: string) => void;
1498
+ var clear: (input: string | string[]) => void;
1499
+ }
1500
+ declare function Fbx({ path, ...props }: {
1501
+ path: Parameters<typeof useFBX>[0];
1502
+ } & Omit<React.ComponentProps<typeof Clone>, 'object'>): React.JSX.Element;
1503
+
1504
+ type Path = string | string[];
1505
+ type UseDraco = boolean | string;
1506
+ type UseMeshopt = boolean;
1507
+ type ExtendLoader = (loader: GLTFLoader) => void;
1508
+ declare const useGLTF: {
1509
+ <T extends Path>(path: T, useDraco?: UseDraco, useMeshopt?: UseMeshopt, extendLoader?: ExtendLoader): T extends any[] ? (GLTF & ObjectMap)[] : GLTF & ObjectMap;
1510
+ preload(path: Path, useDraco?: UseDraco, useMeshopt?: UseMeshopt, extendLoader?: ExtendLoader): void;
1511
+ clear(path: Path): void;
1512
+ setDecoderPath(path: string): void;
1513
+ };
1514
+ type GltfProps = Omit<CloneProps, 'object'> & {
1515
+ src: string;
1516
+ useDraco?: UseDraco;
1517
+ useMeshOpt?: UseMeshopt;
1518
+ extendLoader?: ExtendLoader;
1519
+ };
1520
+ declare const Gltf: React.ForwardRefExoticComponent<Omit<GltfProps, "ref"> & React.RefAttributes<THREE.Group<THREE.Object3DEventMap>>>;
1521
+
1522
+ declare function useKTX2<Url extends string[] | string | Record<string, string>>(input: Url, basisPath?: string): Url extends any[] ? Texture$1[] : Url extends object ? {
1523
+ [key in keyof Url]: Texture$1;
1524
+ } : Texture$1;
1525
+ declare namespace useKTX2 {
1526
+ var preload: (url: string extends any[] ? string[] : string, basisPath?: string) => void;
1527
+ var clear: (input: string | string[]) => void;
1528
+ }
1529
+ declare const Ktx2: ({ children, input, basisPath, }: {
1530
+ children?: (texture: ReturnType<typeof useKTX2>) => React.ReactNode;
1531
+ input: Parameters<typeof useKTX2>[0];
1532
+ basisPath?: Parameters<typeof useKTX2>[1];
1533
+ }) => React.JSX.Element;
1534
+
1535
+ type Data = {
1536
+ errors: string[];
1537
+ active: boolean;
1538
+ progress: number;
1539
+ item: string;
1540
+ loaded: number;
1541
+ total: number;
1542
+ };
1543
+ declare const useProgress: zustand.UseBoundStore<zustand.StoreApi<Data>>;
1544
+
1545
+ declare function Progress({ children }: {
1546
+ children?: (result: Data) => React.ReactNode;
1547
+ }): React.JSX.Element;
1548
+
1549
+ type MappedTextureType<T extends string | string[] | Record<string, string>> = T extends string[] ? Texture$1[] : T extends Record<string, string> ? {
1550
+ [K in keyof T]: Texture$1;
1551
+ } : Texture$1;
1552
+ declare const IsObject: (url: unknown) => url is Record<string, string>;
1553
+ declare function useTexture<Url extends string[] | string | Record<string, string>>(input: Url, onLoad?: (texture: MappedTextureType<Url>) => void): MappedTextureType<Url>;
1554
+ declare namespace useTexture {
1555
+ var preload: (url: string | string[]) => void;
1556
+ var clear: (input: string | string[]) => void;
1557
+ }
1558
+ declare const Texture: ({ children, input, onLoad, }: {
1559
+ children?: (texture: ReturnType<typeof useTexture>) => React.ReactNode;
1560
+ input: Parameters<typeof useTexture>[0];
1561
+ onLoad?: Parameters<typeof useTexture>[1];
1562
+ }) => React.JSX.Element;
1563
+
1564
+ type WebcamVideoTextureProps = Omit<VideoTextureProps, 'src'> & {
1565
+ constraints?: MediaStreamConstraints;
1566
+ };
1567
+ declare const WebcamVideoTexture: React.ForwardRefExoticComponent<Omit<{
1568
+ children?: (texture: THREE.VideoTexture<HTMLVideoElement>) => React.ReactNode;
1569
+ src: string | MediaProvider | null;
1570
+ } & {
1571
+ unsuspend?: keyof HTMLVideoElementEventMap;
1572
+ start?: boolean;
1573
+ hls?: Parameters<(userConfig?: Partial<hls_js.HlsConfig> | undefined) => Promise<hls_js.default | null>>[0];
1574
+ onVideoFrame?: VideoFrameRequestCallback;
1575
+ } & Partial<Omit<HTMLVideoElement, "children" | "src" | "srcObject">>, "src"> & {
1576
+ constraints?: MediaStreamConstraints;
1577
+ } & React.RefAttributes<THREE.VideoTexture<HTMLVideoElement>>>;
1578
+
1579
+ declare function AdaptiveDpr({ pixelated }: {
1580
+ pixelated?: boolean;
1581
+ }): null;
1582
+
1583
+ declare function AdaptiveEvents(): null;
1584
+
1585
+ declare const useDetectGPU: (props?: GetGPUTier) => detect_gpu.TierResult;
1586
+ type DetectGPUProps = {
1587
+ children?: (result: ReturnType<typeof useDetectGPU>) => React.ReactNode;
1588
+ } & Parameters<typeof useDetectGPU>[0];
1589
+ declare function DetectGPU({ children, ...options }: DetectGPUProps): React.JSX.Element;
1590
+
1591
+ declare function meshBounds(raycaster: Raycaster, intersects: Intersection[]): void;
1592
+
1593
+ type PerformanceMonitorHookApi = {
1594
+ onIncline: (api: PerformanceMonitorApi) => void;
1595
+ onDecline: (api: PerformanceMonitorApi) => void;
1596
+ onChange: (api: PerformanceMonitorApi) => void;
1597
+ onFallback: (api: PerformanceMonitorApi) => void;
1598
+ };
1599
+ type PerformanceMonitorApi = {
1600
+ fps: number;
1601
+ factor: number;
1602
+ refreshrate: number;
1603
+ frames: number[];
1604
+ averages: number[];
1605
+ index: number;
1606
+ flipped: number;
1607
+ fallback: boolean;
1608
+ subscriptions: Map<Symbol, Partial<PerformanceMonitorHookApi>>;
1609
+ subscribe: (ref: React.RefObject<Partial<PerformanceMonitorHookApi>>) => () => void;
1610
+ };
1611
+ type PerformanceMonitorProps = {
1612
+ ms?: number;
1613
+ iterations?: number;
1614
+ threshold?: number;
1615
+ bounds?: (refreshrate: number) => [lower: number, upper: number];
1616
+ flipflops?: number;
1617
+ factor?: number;
1618
+ step?: number;
1619
+ onIncline?: (api: PerformanceMonitorApi) => void;
1620
+ onDecline?: (api: PerformanceMonitorApi) => void;
1621
+ onChange?: (api: PerformanceMonitorApi) => void;
1622
+ onFallback?: (api: PerformanceMonitorApi) => void;
1623
+ children?: React.ReactNode;
1624
+ };
1625
+ declare function PerformanceMonitor({ iterations, ms, threshold, step, factor: _factor, flipflops, bounds, onIncline, onDecline, onChange, onFallback, children, }: PerformanceMonitorProps): React.JSX.Element;
1626
+ declare function usePerformanceMonitor({ onIncline, onDecline, onChange, onFallback, }: Partial<PerformanceMonitorHookApi>): void;
1627
+
1628
+ type StatsProps = {
1629
+ showPanel?: number;
1630
+ className?: string;
1631
+ parent?: React.RefObject<HTMLElement>;
1632
+ };
1633
+ declare function Stats({ showPanel, className, parent }: StatsProps): null;
1634
+
1635
+ type StatsOptions = ConstructorParameters<typeof Stats$1>[0];
1636
+ type StatsGlProps = Partial<StatsOptions> & {
1637
+ id?: string;
1638
+ clearStatsGlStyle?: boolean;
1639
+ showPanel?: number;
1640
+ className?: string;
1641
+ parent?: React.RefObject<HTMLElement>;
1642
+ ref?: React.RefObject<HTMLElement>;
1643
+ };
1644
+ declare const StatsGl: ForwardRefComponent<StatsGlProps, HTMLDivElement>;
1645
+
1646
+ type FBOSettings = {
1647
+ depth?: boolean;
1648
+ } & RenderTargetOptions;
1649
+ declare function useFBO(width?: number | FBOSettings, height?: number, settings?: FBOSettings): THREE.WebGLRenderTarget<THREE.Texture<unknown>>;
1650
+ type UseFBOParams = Parameters<typeof useFBO>;
1651
+ type FboProps = {
1652
+ children?: (target: Fbo) => React.ReactNode;
1653
+ width?: UseFBOParams[0];
1654
+ height?: UseFBOParams[1];
1655
+ } & FBOSettings;
1656
+ type Fbo = ReturnType<typeof useFBO>;
1657
+ declare const Fbo: React.ForwardRefExoticComponent<{
1658
+ children?: (target: Fbo) => React.ReactNode;
1659
+ width?: UseFBOParams[0];
1660
+ height?: UseFBOParams[1];
1661
+ } & {
1662
+ depth?: boolean;
1663
+ } & THREE.RenderTargetOptions & React.RefAttributes<THREE.WebGLRenderTarget<THREE.Texture<unknown>>>>;
1664
+
1665
+ type FisheyeProps = ThreeElements['mesh'] & {
1666
+ zoom?: number;
1667
+ segments?: number;
1668
+ resolution?: number;
1669
+ children: React.ReactNode;
1670
+ renderPriority?: number;
1671
+ };
1672
+ declare function Fisheye({ renderPriority, zoom, segments, children, resolution, ...props }: FisheyeProps): React.JSX.Element;
1673
+
1674
+ type HudProps = {
1675
+ children: React.ReactNode;
1676
+ renderPriority?: number;
1677
+ };
1678
+ declare function Hud({ children, renderPriority }: HudProps): React.JSX.Element;
1679
+
1680
+ type MaskProps = Omit<ThreeElements['mesh'], 'ref' | 'id'> & {
1681
+ id: number;
1682
+ colorWrite?: boolean;
1683
+ depthWrite?: boolean;
1684
+ };
1685
+ declare const Mask: ForwardRefComponent<MaskProps, THREE.Mesh>;
1686
+ declare function useMask(id: number, inverse?: boolean): {
1687
+ stencilWrite: boolean;
1688
+ stencilRef: number;
1689
+ stencilFunc: 514 | 517;
1690
+ stencilFail: 7680;
1691
+ stencilZFail: 7680;
1692
+ stencilZPass: 7680;
1693
+ };
1694
+
1695
+ type RenderCubeTextureProps = Omit<ThreeElements['texture'], 'ref' | 'args' | 'rotation'> & {
1696
+ stencilBuffer?: boolean;
1697
+ depthBuffer?: boolean;
1698
+ generateMipmaps?: boolean;
1699
+ renderPriority?: number;
1700
+ eventPriority?: number;
1701
+ frames?: number;
1702
+ compute?: ComputeFunction;
1703
+ flip?: boolean;
1704
+ resolution?: number;
1705
+ children: React.ReactNode;
1706
+ near?: number;
1707
+ far?: number;
1708
+ position?: ReactThreeFiber.Vector3;
1709
+ rotation?: ReactThreeFiber.Euler;
1710
+ scale?: ReactThreeFiber.Vector3;
1711
+ quaternion?: ReactThreeFiber.Quaternion;
1712
+ matrix?: ReactThreeFiber.Matrix4;
1713
+ matrixAutoUpdate?: boolean;
1714
+ };
1715
+ type RenderCubeTextureApi = {
1716
+ scene: THREE.Scene;
1717
+ fbo: THREE.WebGLCubeRenderTarget;
1718
+ camera: THREE.CubeCamera;
1719
+ };
1720
+ declare const RenderCubeTexture: ForwardRefComponent<RenderCubeTextureProps, RenderCubeTextureApi>;
1721
+
1722
+ declare function useCustomRaycast(camera: Camera | React.RefObject<Camera>, props?: Partial<Raycaster>): (_: Raycaster, intersects: Intersection[]) => void;
1723
+
1724
+ type CanvasSize = {
1725
+ top: number;
1726
+ left: number;
1727
+ height: number;
1728
+ width: number;
1729
+ };
1730
+ type ContainerProps = {
1731
+ visible: boolean;
1732
+ scene: THREE.Scene;
1733
+ index: number;
1734
+ children?: React.ReactNode;
1735
+ frames: number;
1736
+ rect: React.RefObject<DOMRect>;
1737
+ track?: React.RefObject<HTMLElement>;
1738
+ canvasSize: CanvasSize;
1739
+ };
1740
+ type ViewProps = {
1741
+ as?: string;
1742
+ id?: string;
1743
+ className?: string;
1744
+ style?: React.CSSProperties;
1745
+ visible?: boolean;
1746
+ index?: number;
1747
+ frames?: number;
1748
+ children?: React.ReactNode;
1749
+ track?: React.RefObject<HTMLElement>;
1750
+ };
1751
+ type ViewportProps = {
1752
+ Port: () => React.JSX.Element;
1753
+ } & React.ForwardRefExoticComponent<ViewProps & React.RefAttributes<HTMLElement | THREE.Group>>;
1754
+ declare const View: ViewportProps;
1755
+
1756
+ type BackdropProps = ThreeElements['group'] & {
1757
+ floor?: number;
1758
+ segments?: number;
1759
+ receiveShadow?: boolean;
1760
+ children?: React.ReactNode;
1761
+ };
1762
+ declare function Backdrop({ children, floor, segments, receiveShadow, ...props }: {
1763
+ [x: string]: any;
1764
+ children: any;
1765
+ floor?: number | undefined;
1766
+ segments?: number | undefined;
1767
+ receiveShadow: any;
1768
+ }): React.JSX.Element;
1769
+
1770
+ type BBAnchorProps = ThreeElements['group'] & {
1771
+ anchor: THREE.Vector3 | [number, number, number];
1772
+ };
1773
+ declare const BBAnchor: ({ anchor, ...props }: BBAnchorProps) => React.JSX.Element;
1774
+
1775
+ type BillboardProps = Omit<ThreeElements['group'], 'ref'> & {
1776
+ follow?: boolean;
1777
+ lockX?: boolean;
1778
+ lockY?: boolean;
1779
+ lockZ?: boolean;
1780
+ };
1781
+ declare const Billboard: ForwardRefComponent<BillboardProps, Group>;
1782
+
1783
+ type SizeProps = {
1784
+ box: THREE.Box3;
1785
+ size: THREE.Vector3;
1786
+ center: THREE.Vector3;
1787
+ distance: number;
1788
+ };
1789
+ type BoundsApi = {
1790
+ getSize: () => SizeProps;
1791
+ refresh(object?: THREE.Object3D | THREE.Box3): BoundsApi;
1792
+ reset(): BoundsApi;
1793
+ moveTo(position: THREE.Vector3 | [number, number, number]): BoundsApi;
1794
+ lookAt({ target, up, }: {
1795
+ target?: THREE.Vector3 | [number, number, number];
1796
+ up?: THREE.Vector3 | [number, number, number];
1797
+ }): BoundsApi;
1798
+ to({ position, target }: {
1799
+ position: [number, number, number];
1800
+ target: [number, number, number];
1801
+ }): BoundsApi;
1802
+ fit(): BoundsApi;
1803
+ clip(): BoundsApi;
1804
+ };
1805
+ type BoundsProps = Omit<ThreeElements['group'], 'ref'> & {
1806
+ maxDuration?: number;
1807
+ margin?: number;
1808
+ observe?: boolean;
1809
+ fit?: boolean;
1810
+ clip?: boolean;
1811
+ interpolateFunc?: (t: number) => number;
1812
+ onFit?: (data: SizeProps) => void;
1813
+ };
1814
+ declare function Bounds({ children, maxDuration, margin, observe, fit, clip, interpolateFunc, onFit, }: BoundsProps): React.JSX.Element;
1815
+ declare function useBounds(): BoundsApi;
1816
+
1817
+ type OnCenterCallbackProps = {
1818
+ parent: Object3D;
1819
+ container: Object3D;
1820
+ width: number;
1821
+ height: number;
1822
+ depth: number;
1823
+ boundingBox: Box3;
1824
+ boundingSphere: Sphere$1;
1825
+ center: Vector3$1;
1826
+ verticalAlignment: number;
1827
+ horizontalAlignment: number;
1828
+ depthAlignment: number;
1829
+ };
1830
+ type CenterProps = Omit<ThreeElements['group'], 'ref'> & {
1831
+ top?: boolean;
1832
+ right?: boolean;
1833
+ bottom?: boolean;
1834
+ left?: boolean;
1835
+ front?: boolean;
1836
+ back?: boolean;
1837
+ disable?: boolean;
1838
+ disableX?: boolean;
1839
+ disableY?: boolean;
1840
+ disableZ?: boolean;
1841
+ object?: Object3D | null;
1842
+ precise?: boolean;
1843
+ onCentered?: (props: OnCenterCallbackProps) => void;
1844
+ cacheKey?: any;
1845
+ };
1846
+ declare const Center: ForwardRefComponent<CenterProps, Group>;
1847
+
1848
+ declare const presetsObj: {
1849
+ apartment: string;
1850
+ city: string;
1851
+ dawn: string;
1852
+ forest: string;
1853
+ lobby: string;
1854
+ night: string;
1855
+ park: string;
1856
+ studio: string;
1857
+ sunset: string;
1858
+ warehouse: string;
1859
+ };
1860
+ type PresetsType = keyof typeof presetsObj;
1861
+
1862
+ type EnvironmentLoaderProps = {
1863
+ files?: string | string[];
1864
+ path?: string;
1865
+ preset?: PresetsType;
1866
+ extensions?: (loader: Loader$1) => void;
1867
+ colorSpace?: ColorSpace;
1868
+ };
1869
+ declare function useEnvironment({ files, path, preset, colorSpace, extensions, }?: Partial<EnvironmentLoaderProps>): Texture$1<unknown> | CubeTexture$1<unknown>;
1870
+ declare namespace useEnvironment {
1871
+ var preload: (preloadOptions?: EnvironmentLoaderPreloadOptions) => void;
1872
+ var clear: (clearOptions?: EnvironmentLoaderClearOptions) => void;
1873
+ }
1874
+ type EnvironmentLoaderPreloadOptions = Omit<EnvironmentLoaderProps, 'encoding'>;
1875
+ type EnvironmentLoaderClearOptions = Pick<EnvironmentLoaderProps, 'files' | 'preset'>;
1876
+
1877
+ type EnvironmentProps = {
1878
+ children?: React.ReactNode;
1879
+ frames?: number;
1880
+ near?: number;
1881
+ far?: number;
1882
+ resolution?: number;
1883
+ background?: boolean | 'only';
1884
+ blur?: number;
1885
+ backgroundBlurriness?: number;
1886
+ backgroundIntensity?: number;
1887
+ backgroundRotation?: Euler;
1888
+ environmentIntensity?: number;
1889
+ environmentRotation?: Euler;
1890
+ map?: Texture$1;
1891
+ preset?: PresetsType;
1892
+ scene?: Scene | React.RefObject<Scene>;
1893
+ ground?: boolean | {
1894
+ radius?: number;
1895
+ height?: number;
1896
+ scale?: number;
1897
+ };
1898
+ } & EnvironmentLoaderProps;
1899
+ declare function EnvironmentMap({ scene, background, map, ...config }: EnvironmentProps): null;
1900
+ declare function EnvironmentCube({ background, scene, blur, backgroundBlurriness, backgroundIntensity, backgroundRotation, environmentIntensity, environmentRotation, ...rest }: EnvironmentProps): null;
1901
+ declare function EnvironmentPortal({ children, near, far, resolution, frames, map, background, blur, backgroundBlurriness, backgroundIntensity, backgroundRotation, environmentIntensity, environmentRotation, scene, files, path, preset, extensions, }: EnvironmentProps): React.JSX.Element;
1902
+ declare module '@react-three/fiber' {
1903
+ interface ThreeElements {
1904
+ groundProjectedEnvImpl: ThreeElement<typeof GroundedSkybox>;
1905
+ }
1906
+ }
1907
+ declare function Environment(props: EnvironmentProps): React.JSX.Element;
1908
+
1909
+ type FloatProps = Omit<ThreeElements['group'], 'ref'> & {
1910
+ enabled?: boolean;
1911
+ speed?: number;
1912
+ rotationIntensity?: number;
1913
+ floatIntensity?: number;
1914
+ children?: React.ReactNode;
1915
+ floatingRange?: [number?, number?];
1916
+ autoInvalidate?: boolean;
1917
+ };
1918
+ declare const Float: ForwardRefComponent<FloatProps, THREE.Group>;
1919
+
1920
+ type LightProps = Omit<ThreeElements['mesh'], 'ref'> & {
1921
+ args?: any[];
1922
+ map?: THREE.Texture;
1923
+ toneMapped?: boolean;
1924
+ color?: ReactThreeFiber.Color;
1925
+ form?: 'circle' | 'ring' | 'rect' | 'plane' | 'box' | any;
1926
+ scale?: number | [number, number, number] | [number, number];
1927
+ intensity?: number;
1928
+ target?: boolean | [number, number, number] | THREE.Vector3;
1929
+ light?: Partial<ThreeElements['pointLight']>;
1930
+ };
1931
+ declare const Lightformer: ForwardRefComponent<LightProps, THREE.Mesh>;
1932
+
1933
+ type ResizeProps = Omit<ThreeElements['group'], 'ref'> & {
1934
+ width?: boolean;
1935
+ height?: boolean;
1936
+ depth?: boolean;
1937
+ box3?: THREE.Box3;
1938
+ precise?: boolean;
1939
+ };
1940
+ declare const Resize: React.ForwardRefExoticComponent<Omit<ResizeProps, "ref"> & React.RefAttributes<THREE.Group<THREE.Object3DEventMap>>>;
1941
+
1942
+ type ScreenSizerProps = Omit<ThreeElements['object3D'], 'ref'> & {
1943
+ scale?: number;
1944
+ };
1945
+ declare const ScreenSizer: ForwardRefComponent<ScreenSizerProps, Object3D>;
1946
+
1947
+ type ShadowProps = Omit<ThreeElements['mesh'], 'ref'> & {
1948
+ colorStop?: number;
1949
+ fog?: boolean;
1950
+ color?: Color | number | string;
1951
+ opacity?: number;
1952
+ depthWrite?: boolean;
1953
+ };
1954
+ type ShadowType = Mesh<PlaneGeometry, MeshBasicMaterial>;
1955
+ declare const Shadow: ForwardRefComponent<ShadowProps, ShadowType>;
1956
+
1957
+ type SkyProps = {
1958
+ distance?: number;
1959
+ sunPosition?: ReactThreeFiber.Vector3;
1960
+ inclination?: number;
1961
+ azimuth?: number;
1962
+ mieCoefficient?: number;
1963
+ mieDirectionalG?: number;
1964
+ rayleigh?: number;
1965
+ turbidity?: number;
1966
+ };
1967
+ declare function calcPosFromAngles(inclination: number, azimuth: number, vector?: Vector3$1): Vector3$1;
1968
+ declare const Sky: ForwardRefComponent<SkyProps, Sky$1>;
1969
+
1970
+ type StageShadows = Partial<AccumulativeShadowsProps> & Partial<RandomizedLightProps> & Partial<ContactShadowsProps> & {
1971
+ type: 'contact' | 'accumulative';
1972
+ offset?: number;
1973
+ bias?: number;
1974
+ normalBias?: number;
1975
+ size?: number;
1976
+ };
1977
+ type StageProps = Omit<ThreeElements['group'], 'ref'> & {
1978
+ preset?: 'rembrandt' | 'portrait' | 'upfront' | 'soft' | {
1979
+ main: [x: number, y: number, z: number];
1980
+ fill: [x: number, y: number, z: number];
1981
+ };
1982
+ shadows?: boolean | 'contact' | 'accumulative' | StageShadows;
1983
+ adjustCamera?: boolean | number;
1984
+ environment?: PresetsType | Partial<EnvironmentProps> | null;
1985
+ intensity?: number;
1986
+ center?: Partial<CenterProps>;
1987
+ };
1988
+ declare function Stage({ children, center, adjustCamera, intensity, shadows, environment, preset, ...props }: StageProps): React.JSX.Element;
1989
+
1990
+ declare function useMatcapTexture(id?: number | string, format?: number, onLoad?: (texture: Texture$1 | Texture$1[]) => void): [Texture$1, string, number];
1991
+ declare const MatcapTexture: ({ children, id, format, onLoad, }: {
1992
+ children?: (texture: ReturnType<typeof useMatcapTexture>) => React.ReactNode;
1993
+ id?: Parameters<typeof useMatcapTexture>[0];
1994
+ format?: Parameters<typeof useMatcapTexture>[1];
1995
+ onLoad?: Parameters<typeof useMatcapTexture>[2];
1996
+ }) => React.JSX.Element;
1997
+
1998
+ type Settings = {
1999
+ repeat?: number[];
2000
+ anisotropy?: number;
2001
+ offset?: number[];
2002
+ };
2003
+ declare function useNormalTexture(id?: number, settings?: Settings, onLoad?: (texture: Texture$1 | Texture$1[]) => void): [Texture$1, string, number];
2004
+ declare const NormalTexture: ({ children, id, onLoad, ...settings }: {
2005
+ children?: (texture: ReturnType<typeof useNormalTexture>) => React.ReactNode;
2006
+ id?: Parameters<typeof useNormalTexture>[0];
2007
+ onLoad?: Parameters<typeof useNormalTexture>[2];
2008
+ } & Settings) => React.JSX.Element;
2009
+
2010
+ type CycleRaycastProps = {
2011
+ onChanged?: (hits: THREE.Intersection[], cycle: number) => null;
2012
+ preventDefault?: boolean;
2013
+ scroll?: boolean;
2014
+ keyCode?: number;
2015
+ portal?: React.RefObject<HTMLElement>;
2016
+ };
2017
+ declare function CycleRaycast({ onChanged, portal, preventDefault, scroll, keyCode, }: CycleRaycastProps): null;
2018
+
2019
+ declare function defaultCalculatePosition(el: Object3D, camera: Camera, size: {
2020
+ width: number;
2021
+ height: number;
2022
+ }): number[];
2023
+ type CalculatePosition = typeof defaultCalculatePosition;
2024
+ type PointerEventsProperties = 'auto' | 'none' | 'visiblePainted' | 'visibleFill' | 'visibleStroke' | 'visible' | 'painted' | 'fill' | 'stroke' | 'all' | 'inherit';
2025
+ interface HtmlProps extends Omit<Assign<React.HTMLAttributes<HTMLDivElement>, ThreeElements['group']>, 'ref'> {
2026
+ prepend?: boolean;
2027
+ center?: boolean;
2028
+ fullscreen?: boolean;
2029
+ eps?: number;
2030
+ portal?: React.RefObject<HTMLElement>;
2031
+ distanceFactor?: number;
2032
+ sprite?: boolean;
2033
+ transform?: boolean;
2034
+ zIndexRange?: Array<number>;
2035
+ calculatePosition?: CalculatePosition;
2036
+ as?: string;
2037
+ wrapperClass?: string;
2038
+ pointerEvents?: PointerEventsProperties;
2039
+ occlude?: React.RefObject<Object3D>[] | boolean | 'raycast' | 'blending';
2040
+ onOcclude?: (hidden: boolean) => void;
2041
+ material?: React.ReactNode;
2042
+ geometry?: React.ReactNode;
2043
+ castShadow?: boolean;
2044
+ receiveShadow?: boolean;
2045
+ }
2046
+ declare const Html: ForwardRefComponent<HtmlProps, HTMLDivElement>;
2047
+
2048
+ declare function useAspect(width: number, height: number, factor?: number): [number, number, number];
2049
+
2050
+ declare function useCursor(hovered: boolean, onPointerOver?: string, onPointerOut?: string, container?: HTMLElement): void;
2051
+
2052
+ declare function useIntersect<T extends Object3D>(onChange: (visible: boolean) => void): React.RefObject<T>;
2053
+
2054
+ type ScreenSpaceProps = Omit<ThreeElements['group'], 'ref'> & {
2055
+ depth?: number;
2056
+ };
2057
+ declare const ScreenSpace: ForwardRefComponent<ScreenSpaceProps, Group>;
2058
+
2059
+ type SelectProps = Omit<ThreeElements['group'], 'ref'> & {
2060
+ multiple?: boolean;
2061
+ box?: boolean;
2062
+ border?: string;
2063
+ backgroundColor?: string;
2064
+ onChange?: (selected: THREE.Object3D[]) => void;
2065
+ onChangePointerUp?: (selected: THREE.Object3D[]) => void;
2066
+ filter?: (selected: THREE.Object3D[]) => THREE.Object3D[];
2067
+ };
2068
+ declare function Select({ box, multiple, children, onChange, onChangePointerUp, border, backgroundColor, filter: customFilter, ...props }: SelectProps): React.JSX.Element;
2069
+ declare function useSelect(): THREE.Object3D[];
2070
+
2071
+ type AsciiRendererProps = {
2072
+ renderIndex?: number;
2073
+ bgColor?: string;
2074
+ fgColor?: string;
2075
+ characters?: string;
2076
+ invert?: boolean;
2077
+ color?: boolean;
2078
+ resolution?: number;
2079
+ };
2080
+ declare function AsciiRenderer({ renderIndex, bgColor, fgColor, characters, invert, color, resolution, }: AsciiRendererProps): React.JSX.Element;
2081
+
2082
+ declare function BakeShadows(): null;
2083
+
2084
+ declare class ConvolutionMaterial extends THREE.ShaderMaterial {
2085
+ readonly kernel: Float32Array;
2086
+ constructor(texelSize?: THREE.Vector2);
2087
+ setTexelSize(x: number, y: number): void;
2088
+ setResolution(resolution: THREE.Vector2): void;
2089
+ }
2090
+
2091
+ interface BlurPassProps {
2092
+ gl: WebGLRenderer;
2093
+ resolution: number;
2094
+ width?: number;
2095
+ height?: number;
2096
+ minDepthThreshold?: number;
2097
+ maxDepthThreshold?: number;
2098
+ depthScale?: number;
2099
+ depthToBlurRatioBias?: number;
2100
+ }
2101
+ declare class BlurPass {
2102
+ readonly renderTargetA: WebGLRenderTarget;
2103
+ readonly renderTargetB: WebGLRenderTarget;
2104
+ readonly convolutionMaterial: ConvolutionMaterial;
2105
+ readonly scene: Scene;
2106
+ readonly camera: Camera;
2107
+ readonly screen: Mesh;
2108
+ renderToScreen: boolean;
2109
+ constructor({ gl, resolution, width, height, minDepthThreshold, maxDepthThreshold, depthScale, depthToBlurRatioBias, }: BlurPassProps);
2110
+ render(renderer: any, inputBuffer: any, outputBuffer: any): void;
2111
+ }
2112
+
2113
+ declare const DiscardMaterial: _react_three_fiber.ConstructorRepresentation<THREE.ShaderMaterial> & {
2114
+ key: string;
2115
+ };
2116
+
2117
+ declare enum GradientType {
2118
+ Linear = "linear",
2119
+ Radial = "radial"
2120
+ }
2121
+ type GradientTextureProps = {
2122
+ stops: number[];
2123
+ colors: string[];
2124
+ size?: number;
2125
+ width?: number;
2126
+ type?: GradientType;
2127
+ innerCircleRadius?: number;
2128
+ outerCircleRadius?: number | 'auto';
2129
+ };
2130
+ declare function GradientTexture({ stops, colors, size, width, type, innerCircleRadius, outerCircleRadius, ...props }: GradientTextureProps): React.JSX.Element;
2131
+
2132
+ type ImageProps = Omit<ThreeElements['mesh'], 'scale'> & {
2133
+ segments?: number;
2134
+ scale?: number | [number, number];
2135
+ color?: Color$1;
2136
+ zoom?: number;
2137
+ radius?: number;
2138
+ grayscale?: number;
2139
+ toneMapped?: boolean;
2140
+ transparent?: boolean;
2141
+ opacity?: number;
2142
+ side?: THREE.Side;
2143
+ } & ({
2144
+ texture: THREE.Texture;
2145
+ url?: never;
2146
+ } | {
2147
+ texture?: never;
2148
+ url: string;
2149
+ });
2150
+ type ImageMaterialType = ThreeElements['shaderMaterial'] & {
2151
+ scale?: number[];
2152
+ imageBounds?: number[];
2153
+ radius?: number;
2154
+ resolution?: number;
2155
+ color?: Color$1;
2156
+ map: THREE.Texture;
2157
+ zoom?: number;
2158
+ grayscale?: number;
2159
+ };
2160
+ declare module '@react-three/fiber' {
2161
+ interface ThreeElements {
2162
+ imageMaterial: ImageMaterialType;
2163
+ }
2164
+ }
2165
+ declare const Image: ForwardRefComponent<ImageProps, THREE.Mesh>;
2166
+
2167
+ declare module '@react-three/fiber' {
2168
+ interface ThreeElements {
2169
+ discardMaterialImpl: ThreeElements['shaderMaterial'];
2170
+ }
2171
+ }
2172
+ type MeshDiscardMaterialProps = Omit<ThreeElements['shaderMaterial'], 'ref'>;
2173
+ declare const MeshDiscardMaterial: ForwardRefComponent<MeshDiscardMaterialProps, ShaderMaterial>;
2174
+
2175
+ type UniformValue = THREE.Texture | THREE.TypedArray | THREE.Matrix4 | THREE.Matrix3 | THREE.Quaternion | THREE.Vector4 | THREE.Vector3 | THREE.Vector2 | THREE.Color | MeshBVHUniformStruct | number | boolean | null;
2176
+ type Uniforms = Record<string, UniformValue | Record<string, UniformValue> | Array<UniformValue>>;
2177
+ declare function shaderMaterial<U extends Uniforms, M extends THREE.ShaderMaterial & U>(uniforms: U, vertexShader: string, fragmentShader: string, onInit?: (material?: M) => void): ConstructorRepresentation<M> & {
2178
+ key: string;
2179
+ };
2180
+
2181
+ type SoftShadowsProps = {
2182
+ size?: number;
2183
+ samples?: number;
2184
+ focus?: number;
2185
+ };
2186
+ declare function SoftShadows({ focus, samples, size }: SoftShadowsProps): null;
2187
+
2188
+ declare class SpotLightMaterial extends THREE.ShaderMaterial {
2189
+ constructor();
2190
+ }
2191
+
2192
+ declare class StarfieldMaterial extends ShaderMaterial {
2193
+ uniforms: {
2194
+ time: {
2195
+ value: number;
2196
+ };
2197
+ fade: {
2198
+ value: number;
2199
+ };
2200
+ };
2201
+ constructor();
2202
+ setTime(time: number): void;
2203
+ setFade(fade: number): void;
2204
+ }
2205
+ declare module '@react-three/fiber' {
2206
+ interface ThreeElements {
2207
+ starfieldMaterial: ThreeElement<typeof StarfieldMaterial>;
2208
+ }
2209
+ }
2210
+
2211
+ declare class SparklesMaterial extends ShaderMaterial {
2212
+ uniforms: {
2213
+ time: Uniform$2<number>;
2214
+ pixelRatio: Uniform$2<number>;
2215
+ };
2216
+ constructor();
2217
+ get time(): number;
2218
+ set time(value: number);
2219
+ get pixelRatio(): number;
2220
+ set pixelRatio(value: number);
2221
+ }
2222
+
2223
+ type GridMaterialType = {
2224
+ cellSize?: number;
2225
+ cellThickness?: number;
2226
+ cellColor?: THREE.ColorRepresentation;
2227
+ sectionSize?: number;
2228
+ sectionThickness?: number;
2229
+ sectionColor?: THREE.ColorRepresentation;
2230
+ followCamera?: boolean;
2231
+ infiniteGrid?: boolean;
2232
+ fadeDistance?: number;
2233
+ fadeStrength?: number;
2234
+ fadeFrom?: number;
2235
+ side?: THREE.Side;
2236
+ };
2237
+ type GridProps = Omit<ThreeElements['mesh'], 'ref' | 'args'> & GridMaterialType & {
2238
+ args?: ConstructorParameters<typeof THREE.PlaneGeometry>;
2239
+ };
2240
+ declare module '@react-three/fiber' {
2241
+ interface ThreeElements {
2242
+ gridMaterial: ThreeElements['shaderMaterial'] & GridMaterialType;
2243
+ }
2244
+ }
2245
+ declare const Grid: ForwardRefComponent<GridProps, THREE.Mesh>;
2246
+
2247
+ type SpotLightProps = Omit<ThreeElements['spotLight'], 'ref'> & {
2248
+ depthBuffer?: DepthTexture;
2249
+ attenuation?: number;
2250
+ anglePower?: number;
2251
+ radiusTop?: number;
2252
+ radiusBottom?: number;
2253
+ opacity?: number;
2254
+ color?: string | number;
2255
+ volumetric?: boolean;
2256
+ debug?: boolean;
2257
+ };
2258
+ interface ShadowMeshProps {
2259
+ distance?: number;
2260
+ alphaTest?: number;
2261
+ scale?: number;
2262
+ map?: Texture$1;
2263
+ shader?: string;
2264
+ width?: number;
2265
+ height?: number;
2266
+ }
2267
+ declare function SpotLightShadow(props: React.PropsWithChildren<ShadowMeshProps>): React.JSX.Element;
2268
+ declare const SpotLight: ForwardRefComponent<React.PropsWithChildren<SpotLightProps>, SpotLight$1>;
2269
+
2270
+ type StarsProps = {
2271
+ radius?: number;
2272
+ depth?: number;
2273
+ count?: number;
2274
+ factor?: number;
2275
+ saturation?: number;
2276
+ fade?: boolean;
2277
+ speed?: number;
2278
+ };
2279
+ declare const Stars: ForwardRefComponent<StarsProps, Points$1>;
2280
+
2281
+ interface MaterialShader {
2282
+ vertexShader: string;
2283
+ fragmentShader: string;
2284
+ defines: {
2285
+ [define: string]: string | number | boolean;
2286
+ } | undefined;
2287
+ uniforms: {
2288
+ [uniform: string]: THREE.IUniform;
2289
+ };
2290
+ }
2291
+ declare function useBoxProjectedEnv(position?: ReactThreeFiber.Vector3, size?: ReactThreeFiber.Vector3): {
2292
+ ref: React.RefObject<THREE.Material>;
2293
+ onBeforeCompile: (shader: MaterialShader) => void;
2294
+ customProgramCacheKey: () => string;
2295
+ };
2296
+
2297
+ declare module '@react-three/fiber' {
2298
+ interface ThreeElements {
2299
+ sparklesMaterial: ThreeElement<typeof SparklesMaterial>;
2300
+ }
2301
+ }
2302
+ type SparklesProps = Omit<ThreeElements['points'], 'ref'> & {
2303
+ count?: number;
2304
+ speed?: number | Float32Array;
2305
+ opacity?: number | Float32Array;
2306
+ color?: THREE.ColorRepresentation | Float32Array;
2307
+ size?: number | Float32Array;
2308
+ scale?: number | [number, number, number] | THREE.Vector3;
2309
+ noise?: number | [number, number, number] | THREE.Vector3 | Float32Array;
2310
+ };
2311
+ declare const Sparkles: ForwardRefComponent<SparklesProps, THREE.Points>;
2312
+
2313
+ type TextProps = Omit<ThreeElements['mesh'], 'ref'> & {
2314
+ children: React.ReactNode;
2315
+ characters?: string;
2316
+ color?: ReactThreeFiber.Color;
2317
+ fontSize?: number;
2318
+ fontWeight?: number | string;
2319
+ fontStyle?: 'italic' | 'normal';
2320
+ maxWidth?: number;
2321
+ lineHeight?: number;
2322
+ letterSpacing?: number;
2323
+ textAlign?: 'left' | 'right' | 'center' | 'justify';
2324
+ font?: string;
2325
+ anchorX?: number | 'left' | 'center' | 'right';
2326
+ anchorY?: number | 'top' | 'top-baseline' | 'middle' | 'bottom-baseline' | 'bottom';
2327
+ clipRect?: [number, number, number, number];
2328
+ depthOffset?: number;
2329
+ direction?: 'auto' | 'ltr' | 'rtl';
2330
+ overflowWrap?: 'normal' | 'break-word';
2331
+ whiteSpace?: 'normal' | 'overflowWrap' | 'nowrap';
2332
+ outlineWidth?: number | string;
2333
+ outlineOffsetX?: number | string;
2334
+ outlineOffsetY?: number | string;
2335
+ outlineBlur?: number | string;
2336
+ outlineColor?: ReactThreeFiber.Color;
2337
+ outlineOpacity?: number;
2338
+ strokeWidth?: number | string;
2339
+ strokeColor?: ReactThreeFiber.Color;
2340
+ strokeOpacity?: number;
2341
+ fillOpacity?: number;
2342
+ sdfGlyphSize?: number;
2343
+ debugSDF?: boolean;
2344
+ glyphGeometryDetail?: number;
2345
+ onSync?: (troika: any) => void;
2346
+ };
2347
+ declare const Text: ForwardRefComponent<TextProps, any>;
2348
+
2349
+ export { AccumulativeShadows, AdaptiveDpr, AdaptiveEvents, ArcballControls, AsciiRenderer, BBAnchor, Backdrop, BakeShadows, Billboard, BlurPass, Bounds, Box, CameraShake, Capsule, CatmullRomLine, Caustics, Center, Circle, Clone, Cloud, CloudInstance, CloudMaterial, Clouds, ComputedAttribute, Cone, ContactShadows, ConvolutionMaterial, CubeCamera, CubeTexture, CubicBezierLine, CurveModifier, CycleRaycast, Cylinder, Decal, Detailed, DetectGPU, DeviceOrientationControls, DiscardMaterial, Dodecahedron, DragControls, Edges, Effects, Environment, EnvironmentCube, EnvironmentMap, EnvironmentPortal, Example, Extrude, Fbo, Fbx, FirstPersonControls, Fisheye, Float, FlyControls, GizmoHelper, GizmoViewcube, GizmoViewport, Gltf, GradientTexture, GradientType, Grid, Helper, Html, Hud, Icosahedron, Image, Instance, InstancedAttribute, Instances, IsObject, KeyboardControls, Ktx2, Lathe, Lightformer, Line, Loader, MapControls, Mask, MatcapTexture, Merged, MeshDiscardMaterial, MeshDistortMaterial, MeshPortalMaterial, MeshReflectorMaterial, MeshRefractionMaterial, MeshTransmissionMaterial, MeshWobbleMaterial, MotionPathControls, NormalTexture, Octahedron, OrbitControls, OrthographicCamera, Outlines, PerformanceMonitor, PerspectiveCamera, PivotControls, Plane, Point, PointMaterial, PointMaterialImpl, PointerLockControls, Points, PointsBuffer, Polyhedron, PositionMesh, PositionPoint, PositionalAudio, Preload, PresentationControls, Progress, QuadraticBezierLine, RandomizedLight, RenderCubeTexture, RenderTexture, Resize, Ring, RoundedBox, RoundedBoxGeometry, Sampler, ScreenQuad, ScreenSizer, ScreenSpace, ScreenVideoTexture, Scroll, ScrollControls, Segment, SegmentObject, Segments, Select, Shadow, Shape, Sky, SoftShadows, Sparkles, SparklesMaterial, Sphere, SpotLight, SpotLightMaterial, SpotLightShadow, SpriteAnimator, Stage, StarfieldMaterial, Stars, Stats, StatsGl, Svg, Tetrahedron, Text, Text3D, Texture, Torus, TorusKnot, TrackballControls, Trail, TrailTexture, TransformControls, Tube, VideoTexture, View, WebcamVideoTexture, Wireframe, WireframeMaterial, WireframeMaterialShaders, accumulativeContext, calcPosFromAngles, checkIfFrameIsEmpty, createInstances, getFirstFrame, isWebGL2Available, meshBounds, presetsObj, setWireframeOverride, shaderMaterial, useAnimations, useAspect, useBounds, useBoxProjectedEnv, 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 };
2350
+ export type { AccumulativeContext, AccumulativeLightContext, AccumulativeShadowsProps, ArcballControlsProps, Args, AsciiRendererProps, BBAnchorProps, BackdropProps, BillboardProps, BlurPassProps, BoundsApi, BoundsProps, CalculatePosition, CameraShakeProps, CatmullRomLineProps, CausticsProps, CenterProps, CloneProps, CloudProps, CloudsProps, ComputedAttributeProps, ContactShadowsProps, ContainerProps, CubeCameraOptions, CubeCameraProps, CubeTextureProps, CubicBezierLineProps, CurveModifierProps, CurveModifierRef, CycleRaycastProps, DecalProps, DetailedProps, DetectGPUProps, DeviceOrientationControlsProps, DragControlsProps, EdgesProps, EffectsProps, EnvironmentLoaderProps, EnvironmentProps, ExampleApi, ExampleProps, FboProps, FirstPersonControlsProps, FisheyeProps, FloatProps, FlyControlsProps, FontData, FrameData, GizmoHelperProps, GltfProps, Glyph, GradientTextureProps, GridMaterialType, GridProps, HelperProps, HtmlProps, HudProps, ImageProps, InstanceProps, InstancedAttributeProps, InstancesProps, KeyboardControlsEntry, KeyboardControlsProps, LightProps, LineProps, LoaderOptions, MapControlsProps, MaskProps, MergedProps, MeshDiscardMaterialProps, MeshDistortMaterialProps, MeshReflectorMaterialProps, MeshTransmissionMaterialProps, MetaData, MotionPathProps, MotionPathRef, OnCenterCallbackProps, OrbitControlsChangeEvent, OrbitControlsProps, OrthographicCameraProps, OutlinesProps, PerformanceMonitorApi, PerformanceMonitorProps, PerspectiveCameraProps, PivotControlsProps, PointMaterialProps, PointerLockControlsProps, PointsBuffersProps, PointsInstancesProps, PortalProps, PositionalAudioProps, PreloadProps, PresentationControlProps, PresetsType, QuadraticBezierLineProps, QuadraticBezierLineRef, RandomizedLightProps, RenderCubeTextureApi, RenderCubeTextureProps, RenderTextureProps, ResizeProps, RoundedBoxGeometryProps, RoundedBoxProps, SamplerProps, ScreenQuadProps, ScreenSizerProps, ScreenSpaceProps, ScreenVideoTextureProps, ScrollControlsProps, ScrollControlsState, ScrollProps, SegmentProps, SegmentsProps, SelectProps, ShadowProps, ShadowType, ShakeController, ShapeProps, Size, SizeProps, SkyProps, SoftShadowsProps, SparklesProps, SpotLightProps, SpriteAnimatorProps, SpriteData, StageProps, StarsProps, StatsGlProps, StatsProps, SvgProps, Text3DProps, TextProps, TrackballControlsProps, TrailProps, TrailTextureProps, TransformControlsProps, TransformFn, VideoTextureProps, ViewProps, ViewportProps, WebcamVideoTextureProps, WireframeMaterialProps, WobbleMaterialProps, useSurfaceSamplerProps };