import { Context } from "../context/context";
import { Box2, DataTexture, Object3D, Object3DEventMap, Sprite, Vector3 } from "three";
export interface PoiOptions2 {
    text: string;
    icon: string;
    icon_size: [number, number];
    level: number;
    collision_enable: boolean;
    opacity: number;
    id: string;
    position: {
        x: number;
        y: number;
        z: number;
    };
    text_font_size: number;
    icon_rotate: number;
    depth_test: boolean;
    text_texture?: DataTexture;
    text_texture_width?: number;
    text_texture_height?: number;
    text_texture_offset_x?: number;
    text_texture_offset_y?: number;
    hide_text: boolean;
    icon_border?: {
        width: number;
        color: string;
    };
    maxWeight: number;
    minWeight: number;
    text_opacity: number;
    icon_opacity: number;
}
type PoiEventMap2 = {
    [K in keyof PoiOptions2 as `change-${K}`]: {
        value: PoiOptions2[K];
    };
} & Object3DEventMap & {
    'text-texture-inited': {};
};
export type PoiOptionsParam2 = Partial<PoiOptions2>;
export declare class Poi2 extends Object3D<PoiEventMap2> {
    context: Context;
    options: PoiOptions2;
    textAspect: number;
    spriteText?: Sprite;
    spriteIcon?: Sprite;
    box: Box2;
    boxHelper?: HTMLDivElement;
    private _initIconPromise;
    textureLines: number;
    private _shouldShow;
    textTexture?: DataTexture;
    constructor(context: Context, options: PoiOptionsParam2);
    get hasText(): string | false;
    get durIconAndText(): 2 | 0;
    get offset(): 0 | 0.5;
    get iconWidth(): number;
    get iconHeight(): number;
    get textWidth(): number;
    get textHeight(): number;
    get hasOriginTexture(): boolean;
    get inited(): true | "" | DataTexture | undefined;
    get deltaZ(): number;
    get canSelect(): boolean;
    show(): Promise<void>;
    hide(): void;
    registryEvent(): void;
    unRegistryEvent(): void;
    getPosition(): Vector3;
    initIcon(): Promise<any>;
    initTextTexture: () => Promise<void>;
    initText(): Promise<void>;
    initSize(): void;
    init(): Promise<void>;
    protected _initScale: ({ zoom }: {
        zoom: number;
    }) => void;
    resetZ(): void;
    getBox(v3: Vector3): Box2 | null;
    renderBoxHelper(x?: number, y?: number): void;
    parentSetVisible(visible: boolean): void;
    dispose(): void;
}
export {};
