import { Line, LineBasicMaterial, LineDashedMaterial, Scene, Vector3 } from 'three';
import { CameraUpdate } from './CameraUpdate';
import { Cursor } from './Cursor';
export declare enum DrawMode {
    Square = 0,
    Cross = 1,
    ObliqueCross = 2
}
export declare class PreViewer {
    private m_bNeedUpdate;
    private m_Render;
    private m_Scene;
    protected m_Camera: CameraUpdate;
    private m_Width;
    private m_Height;
    /**
     * 光标对象
     */
    Cursor: Cursor;
    private m_DomEl;
    constructor(container: HTMLElement);
    UpdateSize(width: number, height: number): void;
    get Width(): number;
    get Height(): number;
    get Scene(): Scene;
    get Camera(): import("three").OrthographicCamera | import("three").PerspectiveCamera;
    UpdateScreen(): void;
    StartRender: () => void;
    Render(): void;
    private InitCamera;
    private InitRender;
    WorldToViewPoint(pWcs: Vector3): Vector3;
    ScreenPointToViewerPoint(p: Vector3): Vector3;
    ViewerPointToScreenPoint(p: Vector3): Vector3;
    Draw(mode: DrawMode, size: number, pt: Vector3, material: LineBasicMaterial | LineDashedMaterial, isWcs?: boolean): Line<import("three").BufferGeometry, LineBasicMaterial | LineDashedMaterial>;
    /**
     * 在视图中绘制线,并返回该对象
     * @param pts 点表
     * @param material 材质
     * @param [isWCS] 点表是世界坐标系
     * @param [type] 绘制类型 Line or LineSegment
     * @returns
     */
    DrawLine(pts: Vector3[], material: LineBasicMaterial | LineDashedMaterial, isWCS?: boolean, type?: typeof Line): Line<import("three").BufferGeometry, LineBasicMaterial | LineDashedMaterial>;
}
//# sourceMappingURL=PreViewer.d.ts.map