@react-three/fiber 10.0.0-alpha.0 → 10.0.0-alpha.1

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.
package/dist/legacy.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as THREE$1 from 'three';
2
- import { Color as Color$1, ColorRepresentation, Euler as Euler$1, Layers as Layers$1, Raycaster, Intersection as Intersection$1, Vector2 as Vector2$1, Vector3 as Vector3$1, Vector4 as Vector4$1, Quaternion as Quaternion$1, Matrix3 as Matrix3$1, Matrix4 as Matrix4$1, Object3D, Texture as Texture$1, OrthographicCamera } from 'three';
2
+ import { WebGLRenderTarget, Color as Color$1, ColorRepresentation, RenderTargetOptions as RenderTargetOptions$1, Euler as Euler$1, Layers as Layers$1, Raycaster, Intersection as Intersection$1, Vector2 as Vector2$1, Vector3 as Vector3$1, Vector4 as Vector4$1, Quaternion as Quaternion$1, Matrix3 as Matrix3$1, Matrix4 as Matrix4$1, Object3D, Texture as Texture$1, Frustum, OrthographicCamera } from 'three';
3
3
  import * as React$1 from 'react';
4
4
  import { ReactNode, Component, RefObject, JSX } from 'react';
5
5
  import { StoreApi } from 'zustand';
@@ -43,11 +43,15 @@ declare const WebGPURenderer: {
43
43
  new (): {};
44
44
  };
45
45
 
46
+ declare const RenderTarget: any;
47
+
46
48
  var THREE = /*#__PURE__*/_mergeNamespaces({
47
49
  __proto__: null,
48
50
  Inspector: Inspector,
49
51
  R3F_BUILD_LEGACY: R3F_BUILD_LEGACY,
50
52
  R3F_BUILD_WEBGPU: R3F_BUILD_WEBGPU,
53
+ RenderTarget: RenderTarget,
54
+ RenderTargetCompat: WebGLRenderTarget,
51
55
  WebGPURenderer: WebGPURenderer
52
56
  }, [THREE$1]);
53
57
 
@@ -186,6 +190,14 @@ interface EventHandlers {
186
190
  onPointerCancel?: (event: ThreeEvent<PointerEvent>) => void
187
191
  onWheel?: (event: ThreeEvent<WheelEvent>) => void
188
192
  onLostPointerCapture?: (event: ThreeEvent<PointerEvent>) => void
193
+
194
+ //* Visibility Events --------------------------------
195
+ /** Fires when object enters/exits camera frustum. Receives true when in view, false when out. */
196
+ onFramed?: (inView: boolean) => void
197
+ /** Fires when object occlusion state changes (WebGPU only, requires occlusionTest=true on object) */
198
+ onOccluded?: (occluded: boolean) => void
199
+ /** Fires when combined visibility changes (frustum + occlusion + visible prop) */
200
+ onVisible?: (visible: boolean) => void
189
201
  }
190
202
 
191
203
  type FilterFunction = (items: THREE$1.Intersection[], state: RootState) => THREE$1.Intersection[]
