import * as THREE from 'three'; import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; import type { RenderedPart } from './protocol.js'; export interface ViewerOptions { canvas: HTMLCanvasElement; backgroundColor?: number; /** Square build-plate outline/grid size in mm; omit for no bed. */ bedSize?: number; } export declare class Viewer { canvas: HTMLCanvasElement; renderer: THREE.WebGLRenderer; scene: THREE.Scene; camera: THREE.PerspectiveCamera; controls: OrbitControls; private currentGroup; private lastW; private lastH; constructor(opts: ViewerOptions); private resize; private animate; presentObject(object3d: THREE.Object3D): void; loadParts(parts: RenderedPart[]): number; }