import { Component, RealObject } from '@hatiolab/things-scene'; import * as THREE from 'three'; /** * Stock material/legend 정보를 제공하는 컴포넌트 인터페이스. * Visualizer와 RackTable 모두 이를 구현한다. */ export interface StockMaterialProvider { _stock_materials: THREE.Material[]; _default_material?: THREE.Material; _empty_material?: THREE.Material; legendTarget?: Component; hideEmptyStock?: boolean; } export declare class Stock extends RealObject { static defaultMaterial: THREE.MeshStandardMaterial; static defaultEmptyMaterial: THREE.MeshStandardMaterial; static stockGeometry: THREE.BoxGeometry; _hideEmptyStock: boolean; _focused: boolean; _focusedAt?: number; model: any; constructor(component: Component, model: any); protected getObject3dInstance(): THREE.Mesh, THREE.Material | THREE.Material[], THREE.Object3DEventMap>; /** * 가장 가까운 StockMaterialProvider 조상을 찾는다 (RackTable 또는 Visualizer). */ get provider(): StockMaterialProvider | undefined; private get _legendStatus(); getMaterial(index: number): THREE.Material; get stockMaterials(): THREE.Material[]; get userDefineDefaultMaterial(): THREE.Material; get emptyMaterial(): THREE.Material; build(): void; createStock(w: number, h: number, d: number): void; onchangeStockData(data: any): void; onBeforeRender: () => void; onmouseup(e: MouseEvent, _context: unknown, callback: (arg: { data: any; location: string; }) => void): void; updateTransform(): void; updateDimension(): void; updateAlpha(): void; updateFillStyle(): void; updateStrokeStyle(): void; updateHidden(): void; updateText(): void; }