import { Component, Properties, ComponentNature, RealObject, ThreeContainer } from '@hatiolab/things-scene'; import type { State } from '@hatiolab/things-scene'; import * as THREE from 'three'; import { Stock, type StockMaterialProvider } from './stock.js'; /** Visualizer 컴포넌트 state */ export interface VisualizerState extends State { fov?: number; near?: number; far?: number; zoom?: number; cameraX?: number; cameraY?: number; cameraZ?: number; precision?: 'highp' | 'mediump' | 'lowp'; antialias?: boolean; autoRotate?: boolean; threed?: boolean; debug?: boolean; locationField?: string; popupScene?: string; legendTarget?: string; rotationSpeed?: number; hideEmptyStock?: boolean; popupPosition?: '' | 'center' | 'left-top' | 'right-top' | 'left-bottom' | 'right-bottom'; } export declare class Visualizer extends ThreeContainer implements StockMaterialProvider { get state(): VisualizerState; _legendTarget?: Component; _focused_stock?: Stock; _objects: { [id: string]: RealObject; }; _stock_materials: THREE.Material[]; _default_material?: THREE.Material; _empty_material?: THREE.Material; get hideEmptyStock(): boolean; get legendTarget(): Component | undefined; putObject(id: string, object: RealObject): void; getObject(id: string): RealObject; dispose(): void; get nature(): ComponentNature; resetMaterials(): void; onchange(after: Properties, before: Properties): void; onchangeData(): void; onLegendTargetChanged(after: { [key: string]: any; }, before: { [key: string]: any; }): void; onmouseup(e: MouseEvent): void; }