import { Vec2, Vec3 } from '@turbox3d/shared';
import { CoordinateType } from './type';
interface ICanvasRect {
    width: number;
    height: number;
    x: number;
    y: number;
    left?: number;
    right?: number;
    top?: number;
    bottom?: number;
}
export declare class CoordinateController {
    /** 获取画布矩形包围盒的实现 */
    private getCanvasRectImpl;
    /** 画布屏幕坐标转场景世界坐标的实现 */
    private canvasToSceneImpl;
    /** 场景世界坐标转画布屏幕坐标的实现 */
    private sceneToCanvasImpl;
    constructor({ getCanvasRectImpl, canvasToSceneImpl, sceneToCanvasImpl, }: {
        getCanvasRectImpl: () => ICanvasRect;
        canvasToSceneImpl: (point: Vec2, z?: number) => Vec2 | Vec3;
        sceneToCanvasImpl: (point: Vec2 | Vec3) => Vec2;
    });
    /**
     * 将坐标进行转化
     */
    transform(point: Vec2 | Vec3, type: CoordinateType, z?: number): Vec2 | Vec3;
    private screenToCanvas;
    private canvasToScreen;
    private canvasToScene;
    private sceneToCanvas;
    private screenToScene;
    private sceneToScreen;
}
export {};
