import * as THREE from "three";
import { CSS3DObject, CSS3DSprite } from "three/examples/jsm/renderers/CSS3DRenderer.js";
import { Camera, Renderer } from "../type";
import { CreateAxesHelperParams, CreateCameraParams, CreateCss3dObjectParams, CreateCss3dRendererParams, CreateLightParams, CreateTextParams, CreateRendererParams, SceneAddParams, CreateCss2dRendererParams, CreateCss2dObjectParams } from "./type";
import { TextGeometry } from "three/examples/jsm/geometries/TextGeometry.js";
import { CSS2DObject } from "three/examples/jsm/renderers/CSS2DRenderer.js";
/** 创建场景 */
export declare const createScene: () => THREE.Scene;
/** 创建光源 */
export declare const createLight: ({ color, colorOpacity, ambientLightColor, ambientLightColorOpacity, directLightColor, directLightColorOpacity, }: CreateLightParams) => {
    ambientLight: THREE.AmbientLight;
    directLight: THREE.DirectionalLight;
};
/** 创建相机 */
export declare const createCamera: ({ width, height, position, lookAt, }: CreateCameraParams) => Camera;
/** 创建渲染器 */
export declare const createRenderer: ({ width, height, backgroundColor, backgroundColorOpacity, }: CreateRendererParams) => Renderer;
/** 创建辅助坐标轴 */
export declare const createAxesHelper: ({ length }: CreateAxesHelperParams) => THREE.AxesHelper;
/** 给场景添加内容 */
export declare const sceneAdd: ({ scene, content }: SceneAddParams) => void;
/** 创建 CSS 3D 渲染器*/
export declare const createCss3dRenderer: ({ scene, camera, }: CreateCss3dRendererParams) => {
    refresh: () => void;
    mountTo: (element: HTMLElement) => void;
};
/** 创建 css3dObject(不会被模型遮挡)*/
export declare const createCss3dObject: ({ element }: CreateCss3dObjectParams) => CSS3DObject;
/** 创建 CSS 3D 对象 */
export declare const createCss3dSprite: ({ element }: CreateCss3dObjectParams) => CSS3DSprite;
/** 创建文本模型 */
export declare const createText: ({ text, options }: CreateTextParams) => THREE.Mesh<TextGeometry, THREE.MeshBasicMaterial, THREE.Object3DEventMap>;
/** 创建 css 2D 渲染器 */
export declare const createCss2dRenderer: ({ scene, camera, }: CreateCss2dRendererParams) => {
    refresh: () => void;
    mountTo: (element: HTMLElement) => void;
};
/** 创建 css 2d 对象 */
export declare const createCss2dObject: ({ content }: CreateCss2dObjectParams) => CSS2DObject;
