import { Component } from "../../interface/component";
import { DTVector3 } from "../../interface/model";
import { HtmlPoiOptions, ImagePoiOptions, PoiInstance, TextPoiOptions } from "../../interface/poi";
import { WebglModel } from "../../webgl/model";
import { Object3D } from "three";
import { CSS3DObject, CSS3DRenderer } from "three/examples/jsm/renderers/CSS3DRenderer";
import { WebglCreator } from "../../webgl";
import { CSS2DObject, CSS2DRenderer } from "three/examples/jsm/renderers/CSS2DRenderer";
export type POIOptions = {
    scale?: number;
    type?: string;
};
declare const _default: import("../../interface/meta").DefinedPlugin<POIOptions | undefined, {
    keepVisible: boolean;
    createText: (options?: Partial<TextPoiOptions>) => PoiInstance<WebglModel, TextPoiOptions>;
    createImage: (options: Partial<ImagePoiOptions>) => PoiInstance<WebglModel, ImagePoiOptions>;
    createHtml: (options: Partial<HtmlPoiOptions>) => {
        applyToComponent: (component: Component<WebglModel>, interceptor: (component: Component<WebglModel> | DTVector3, options: HtmlPoiOptions) => HtmlPoiOptions) => (CSS3DObject | CSS2DObject)[];
        applyToPosition: (position: DTVector3) => (CSS3DObject | CSS2DObject)[];
    };
    clearAll: () => Promise<void>;
    clear: (list: Array<Component<WebglModel> | DTVector3> | Component<WebglModel> | DTVector3) => Promise<void>;
    dispose: () => void;
    update: () => void;
    renderer: CSS3DRenderer | CSS2DRenderer;
    addEventListener: (type: string, listener: (data: {
        target: Component<WebglModel> | DTVector3;
        poi: Object3D;
        event: MouseEvent;
    }) => void) => () => void;
}, WebglCreator>;
export default _default;
