import { Matrix4, Object3D, Scene, Vector2, Vector3, WebGLRenderer } from 'three';
import { EffectComposer } from "three/examples/jsm/postprocessing/EffectComposer";
import { RenderPass } from "three/examples/jsm/postprocessing/RenderPass";
import { AAType } from '../Common/SystemEnum';
import { Database } from '../DatabaseServices/Database';
import { Entity } from '../DatabaseServices/Entity/Entity';
import { ViewportEntity } from '../DatabaseServices/ViewportEntity';
import { CameraUpdate } from './CameraUpdate';
import { GripScene } from './GripScene';
import { IViewer } from './IView';
import { OutlinePass } from './OutlinePass';
import { PreViewer } from './PreViewer';
import { RenderType } from './RenderType';
export declare class Viewer {
    canvasContainer: HTMLElement;
    protected NeedUpdate: boolean;
    DisableRenderer: boolean;
    CameraCtrl: CameraUpdate;
    LookTarget: Vector3;
    Renderer: WebGLRenderer;
    PreViewer: PreViewer;
    RendererFollowView: boolean;
    /**使用后期渲染器 */
    UsePass: boolean;
    /**后期渲染器 */
    Composer: EffectComposer;
    _AAType: AAType;
    RenderPass: RenderPass;
    OutlinePass: OutlinePass;
    private _SMAAPass;
    private _Scene;
    private _RenderSelectScene;
    GripScene: GripScene;
    private _Width;
    private _Height;
    private _NeedUpdateEnts;
    isLayout: boolean;
    ViewPorts: ViewportEntity[];
    LayoutScene: Scene;
    CurrentViewport: ViewportEntity;
    constructor(canvasContainer: HTMLElement);
    get Scene(): Scene;
    set Scene(s: Scene);
    get Camera(): import("three").PerspectiveCamera | import("three").OrthographicCamera;
    get Width(): number;
    get Height(): number;
    set AAType(type: AAType);
    get AAType(): AAType;
    InitRender(canvasContainer: HTMLElement): void;
    OnSize: (width?: number, height?: number) => void;
    OnSizeEvent(): void;
    private _TempMove;
    StartRender: () => void;
    UpdateRender(): void;
    Render(): void;
    private _constant;
    private _planNormal;
    ScreenToWorld(pt: Vector3, planNormal?: Vector3, constant?: Vector3): Vector3;
    /**
     * 世界坐标系转到屏幕坐标系的变换矩阵
     * wcsP.applyMatrix4(dcs) => dcsP;
     */
    get DCS(): Matrix4;
    WorldToScreen(pt: Vector3): Vector3;
    /**
     * 更新视角观测目标(物体中心)
     */
    UpdateLockTarget(): void;
    IsLookSelect: boolean;
    private _OldUsePass;
    StartLookSelect(): void;
    EndLookSelect(): void;
    /**当前相机控制 */
    get CameraControl(): CameraUpdate;
    Rotate(mouseMove: Vector3): void;
    Pan(mouseMove: Vector3): void;
    Zoom(scale: number, center?: Vector3): void;
    ZoomAll(UpdateRender?: boolean): void;
    ZoomtoEntitys(ens: Entity[]): void;
    ViewToTop(): void;
    ViewToFront(): void;
    ViewToSwiso(): void;
    /**
     * 获得当前视图显示图元的对象列表(Threejs对象).
     */
    get VisibleObjects(): Object3D[];
    get VisibleEntitys(): Entity[];
    private LazyRenderDatabase;
    RenderDatabase(db: Database): void;
    RenderDatabaseEndEvent(): void;
    UpdateRenderType(db: Database, type: RenderType): Promise<void>;
    SwitchLayout(): void;
    LayoutRenderEntity(en: Entity): void;
    ViewportPoint(pt: Vector3 | Vector2, viewport: ViewportEntity): void;
    GetIViewer(pts: (Vector3 | Vector2)[]): IViewer;
}
//# sourceMappingURL=Viewer.d.ts.map