import { Component, ComponentInternalInstance } from 'vue';
export type PopupPosition = {
    longitude: number;
    latitude: number;
    height?: number;
};
export type AnchorType = 'top-left' | 'top-center' | 'top-right' | 'center-left' | 'center-center' | 'center-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
export interface PopupOptions {
    anchor?: AnchorType;
    offset?: [number, number];
    content: Component | string;
    props?: Record<string, unknown>;
}
export interface PopupInstance {
    position: PopupPosition;
    options: PopupOptions;
    element: HTMLElement;
}
export declare abstract class MapPopup {
    instance: PopupInstance;
    constructor(position: PopupPosition, options: PopupOptions, parentComponentInstance: ComponentInternalInstance);
    openPopup(): void;
    closePopup(): void;
    /**
     * @description: 渲染弹窗组件并插入div中
     * @param {*} props 弹窗内容
     * @return {*}
     */
    private createPopup;
    protected abstract addPopup(): any;
    protected abstract removePopup(): any;
}
