import { Object3D, Camera, Mesh, Vector3, Euler, Sphere, PerspectiveCamera } from "three";
import { GLTF } from "three/examples/jsm/loaders/GLTFLoader";
import { DTVector3 } from "../interface/model";
/**
 * 点击事件 - 射线 - 获取点击的物体列表
 */
export declare const getIntersects: (event: MouseEvent | number[], domElement: HTMLElement, camera: Camera, children: Object3D[]) => import("three").Intersection<Object3D<import("three").Object3DEventMap>>[];
export declare function mergeGeometries(object: Object3D): Mesh | undefined;
/**
 * gltf转object3d
 * @param gltf
 * @private
 */
export declare function gltfToObject3D(gltf: GLTF | Object3D): {
    model: Object3D<import("three").Object3DEventMap>;
    clone: Object3D<import("three").Object3DEventMap>;
};
/**
 * 左手坐标系旋转转右手坐标系旋转
 * @param position
 * @returns
 */
export declare function convertUnityToThreeJSRotation(unityRotation: Vector3): Euler;
type colorConfig = {
    color?: string;
    opacity?: number;
    visible?: boolean;
};
export declare function createColorHandler(state?: colorConfig): {
    clear: (objectList: Object3D[]) => void;
    drawColor: (objectList: Object3D[], config?: colorConfig) => void;
    dispose(): void;
};
export declare function getBoundingSphere(target: Object3D): Sphere;
export declare function getCenterTopPosition(target: any): Vector3;
export declare function addVector3(vector1: DTVector3, vector2: DTVector3): DTVector3;
/**
 * 三维坐标转屏幕坐标
 * @param position
 */
export declare function threeCoordinateToScreenPoint(position: DTVector3, container: HTMLElement, camera: PerspectiveCamera): {
    x: number;
    y: number;
};
export {};
