import { Camera, Object3D, Raycaster } from 'three'; import { P as PopmeltSubjectAdapter } from './subjects-BM3Smdow.mjs'; type ThreeSubjectAdapterOptions = { /** Unique adapter identity when a page owns more than one Three.js surface. */ id?: string; canvas: HTMLCanvasElement; camera: Camera; scene: Object3D; raycaster?: Raycaster; /** Select a meaningful parent from the raw intersected render object. */ select?: (object: Object3D) => Object3D | null; /** Override durable identity. Explicit application IDs are preferred. */ key?: (object: Object3D) => string | null | undefined; label?: (object: Object3D) => string; /** Add application-specific provenance or source hints to the model context. */ describe?: (object: Object3D) => Record; /** Capture the renderer's current frame for DOM-cloned screenshots. */ captureFrame?: () => string | null | Promise; }; type PopmeltThreeAdapterOptions = Omit & { /** Scene root Popmelt should target. Defaults to the complete R3F scene. */ root?: Object3D; /** Override frame capture, or set false to omit renderer screenshots. */ captureFrame?: ThreeSubjectAdapterOptions['captureFrame'] | false; }; /** * Register an R3F-owned Three.js scene with the nearest PopmeltProvider. * Must run inside Canvas so React Three Fiber's renderer state is available. */ declare function usePopmeltThreeAdapter(options?: PopmeltThreeAdapterOptions): PopmeltSubjectAdapter; /** Declarative, zero-render integration for use inside an R3F Canvas. */ declare function PopmeltThreeAdapter(props: PopmeltThreeAdapterOptions): null; export { PopmeltThreeAdapter, type PopmeltThreeAdapterOptions, usePopmeltThreeAdapter };