import * as THREE from 'three'; import * as React from 'react'; import { ReactThreeFiber } from '@react-three/fiber'; import { ForwardRefComponent } from '../helpers/ts-utils'; declare global { namespace JSX { interface IntrinsicElements { positionMesh: ReactThreeFiber.Object3DNode; } } } type Api = { getParent: () => React.MutableRefObject; subscribe: (ref: React.MutableRefObject) => void; }; export type InstancesProps = JSX.IntrinsicElements['instancedMesh'] & { context?: React.Context; range?: number; limit?: number; frames?: number; }; export type InstanceProps = JSX.IntrinsicElements['positionMesh'] & { context?: React.Context; }; export type InstancedAttributeProps = JSX.IntrinsicElements['instancedBufferAttribute'] & { name: string; defaultValue: any; normalized?: boolean; usage?: number; }; type InstancedMesh = Omit & { instanceMatrix: THREE.InstancedBufferAttribute; instanceColor: THREE.InstancedBufferAttribute; }; export declare class PositionMesh extends THREE.Group { color: THREE.Color; instance: React.MutableRefObject; instanceKey: React.MutableRefObject; constructor(); get geometry(): THREE.BufferGeometry | undefined; raycast(raycaster: THREE.Raycaster, intersects: THREE.Intersection[]): void; } export declare const Instance: React.ForwardRefExoticComponent & React.RefAttributes>; export declare const Instances: ForwardRefComponent; export interface MergedProps extends InstancesProps { meshes: THREE.Mesh[]; children: React.ReactNode; } export declare const Merged: ForwardRefComponent; export declare function createInstances(): readonly [React.ForwardRefExoticComponent & React.RefAttributes>>, React.ForwardRefExoticComponent, ReactThreeFiber.NodeProps>>, ReactThreeFiber.NonFunctionKeys<{ position?: ReactThreeFiber.Vector3; up?: ReactThreeFiber.Vector3; scale?: ReactThreeFiber.Vector3; rotation?: ReactThreeFiber.Euler; matrix?: ReactThreeFiber.Matrix4; quaternion?: ReactThreeFiber.Quaternion; layers?: ReactThreeFiber.Layers; dispose?: (() => void) | null; }>> & { position?: ReactThreeFiber.Vector3; up?: ReactThreeFiber.Vector3; scale?: ReactThreeFiber.Vector3; rotation?: ReactThreeFiber.Euler; matrix?: ReactThreeFiber.Matrix4; quaternion?: ReactThreeFiber.Quaternion; layers?: ReactThreeFiber.Layers; dispose?: (() => void) | null; } & import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers & { context?: React.Context; }> & React.RefAttributes>]; export declare const InstancedAttribute: React.ForwardRefExoticComponent & React.RefAttributes>; export {};