import { Camera, Mesh, OrthographicCamera, Quaternion, Scene, ShaderMaterial, Vector2, Vector3, WebGLRenderer, WebGLRenderTarget } from "three"; import { OrbitControls } from './OrbitControls'; import { SceneHelper } from './SceneHelper'; import { Raycaster } from './raycaster/Raycaster'; import { SplatMesh } from './SplatMesh'; import { SplatBuffer } from "./SplatBuffer"; import { LoadFileOptions, ViewerParams } from "./Viewer.types"; export declare class Viewer { camera?: Camera; cameraFocalLength?: number; cameraUp: Vector3; controls: OrbitControls | null; currentFPS: number; inIndexArray: Uint32Array | null; infoPanel: HTMLDivElement | null; infoPanelCells: { [id: string]: HTMLDivElement; }; initialCameraLookAt: Vector3; initialCameraPosition: Vector3; lastSortTime: number; mousePosition: Vector2; outIndexArray?: Uint32Array; raycaster: Raycaster; renderTargetCopyCamera?: OrthographicCamera; renderTargetCopyMaterial?: ShaderMaterial; renderTargetCopyQuad?: Mesh; renderer?: WebGLRenderer; rootElement?: HTMLDivElement; scene?: Scene; sceneHelper: SceneHelper | null; selfDrivenMode: boolean; selfDrivenModeRunning: boolean; selfDrivenUpdateFunc: () => void; showInfo: boolean; showMeshCursor: boolean; simpleObjectDepthOverrideMaterial?: ShaderMaterial; simpleScene?: Scene; sortRunning: boolean; sortWorker: Worker | null; splatMesh: SplatMesh | null; splatRenderCount: number; splatRenderTarget?: WebGLRenderTarget; splatRenderingInitialized: boolean; splatSortCount: number; useBuiltInControls: boolean; usingExternalCamera: boolean; usingExternalRenderer: boolean; constructor(params?: ViewerParams); onKeyDown(e: any): void; onMouseMove(mouse: any): void; getRenderDimensions(outDimensions: Vector2): void; init(): void; setupInfoPanel(): void; updateSplatRenderTargetForRenderDimensions(width: number, height: number): void; setupSimpleObjectDepthOverrideMaterial(): void; setupRenderTargetCopyObjects(): void; updateSplatMeshUniforms: (this: Viewer) => void; loadFile(fileName: string, options?: LoadFileOptions): Promise; setupSplatMesh(splatBuffer: any, splatAlphaRemovalThreshold?: number, position?: Vector3, quaternion?: Quaternion, halfPrecisionCovariancesOnGPU?: boolean): void; setupSortWorker(splatBuffer: SplatBuffer): Promise; gatherSceneNodes: (this: Viewer, gatherAllNodes: any) => void; start(): void; updateFPS: (this: Viewer) => void; updateForRendererSizeChanges: (this: Viewer) => void; selfDrivenUpdate(): void; update(): void; rayCastScene: (this: Viewer) => void; updateInfo: (this: Viewer) => void; render(): void; updateView: (this: Viewer, force?: boolean, gatherAllNodes?: boolean) => void; getSplatMesh(): SplatMesh | null; }