@@ -217,6 +229,17 @@ interface EventManager<TTarget> {
217
229
  interface PointerCaptureTarget {
218
230
  intersection: Intersection
219
231
  target: Element
232
+ }
233
+
234
+ //* Visibility System Types =====================================
235
+
236
+ /** Entry in the visibility registry for tracking object visibility state */
237
+ interface VisibilityEntry {
238
+ object: THREE$1.Object3D
239
+ handlers: Pick<EventHandlers, 'onFramed' | 'onOccluded' | 'onVisible'>
240
+ lastFramedState: boolean | null
241
+ lastOccludedState: boolean | null
242
+ lastVisibleState: boolean | null
220
243
  }
221
244
 
222
245
  //* Scheduler Types (useFrame) ==============================
@@ -263,9 +286,9 @@ interface AddPhaseOptions {
263
286
  // Frame State --------------------------------
264
287
 
265
288
  /**
266
- * State passed to useFrame callbacks
289
+ * Timing-only state for independent/outside mode (no RootState)
267
290
  */
268
- interface FrameNextState extends RootState {
291
+ interface FrameTimingState {
269
292
  /** High-resolution timestamp from RAF (ms) */
270
293
  time: number
271
294
  /** Time since last frame in seconds (for legacy compatibility with THREE.Clock) */
@@ -276,9 +299,26 @@ interface FrameNextState extends RootState {
276
299
  frame: number
277
300
  }
278
301
 
302
+ /**
303
+ * State passed to useFrame callbacks (extends RootState with timing)
304
+ */
305
+ interface FrameNextState extends RootState, FrameTimingState {}
306
+
279
307
  /** Alias for FrameNextState */
280
308
  type FrameState = FrameNextState
281
309
 
310
+ // Root Options --------------------------------
311
+
312
+ /**
313
+ * Options for registerRoot
314
+ */
315
+ interface RootOptions {
316
+ /** State provider for callbacks. Optional in independent mode. */
317
+ getState?: () => any
318
+ /** Error handler for job errors. Falls back to console.error if not provided. */
319
+ onError?: (error: Error) => void
320
+ }
321
+
282
322
  // Callback Types --------------------------------
283
323
 
284
324
  /**
@@ -332,13 +372,17 @@ interface SchedulerApi {
332
372
  //* Root Management --------------------------------
333
373
 
334
374
  /** Register a root (Canvas) with the scheduler. Returns unsubscribe function. */
335
- registerRoot(id: string, getState: () => RootState): () => void
375
+ registerRoot(id: string, options?: RootOptions): () => void
336
376
  /** Unregister a root */
337
377
  unregisterRoot(id: string): void
338
378
  /** Generate a unique root ID */
339
379
  generateRootId(): string
340
380
  /** Get the number of registered roots */
341
381
  getRootCount(): number
382
+ /** Check if any root is registered and ready */
383
+ readonly isReady: boolean
384
+ /** Subscribe to root-ready event. Fires immediately if already ready. Returns unsubscribe. */
385
+ onRootReady(callback: () => void): () => void
342
386
 
343
387
  //* Job Registration --------------------------------
344
388
 
@@ -397,6 +441,8 @@ interface SchedulerApi {
397
441
  readonly isRunning: boolean
398
442
  /** Get/set the frameloop mode ('always', 'demand', 'never') */
399
443
  frameloop: Frameloop
444
+ /** Independent mode - runs without Canvas, callbacks receive timing-only state */
445
+ independent: boolean
400
446
 
401
447
  //* Manual Stepping --------------------------------
402
448
 
@@ -474,6 +520,16 @@ interface InternalState {
474
520
  initialClick: [x: number, y: number]
475
521
  initialHits: THREE$1.Object3D[]
476
522
  lastEvent: React$1.RefObject<DomEvent | null>
523
+ /** Visibility event registry (onFramed, onOccluded, onVisible) */
524
+ visibilityRegistry: Map<string, VisibilityEntry>
525
+ /** Whether occlusion queries are enabled (WebGPU only) */
526
+ occlusionEnabled: boolean
527
+ /** Reference to the invisible occlusion observer mesh */
528
+ occlusionObserver: THREE$1.Mesh | null
529
+ /** Cached occlusion results from render pass - keyed by Object3D */
530
+ occlusionCache: Map<THREE$1.Object3D, boolean | null>
531
+ /** Internal helper group for R3F system objects (occlusion observer, etc.) */
532
+ helperGroup: THREE$1.Group | null
477
533
  active: boolean
478
534
  priority: number
479
535
  frames: number
@@ -511,6 +567,10 @@ interface RootState {
511
567
 
512
568
  /** Default camera */
513
569
  camera: ThreeCamera
570
+ /** Camera frustum for visibility checks - auto-updated each frame when autoUpdateFrustum is true */
571
+ frustum: THREE$1.Frustum
572
+ /** Whether to automatically update the frustum each frame (default: true) */
573
+ autoUpdateFrustum: boolean
514
574
  /** Default scene (may be overridden in portals to point to the portal container) */
515
575
  scene: THREE$1.Scene
516
576
  /** The actual root THREE.Scene - always points to the true scene, even inside portals */
@@ -712,6 +772,14 @@ interface RenderProps<TCanvas extends HTMLCanvasElement | OffscreenCanvas$1> {
712
772
  onDragOverMissed?: (event: DragEvent) => void
713
773
  /** Response for drop events that have missed any target */
714
774
  onDropMissed?: (event: DragEvent) => void
775
+ /** Whether to automatically update the frustum each frame (default: true) */
776
+ autoUpdateFrustum?: boolean
777
+ /**
778
+ * Enable WebGPU occlusion queries for onOccluded/onVisible events.
779
+ * Auto-enabled when any object uses onOccluded or onVisible handlers.
780
+ * Only works with WebGPU renderer - WebGL will log a warning.
781
+ */
782
+ occlusion?: boolean
715
783
  }
716
784
 
717
785
  //* Reconciler Root ==============================
@@ -894,6 +962,11 @@ interface WebGLShadowConfig {
894
962
  shadows?: boolean | 'basic' | 'percentage' | 'soft' | 'variance' | Partial<THREE$1.WebGLShadowMap>
895
963
  }
896
964
 
965
+ //* RenderTarget Types ==============================
966
+
967
+
968
+ type RenderTargetOptions = RenderTargetOptions$1
969
+
897
970
  //* Global Types ==============================
898
971
 
899
972
  declare global {
@@ -912,6 +985,15 @@ declare global {
912
985
  */
913
986
  type UniformStore = Record<string, UniformNode | UniformRecord>
914
987
 
988
+ /**
989
+ * Helper to safely access a uniform node from the store.
990
+ * Use this when accessing state.uniforms to get proper typing.
991
+ * @example
992
+ * const uTime = uniforms.uTime as UniformNode<number>
993
+ * const uColor = uniforms.uColor as UniformNode<import('three/webgpu').Color>
994
+ */
995
+ type GetUniform<T = unknown> = UniformNode<T>
996
+
915
997
  /**
916
998
  * Acceptable input values for useUniforms - raw values that get converted to UniformNodes
917
999
  * Supports: primitives, Three.js types, plain objects (converted to vectors), and UniformNodes
@@ -1010,6 +1092,10 @@ declare global {
1010
1092
  }
1011
1093
  }
1012
1094
 
1095
+ //* useFrameNext Types ==============================
1096
+
1097
+
1098
+
1013
1099
  //* Global Type Declarations ==============================
1014
1100
 
1015
1101
  declare global {
@@ -1101,8 +1187,8 @@ declare global {
1101
1187
  interface RootEntry {
1102
1188
  /** Unique identifier for this root */
1103
1189
  id: string
1104
- /** Function to get the root's current state */
1105
- getState: () => RootState
1190
+ /** Function to get the root's current state. Returns any to support independent mode. */
1191
+ getState: () => any
1106
1192
  /** Map of job IDs to Job objects */
1107
1193
  jobs: Map<string, Job>
1108
1194
  /** Cached sorted job list for execution order */
@@ -1294,7 +1380,9 @@ declare namespace useLoader {
1294
1380
  * - Demand mode support via invalidate()
1295
1381
  */
1296
1382
  declare class Scheduler {
1297
- private static instance;
1383
+ private static readonly INSTANCE_KEY;
1384
+ private static get instance();
1385
+ private static set instance(value);
1298
1386
  /**
1299
1387
  * Get the global scheduler instance (creates if doesn't exist).
1300
1388
  * Uses HMR data to preserve instance across hot reloads.
@@ -1320,19 +1408,25 @@ declare class Scheduler {
1320
1408
  private jobStateListeners;
1321
1409
  private pendingFrames;
1322
1410
  private _frameloop;
1411
+ private _independent;
1412
+ private errorHandler;
1413
+ private rootReadyCallbacks;
1323
1414
  get phases(): string[];
1324
1415
  get frameloop(): Frameloop;
1325
1416
  set frameloop(mode: Frameloop);
1326
1417
  get isRunning(): boolean;
1418
+ get isReady(): boolean;
1419
+ get independent(): boolean;
1420
+ set independent(value: boolean);
1327
1421
  constructor();
1328
1422
  /**
1329
1423
  * Register a root (Canvas) with the scheduler.
1330
1424
  * The first root to register starts the RAF loop (if frameloop='always').
1331
1425
  * @param {string} id - Unique identifier for this root
1332
- * @param {() => RootState} getState - Function to get the root's current state
1426
+ * @param {RootOptions} [options] - Optional configuration with getState and onError callbacks
1333
1427
  * @returns {() => void} Unsubscribe function to remove this root
1334
1428
  */
1335
- registerRoot(id: string, getState: () => RootState): () => void;
1429
+ registerRoot(id: string, options?: RootOptions): () => void;
1336
1430
  /**
1337
1431
  * Unregister a root from the scheduler.
1338
1432
  * Cleans up all job state listeners for this root's jobs.
@@ -1341,6 +1435,34 @@ declare class Scheduler {
1341
1435
  * @returns {void}
1342
1436
  */
1343
1437
  unregisterRoot(id: string): void;
1438
+ /**
1439
+ * Subscribe to be notified when a root becomes available.
1440
+ * Fires immediately if a root already exists.
1441
+ * @param {() => void} callback - Function called when first root registers
1442
+ * @returns {() => void} Unsubscribe function
1443
+ */
1444
+ onRootReady(callback: () => void): () => void;
1445
+ /**
1446
+ * Notify all registered root-ready callbacks.
1447
+ * Called when the first root registers.
1448
+ * @returns {void}
1449
+ * @private
1450
+ */
1451
+ private notifyRootReady;
1452
+ /**
1453
+ * Ensure a default root exists for independent mode.
1454
+ * Creates a minimal root with no state provider.
1455
+ * @returns {void}
1456
+ * @private
1457
+ */
1458
+ private ensureDefaultRoot;
1459
+ /**
1460
+ * Trigger error handling for job errors.
1461
+ * Uses the bound error handler if available, otherwise logs to console.
1462
+ * @param {Error} error - The error to handle
1463
+ * @returns {void}
1464
+ */
1465
+ triggerError(error: Error): void;
1344
1466
  /**
1345
1467
  * Add a named phase to the scheduler's execution order.
1346
1468
  * Marks all roots for rebuild to incorporate the new phase.
@@ -1549,7 +1671,7 @@ declare class Scheduler {
1549
1671
  /**
1550
1672
  * Execute all jobs for a single root in sorted order.
1551
1673
  * Rebuilds sorted job list if needed, then dispatches each job.
1552
- * Errors are caught and propagated to the root's error boundary.
1674
+ * Errors are caught and propagated via triggerError.
1553
1675
  * @param {RootEntry} root - The root entry to tick
1554
1676
  * @param {number} timestamp - RAF timestamp in milliseconds
1555
1677
  * @param {number} delta - Time since last frame in seconds
@@ -1612,6 +1734,11 @@ declare const getScheduler: () => Scheduler;
1612
1734
  /**
1613
1735
  * Frame hook with phase-based ordering, priority, and FPS throttling.
1614
1736
  *
1737
+ * Works both inside and outside Canvas context:
1738
+ * - Inside Canvas: Full RootState (gl, scene, camera, etc.)
1739
+ * - Outside Canvas (waiting mode): Waits for Canvas to mount, then gets full state
1740
+ * - Outside Canvas (independent mode): Fires immediately with timing-only state
1741
+ *
1615
1742
  * Returns a controls object for manual stepping, pausing, and resuming.
1616
1743
  *
1617
1744
  * @param callback - Function called each frame with (state, delta). Optional if you only need scheduler access.
@@ -1627,18 +1754,16 @@ declare const getScheduler: () => Scheduler;
1627
1754
  * useFrame((state, delta) => { ... }, { phase: 'physics' })
1628
1755
  *
1629
1756
  * @example
1630
- * // With controls
1631
- * const controls = useFrame(cb, { phase: 'physics', id: 'my-physics' })
1632
- * controls.step() // Step this job only
1633
- * controls.stepAll() // Step all jobs
1634
- * controls.pause() // Pause this job
1635
- * controls.resume() // Resume this job
1757
+ * // Outside Canvas - waits for Canvas to mount
1758
+ * function UI() {
1759
+ * useFrame((state, delta) => { syncUI(state.camera) });
1760
+ * return <button>...</button>;
1761
+ * }
1636
1762
  *
1637
1763
  * @example
1638
- * // Manual mode (frameloop='never')
1639
- * const { stepAll } = useFrame(cb)
1640
- * // In your animation controller:
1641
- * stepAll() // Advance all useFrame jobs
1764
+ * // Independent mode - no Canvas needed
1765
+ * getScheduler().independent = true;
1766
+ * useFrame((state, delta) => { updateGame(delta) });
1642
1767
  *
1643
1768
  * @example
1644
1769
  * // Scheduler-only access (no callback)
@@ -1772,6 +1897,39 @@ interface UseTexturesReturn {
1772
1897
  */
1773
1898
  declare function useTextures(): UseTexturesReturn;
1774
1899
 
1900
+ /**
1901
+ * Creates a render target compatible with the current renderer.
1902
+ *
1903
+ * - Legacy build: Returns WebGLRenderTarget
1904
+ * - WebGPU build: Returns RenderTarget
1905
+ * - Default build: Returns whichever matches the active renderer
1906
+ *
1907
+ * @param width - Target width (defaults to canvas width)
1908
+ * @param height - Target height (defaults to canvas height)
1909
+ * @param options - Three.js RenderTarget options
1910
+ *
1911
+ * @example
1912
+ * ```tsx
1913
+ * function PortalScene() {
1914
+ * const fbo = useRenderTarget(512, 512, { depthBuffer: true })
1915
+ *
1916
+ * useFrame(({ renderer, scene, camera }) => {
1917
+ * renderer.setRenderTarget(fbo)
1918
+ * renderer.render(scene, camera)
1919
+ * renderer.setRenderTarget(null)
1920
+ * })
1921
+ *
1922
+ * return (
1923
+ * <mesh>
1924
+ * <planeGeometry />
1925
+ * <meshBasicMaterial map={fbo.texture} />
1926
+ * </mesh>
1927
+ * )
1928
+ * }
1929
+ * ```
1930
+ */
1931
+ declare function useRenderTarget(width?: number, height?: number, options?: RenderTargetOptions): RenderTarget<THREE$1.Texture<unknown>>;
1932
+
1775
1933
  /**
1776
1934
  * Returns the R3F Canvas' Zustand store. Useful for [transient updates](https://github.com/pmndrs/zustand#transient-updates-for-often-occurring-state-changes).
1777
1935
  * @see https://docs.pmnd.rs/react-three-fiber/api/hooks#usestore
@@ -3306,6 +3464,26 @@ declare function getUuidPrefix(uuid: string): string;
3306
3464
  * @param size - Current viewport size
3307
3465
  */
3308
3466
  declare function updateCamera(camera: ThreeCamera, size: Size): void;
3467
+ /**
3468
+ * Updates a frustum from a camera's projection and world matrices.
3469
+ * If no target frustum is provided, creates and returns a new one.
3470
+ *
3471
+ * @param camera - Camera to extract frustum from
3472
+ * @param frustum - Optional existing frustum to update (creates new if not provided)
3473
+ * @returns The updated or newly created frustum
3474
+ *
3475
+ * @example
3476
+ * // Create new frustum
3477
+ * const frustum = updateFrustum(camera)
3478
+ *
3479
+ * // Update existing frustum (no allocation)
3480
+ * updateFrustum(camera, existingFrustum)
3481
+ *
3482
+ * // Use for visibility checks
3483
+ * if (frustum.containsPoint(point)) { ... }
3484
+ * if (frustum.intersectsObject(mesh)) { ... }
3485
+ */
3486
+ declare function updateFrustum(camera: ThreeCamera, frustum?: Frustum): Frustum;
3309
3487
 
3310
3488
  declare const is: {
3311
3489
  obj: (a: any) => boolean;
@@ -3343,5 +3521,5 @@ declare const hasConstructor: (object: unknown) => object is {
3343
3521
  */
3344
3522
  declare function Canvas(props: CanvasProps): react_jsx_runtime.JSX.Element;
3345
3523
 
3346
- export { Block, Canvas, ErrorBoundary, IsObject, R3F_BUILD_LEGACY, R3F_BUILD_WEBGPU, REACT_INTERNAL_PROPS, RESERVED_PROPS, three_d as ReactThreeFiber, Scheduler, Texture, _roots, act, addAfterEffect, addEffect, addTail, advance, applyProps, attach, buildGraph, calculateDpr, context, createEvents, createPointerEvents, createPortal, createRoot, createStore, detach, diffProps, dispose, createPointerEvents as events, extend, findInitialRoot, flushSync, getInstanceProps, getRootState, getScheduler, getUuidPrefix, hasConstructor, invalidate, invalidateInstance, is, isColorRepresentation, isCopyable, isObject3D, isOrthographicCamera, isRef, isRenderer, isTexture, isVectorLike, prepare, reconciler, removeInteractivity, resolve, unmountComponentAtNode, updateCamera, useBridge, useFrame, useGraph, useInstanceHandle, useIsomorphicLayoutEffect, useLoader, useMutableCallback, useStore, useTexture, useTextures, useThree };
3347
- export type { Act, AddPhaseOptions, Args, ArgsProp, AttachFnType, AttachType, BaseRendererProps, Bridge, Camera, CameraProps, CanvasProps, Catalogue, Color, ComputeFunction, ConstructorRepresentation, DefaultGLProps, DefaultRendererProps, Disposable, DomEvent, Dpr, ElementProps, EquConfig, Euler, EventHandlers, EventManager, EventProps, Events, Extensions, FilterFunction, FrameCallback, FrameControls, FrameNextCallback, FrameNextControls, FrameNextState, FrameState, Frameloop, GLProps, GLTFLike, GlobalEffectType, GlobalRenderCallback, HostConfig, InferLoadResult, InjectState, InputLike, Instance, InstanceProps, InternalState, Intersection, IntersectionEvent, IsAllOptional, IsOptional, Layers, LoaderInstance, LoaderLike, LoaderResult, MappedTextureType, MathProps, MathRepresentation, MathType, MathTypes, Matrix3, Matrix4, Mutable, MutableOrReadonlyParameters, NonFunctionKeys, ObjectMap, OffscreenCanvas$1 as OffscreenCanvas, Overwrite, Performance, PointerCaptureTarget, Properties, Quaternion, RaycastableRepresentation, ReactProps, ReconcilerRoot, RenderCallback, RenderProps, Renderer, RendererFactory, RendererProps, Root, RootState, RootStore, SchedulerApi, SetBlock, Size, Subscription, TextureEntry, ThreeCamera, ThreeElement, ThreeElements, ThreeElementsImpl, ThreeEvent, ThreeExports, ThreeToJSXElements, UnblockProps, UseFrameNextOptions, UseFrameOptions, UseTextureOptions, UseTexturesReturn, Vector2, Vector3, Vector4, VectorRepresentation, Viewport, WebGLDefaultProps, WebGLProps, WebGLShadowConfig, XRManager };
3524
+ export { Block, Canvas, ErrorBoundary, IsObject, R3F_BUILD_LEGACY, R3F_BUILD_WEBGPU, REACT_INTERNAL_PROPS, RESERVED_PROPS, three_d as ReactThreeFiber, Scheduler, Texture, _roots, act, addAfterEffect, addEffect, addTail, advance, applyProps, attach, buildGraph, calculateDpr, context, createEvents, createPointerEvents, createPortal, createRoot, createStore, detach, diffProps, dispose, createPointerEvents as events, extend, findInitialRoot, flushSync, getInstanceProps, getRootState, getScheduler, getUuidPrefix, hasConstructor, invalidate, invalidateInstance, is, isColorRepresentation, isCopyable, isObject3D, isOrthographicCamera, isRef, isRenderer, isTexture, isVectorLike, prepare, reconciler, removeInteractivity, resolve, unmountComponentAtNode, updateCamera, updateFrustum, useBridge, useFrame, useGraph, useInstanceHandle, useIsomorphicLayoutEffect, useLoader, useMutableCallback, useRenderTarget, useStore, useTexture, useTextures, useThree };
3525
+ export type { Act, AddPhaseOptions, Args, ArgsProp, AttachFnType, AttachType, BaseRendererProps, Bridge, Camera, CameraProps, CanvasProps, Catalogue, Color, ComputeFunction, ConstructorRepresentation, DefaultGLProps, DefaultRendererProps, Disposable, DomEvent, Dpr, ElementProps, EquConfig, Euler, EventHandlers, EventManager, EventProps, Events, Extensions, FilterFunction, FrameCallback, FrameControls, FrameNextCallback, FrameNextControls, FrameNextState, FrameState, FrameTimingState, Frameloop, GLProps, GLTFLike, GlobalEffectType, GlobalRenderCallback, HostConfig, InferLoadResult, InjectState, InputLike, Instance, InstanceProps, InternalState, Intersection, IntersectionEvent, IsAllOptional, IsOptional, Layers, LoaderInstance, LoaderLike, LoaderResult, MappedTextureType, MathProps, MathRepresentation, MathType, MathTypes, Matrix3, Matrix4, Mutable, MutableOrReadonlyParameters, NonFunctionKeys, ObjectMap, OffscreenCanvas$1 as OffscreenCanvas, Overwrite, Performance, PointerCaptureTarget, Properties, Quaternion, RaycastableRepresentation, ReactProps, ReconcilerRoot, RenderCallback, RenderProps, RenderTargetOptions, Renderer, RendererFactory, RendererProps, Root, RootOptions, RootState, RootStore, SchedulerApi, SetBlock, Size, Subscription, TextureEntry, ThreeCamera, ThreeElement, ThreeElements, ThreeElementsImpl, ThreeEvent, ThreeExports, ThreeToJSXElements, UnblockProps, UseFrameNextOptions, UseFrameOptions, UseTextureOptions, UseTexturesReturn, Vector2, Vector3, Vector4, VectorRepresentation, Viewport, VisibilityEntry, WebGLDefaultProps, WebGLProps, WebGLShadowConfig, XRManager };