import * as THREE from 'three'; import { Camera, Group, Mesh, Object3D, Vector2, WebGLRenderer } from 'three'; import { Editor } from './editor.js'; import { EditorControls } from './controls.js'; import { ViewHelper } from './viewhelper.js'; import { PandaOptions } from './index.js'; import { PandaMode } from './enums.js'; import Stats from 'three/examples/jsm/libs/stats.module'; import { ViewEffectComposer } from "./effect"; declare class Viewport { editor: Editor; dom: HTMLElement; camera: Camera; viewHelper: ViewHelper; controls: EditorControls; raycaster: THREE.Raycaster; mouse: THREE.Vector2; onDownPosition: THREE.Vector2; onUpPosition: THREE.Vector2; onDropPosition: THREE.Vector2; onDoubleClickPosition: THREE.Vector2; onContextmenuPosition: THREE.Vector2; onMousemovePosition: THREE.Vector2; isMouseOverModel: boolean; mouseOverModel: any; clock: THREE.Clock; startTime: number; endTime: number; objects: Object3D[]; grid?: Group; renderer?: WebGLRenderer; mode: PandaMode; showSceneHelpers: boolean; options: PandaOptions; stats: Stats; multiObjects: Object3D[]; effectComposer: ViewEffectComposer; private _fps; private _timeStamp; private _singleFrameTime; set fps(fps: number); constructor(editor: Editor, options: PandaOptions); updateAspectRatio(): void; getIntersects(point: Vector2, objects: Object3D[]): THREE.Intersection>[]; getMousePosition(dom: HTMLElement, x: number, y: number): number[]; handleClick(event: any): void; onMouseDown(event: MouseEvent): void; onMouseUp(event: MouseEvent): void; onTouchStart(event: TouchEvent): void; onTouchEnd(event: TouchEvent): void; onDoubleClick(event: MouseEvent): void; animate(): void; render(force?: boolean): void; updateGridColors(grid1: Mesh, grid2: Mesh, colors: number[]): void; } export { Viewport };