import * as THREE from 'three';
import { type WorkObserver } from './work';
import { type CubeFace } from '../types/cube';
export interface WorkObserverProto {
    /**
     * 将方向向量转化为全景图 uv。
     * @param vector - 全局的方向向量。单位向量。
     * @param uvOrigin - top-left 原点在左上角，x轴向右，y轴向下[默认]。bottom-left 原点左下角，x轴向右，y轴向上。
     * @returns uv坐标 取值范围 [0,1]。
     */
    vectorToEquirectangularUv(this: WorkObserver, vector: THREE.Vector3, uvOrigin?: 'top-left' | 'bottom-left'): THREE.Vector2;
    /**
     * 将方向向量转化为获六视图 uv
     * @param vector - 全局的方向向量。单位向量。
     * @param uvOrigin - top-left 原点在左上角，x轴向右，y轴向下[默认]。bottom-left 原点左下角，x轴向右，y轴向上。
     * @returns uv 坐标，取值范围 [0,1]
     */
    vectorToCubemapUv(this: WorkObserver, vector: THREE.Vector3, uvOrigin?: 'top-left' | 'bottom-left'): [cubeFace: CubeFace, cubemapUv: THREE.Vector2];
    /**
     * 将全景图 uv 转化为方向向量。
     * @param uv - uv坐标 取值范围 [0,1]。
     * @param uvOrigin - top-left 原点在左上角，x轴向右，y轴向下[默认]。bottom-left 原点左下角，x轴向右，y轴向上。
     * @returns 全局的方向向量。单位向量。
     */
    equirectangularUvToVector(this: WorkObserver, uv: THREE.Vector2, uvOrigin?: 'top-left' | 'bottom-left'): THREE.Vector3;
    /**
     * 将六视图 uv 转化为方向向量
     * @param cubeFace - 六视图的某一面。
     * @param uv - uv坐标 取值范围 [0,1]。
     * @param uvOrigin - top-left 原点在左上角，x轴向右，y轴向下[默认]。bottom-left 原点左下角，x轴向右，y轴向上。
     * @returns 全局的方向向量。单位向量。
     */
    cubemapUvToVector(this: WorkObserver, cubeFace: CubeFace, uv: THREE.Vector2, uvOrigin?: 'top-left' | 'bottom-left'): THREE.Vector3;
    /** 获取点位的全局坐标 */
    getWorldPosition(this: WorkObserver): THREE.Vector3;
    /** 获取点位的全局地面坐标 */
    getWorldStandingPosition(this: WorkObserver): THREE.Vector3;
}
export declare const workObserverProto: WorkObserverProto;
