import type { Audio, BufferGeometry, Camera, ColorRepresentation, Light, Line, Material, Mesh, Object3D, PositionalAudio, Vector3, Vector3Tuple } from 'three'; import type { LineMaterial } from 'three/examples/jsm/lines/LineMaterial'; import type { OrbitControls } from 'three/examples/jsm/controls/OrbitControls'; import type { Pass } from 'three/examples/jsm/postprocessing/Pass'; import type { LookAt, Position, Rotation, Scale, Text as TextType, ThrelteLayers } from './types'; export declare type HierarchicalObjectProperties = { object: Object3D; }; export declare type InteractiveObjectProperties = { object: Object3D; interactive: boolean; ignorePointer: boolean; }; export declare type LayerableObjectProperties = { object: Object3D; }; export declare type TransformableObjectProperties = { object: Object3D; position?: Position; scale?: Scale; rotation?: Rotation; lookAt?: LookAt; }; export declare type ViewportAwareObjectProperties = { object: Object3D; viewportAware: boolean; /** * Use as a binding. */ inViewport: boolean; }; export declare type Object3DInstanceProperties = HierarchicalObjectProperties & LayerableObjectProperties & TransformableObjectProperties & ViewportAwareObjectProperties & { castShadow?: boolean; receiveShadow?: boolean; frustumCulled?: boolean; renderOrder?: number; visible?: boolean; }; export declare type MeshInstanceProperties = Omit & Omit & { mesh: Mesh; }; export declare type LineInstanceProperties = Omit & Omit & { line: Line; }; export declare type LightInstanceProperties = Omit & { light: Light; color?: ColorRepresentation; intensity?: number; }; export declare type CameraInstanceProperties = Omit & { camera: Camera; useCamera: boolean; }; export declare type OrthographicCameraProperties = Omit & { near?: number; far?: number; zoom?: number; }; export declare type PerspectiveCameraProperties = Omit & { near?: number; far?: number; fov?: number; }; export declare type OrbitControlsProperties = { autoRotate?: boolean; autoRotateSpeed?: number; dampingFactor?: number; enableDamping?: boolean; enabled?: boolean; enablePan?: boolean; enableRotate?: boolean; enableZoom?: boolean; keyPanSpeed?: number; keys?: OrbitControls['keys']; maxAzimuthAngle?: number; maxDistance?: number; maxPolarAngle?: number; maxZoom?: number; minAzimuthAngle?: number; minDistance?: number; minPolarAngle?: number; minZoom?: number; mouseButtons?: OrbitControls['mouseButtons']; panSpeed?: number; rotateSpeed?: number; screenSpacePanning?: boolean; touches?: OrbitControls['touches']; zoomSpeed?: number; target?: TransformableObjectProperties['position']; }; export declare type TransformControlsProperties = { autoPauseOrbitControls?: boolean; mode?: 'translate' | 'rotate' | 'scale' | undefined; axis?: 'X' | 'Y' | 'Z' | 'E' | 'XY' | 'YZ' | 'XZ' | 'XYZ' | 'XYZE' | null; dragging?: boolean; enabled?: boolean; translationSnap?: number; scaleSnap?: number; rotationSnap?: number; showX?: boolean; showY?: boolean; showZ?: boolean; size?: number; space?: 'world' | 'local' | undefined; }; export declare type PassProperties = { pass: Pass; }; export declare type AmbientLightProperties = Omit; export declare type DirectionalLightProperties = Omit & { target?: Position | Object3D; shadow?: boolean | { mapSize?: [number, number]; camera?: { left?: number; right?: number; top?: number; bottom?: number; near?: number; far?: number; }; bias?: number; radius?: number; }; }; export declare type HemisphereLightProperties = Omit & { skyColor: LightInstanceProperties['color']; groundColor?: ColorRepresentation; }; export declare type PointLightProperties = Omit & { distance?: number; decay?: number; power?: number; shadow?: boolean | { mapSize?: [number, number]; camera?: { near?: number; far?: number; }; bias?: number; radius?: number; }; }; export declare type SpotLightProperties = Omit & { angle?: number; decay?: number; distance?: number; penumbra?: number; power?: number; target?: Position | Object3D; shadow?: boolean | { mapSize?: [number, number]; camera?: { near?: number; far?: number; }; bias?: number; radius?: number; }; }; export declare type FogProperties = { color: ColorRepresentation; near?: number; far?: number; }; export declare type FogExp2Properties = { color: ColorRepresentation; density?: number; }; export declare type LayersProperties = { layers: ThrelteLayers; }; export declare type GLTFProperties = Omit & { url: string; dracoDecoderPath?: string; ktxTranscoderPath?: string; } & Omit; export declare type GroupProperties = Omit; export declare type MeshProperties = Omit & { geometry: BufferGeometry; material: Material | Material[]; }; export declare type LineProperties = Omit & { geometry?: BufferGeometry; points?: Vector3[] | Vector3Tuple[]; material: Material | Material[]; }; export declare type Line2Properties = Omit & { points: Vector3[] | Vector3Tuple[]; material: LineMaterial; }; export declare type LineSegmentsProperties = Omit & { geometry: BufferGeometry; material: Material | Material[]; }; export declare type InstancedMeshProperties = Omit & { geometry: BufferGeometry; material: Material | Material[]; count?: number; id?: string; }; export declare type InstanceProperties = Omit & { color?: ColorRepresentation; id?: string; }; export declare type Object3DProperties = Omit; export declare type TextProperties = Omit & { text?: TextType['text']; anchorX?: TextType['anchorX']; anchorY?: TextType['anchorY']; curveRadius?: TextType['curveRadius']; font?: TextType['font']; fontSize?: TextType['fontSize']; letterSpacing?: TextType['letterSpacing']; lineHeight?: TextType['lineHeight']; maxWidth?: TextType['maxWidth']; overflowWrap?: TextType['overflowWrap']; textAlign?: TextType['textAlign']; textIndent?: TextType['textIndent']; whiteSpace?: TextType['whiteSpace']; material?: TextType['material'] | null; color?: TextType['color']; depthOffset?: TextType['depthOffset']; clipRect?: TextType['clipRect']; glyphGeometryDetail?: TextType['glyphGeometryDetail']; sdfGlyphSize?: TextType['sdfGlyphSize']; outlineWidth?: TextType['outlineWidth']; outlineColor?: TextType['outlineColor']; outlineOpacity?: TextType['outlineOpacity']; outlineBlur?: TextType['outlineBlur']; outlineOffsetX?: TextType['outlineOffsetX']; outlineOffsetY?: TextType['outlineOffsetY']; strokeWidth?: TextType['strokeWidth']; strokeColor?: TextType['strokeColor']; strokeOpacity?: TextType['strokeOpacity']; fillOpacity?: TextType['fillOpacity']; }; export declare type AudioListenerProperties = Omit & { id?: string; masterVolume?: number; }; declare type AudioSource = string | AudioBuffer | HTMLMediaElement | AudioBufferSourceNode | MediaStream; export declare type AudioInstanceProperties | PositionalAudio> = Omit & { audio: T; autoplay?: boolean; detune?: number; source?: AudioSource; volume?: number; loop?: boolean; filters?: BiquadFilterNode[] | BiquadFilterNode; playbackRate?: number; play: (delay?: number | any) => Promise; pause: () => T; stop: () => T; }; export declare type AudioProperties = Omit, 'audio'> & { id?: string; }; export declare type PositionalAudioProperties = Omit, 'audio'> & { id?: string; refDistance?: number; rolloffFactor?: number; distanceModel?: string; maxDistance?: number; directionalCone?: { coneInnerAngle: number; coneOuterAngle: number; coneOuterGain: number; }; }; export {};