import { Component } from "../../interface/component";
import { DTVector3 } from "../../interface/model";
import { HtmlPoiOptions, ImagePoiOptions, UnityPoiInstance, TextPoiOptions } from "../../interface/poi";
import { UnityCreator } from "../../unity";
import { UnityModel } from "../../unity/model";
export declare enum TemplateType {
    symbol_1 = "\u56FE\u6807_\u6587\u5B57_1",
    symbol_2 = "\u56FE\u6807_\u6587\u5B57_2",
    symbol_3 = "\u56FE\u6807_\u6587\u5B57_3",
    text_1 = "\u65E0\u56FE\u6807_1",
    text_2 = "\u65E0\u56FE\u6807_2",
    icon_1 = "\u7EAF\u56FE\u6807_1",
    icon_2 = "\u7EAF\u56FE\u6807_2",
    icon_radius = "\u7EAF\u56FE\u6807_\u5706\u5F62\u906E\u7F69_0"
}
export type TemplateOptions = Omit<ImagePoiOptions, "url"> & {
    template: TemplateType;
    text?: string;
    url?: string;
    hoverUrl?: string;
    renderOrder?: number;
    fixed?: number;
    otherSettings?: Record<string, any>;
};
export type EmptyObjectType = {
    objectId?: string;
    parentId?: string;
    position: DTVector3;
    offset?: DTVector3;
    polyIds?: string[];
};
declare const _default: import("../../interface/meta").DefinedPlugin<unknown, {
    TemplateType: typeof TemplateType;
    createText: (options?: Partial<TextPoiOptions>) => UnityPoiInstance<UnityModel, TextPoiOptions>;
    createImage: (options: Partial<ImagePoiOptions>) => UnityPoiInstance<UnityModel, ImagePoiOptions>;
    createHtml: (options: Partial<HtmlPoiOptions>) => {
        applyToComponent: (component: Component<UnityModel>) => Promise<void>;
        applyToPosition: (position: DTVector3) => Promise<any>;
    };
    createTemplate: (options: Partial<TemplateOptions>) => UnityPoiInstance<UnityModel, TemplateOptions>;
    clearAll: () => Promise<void>;
    clear: (list: Array<Component<UnityModel> | DTVector3 | string> | Component<UnityModel> | DTVector3 | string) => Promise<void>;
    update: (options: TextPoiOptions | ImagePoiOptions | TemplateOptions, target: Array<Component<UnityModel> | DTVector3 | string> | Component<UnityModel> | DTVector3 | string, interceptor?: (target: Component<UnityModel> | DTVector3 | string, options: TextPoiOptions | ImagePoiOptions | TemplateOptions) => TemplateOptions) => Promise<PromiseSettledResult<string>[]>;
    dispose: () => void;
    addEventListener: (type: string, listener: (data: {
        modelId: string | undefined;
        eventType: string;
        target: Component<UnityModel> | DTVector3 | string | undefined;
    }) => void) => () => void;
}, UnityCreator>;
export default _default;
