import { AmbientLight, DirectionalLight, HemisphereLight, PointLight, RectAreaLight, SpotLight, Vector2, Raycaster, Clock } from "three";
import { EffectComposer } from "three/examples/jsm/postprocessing/EffectComposer.js";
import { ThreeLayer } from "@vuemap/three-layer";
import { CSS2DRenderer } from "./CSS2DRenderer";
import { CSS3DRenderer } from "./CSS3DRenderer";
import type { Object3D } from "three";
import type { HDROptions, LightOption } from "./Type";
import type { ThreeLayerOptions } from "@vuemap/three-layer";
interface Options extends ThreeLayerOptions {
    lights?: LightOption[];
    hdr?: HDROptions;
    axesHelper: boolean;
    createCssRender: boolean;
}
declare class CustomThreeLayer extends ThreeLayer {
    lightTypes: {
        AmbientLight: typeof AmbientLight;
        DirectionalLight: typeof DirectionalLight;
        HemisphereLight: typeof HemisphereLight;
        PointLight: typeof PointLight;
        RectAreaLight: typeof RectAreaLight;
        SpotLight: typeof SpotLight;
    };
    raycaster: Raycaster | undefined;
    mouse: Vector2;
    envMap: any;
    clickFun: any;
    hoverFun: any;
    resizeFun: any;
    effectComposer?: EffectComposer;
    renderPass: any;
    passNum: number;
    passList: any[];
    clock: Clock;
    preHoverGroup: Object3D<import("three").Event> | null;
    css2DRenderer: CSS2DRenderer | null;
    css3DRenderer: CSS3DRenderer | null;
    constructor(map: any, options: Options, callback: () => void);
    updateRendererSize(): void;
    updateEffectComposerSize(): void;
    createEffect(): void;
    creatCssRenders(map: any): void;
    addPass(pass: any): void;
    removePass(pass: any): void;
    createLights(lights: LightOption[] | undefined): void;
    createHDR(hdr: HDROptions | undefined): void;
    addEnvMap(object: any): void;
    bindEvents(): void;
    ubBindEvents(): void;
    _getOriginEvent(e: any): any;
    _clickEvent(e: any): void;
    _hoverEvent(e: any): void;
    _intersectGltf(e: MouseEvent): Object3D | null;
    _getGroup(object: Object3D): Object3D | null;
    destroy(): void;
}
export default CustomThreeLayer;
