import { BehaviorSubject } from 'rxjs'; import { GridHelper, Material, Mesh, MeshLambertMaterial, PerspectiveCamera, Scene, Vector3, WebGLRenderer } from 'three'; import { IFCModel } from 'web-ifc-three/IFC/components/IFCModel'; import { OrbitControls } from "three/examples/jsm/controls/OrbitControls"; import { ModelViewerSettings } from './models'; import { IFCManager } from 'web-ifc-three/IFC/components/IFCManager'; import CameraControls from 'camera-controls'; import * as i0 from "@angular/core"; export declare class IFCViewerService { scene: Scene; camera: PerspectiveCamera; cameraControls?: CameraControls; private clock; renderer: WebGLRenderer; controls?: OrbitControls; sceneStatus$: BehaviorSubject; loadedModels: IFCModel[]; globalColorScheme: string[]; grid: GridHelper; axes: any; ifcManager: IFCManager | null; globalSettings?: ModelViewerSettings; constructor(); initViewer(canvas: any, settings: ModelViewerSettings): void; private setupControls; update(_delta: number): void; toggleCameraControls(active: boolean): void; appendViewerSettings(settings: ModelViewerSettings): void; setGridVisibility(visible: boolean): void; setAxesVisibility(visible: boolean): void; getSceneStatus(): import("rxjs").Observable; getScene(): Scene; reRender(): void; flyToMeshCenter(mesh: Mesh, zoom?: boolean, offset?: number, showBbox?: boolean): Promise<(void | undefined)[]>; fitCameraToMeshBox(mesh: Mesh): Promise; getCenter(mesh: Mesh): Vector3; getDistanceToFitBox(width: number, height: number, depth: number): number; appendModel(model: IFCModel): void; loadMesh(mesh: Mesh): void; getLoadedModels(): IFCModel[]; loadMeshColor(mesh: Mesh, color: string, asWireframe?: boolean, randomColor?: boolean): void; removeMeshFromScene(expressIDs: string[]): void; getRandomColorMaterial(): MeshLambertMaterial; materialFromColor(color: string, opacity?: number): Material; private processRGBA; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }