import { InfoWindow as InfoWindow$1, Map } from '@ktmap/map';
import * as _THREE from 'three';

interface Position {
    x: number;
    y: number;
}
interface Align {
    points?: [string];
    offset?: [number, number];
    useCssTransform?: boolean;
}
interface Options {
    type: 'info' | 'success' | 'warning' | 'error';
    align?: Align;
    title?: string | HTMLElement;
    content?: string | HTMLElement;
    close?: boolean;
    trigger: 'custom' | 'hover' | 'click' | 'contextmenu';
    /**
     * 目标元素
     */
    targetName?: string;
    targetCenter?: boolean;
    custom?: boolean;
    position?: Position;
}

/**
 * 信息窗体
 */
declare class InfoWindow extends InfoWindow$1<{
    hover: _THREE.Object3D;
    click: _THREE.Object3D;
}> {
    private map;
    private options;
    static NAME: string;
    private id;
    private clsPrefix;
    private $window;
    private lastWorldPosition?;
    private cacheInnerHTML;
    constructor(map: Map, options: Options);
    __init(): void;
    /**
     * 设置内容
     */
    setContent(content: string | HTMLElement): void;
    /**
     * 打开窗口
     */
    private create;
    /**
     * 打开窗体
     * 当 trigger 为 custom 时，会用到
     */
    show(worldPosition?: _THREE.Vector3): void;
    /**
     * 隐藏窗口
     */
    hide(): void;
    /**
     * 销毁
     */
    destroy(): void;
}

declare module '@ktmap/map' {
    interface KTMap {
        InfoWindow: typeof InfoWindow;
    }
}

export { InfoWindow };
