import { Map } from 'ol';
import { default as Overlay } from 'ol/Overlay';
import { Coordinate } from 'ol/coordinate';

/**
 * Tooltip 样式配置接口
 */
export interface TooltipStyleConfig {
    backgroundColor?: string;
    borderColor?: string;
    borderWidth?: number;
    borderRadius?: number;
    padding?: string;
    fontSize?: number;
    fontColor?: string;
    opacity?: number;
    shadow?: string;
    fontWeight?: string;
    whiteSpace?: string;
    userSelect?: string;
    pointerEvents?: string;
    zIndex?: string;
}
/**
 * Tooltip 配置接口
 */
export interface TooltipConfig {
    offset?: [number, number];
    positioning?: "bottom-left" | "bottom-center" | "bottom-right" | "center-left" | "center-center" | "center-right" | "top-left" | "top-center" | "top-right";
    stopEvent?: boolean;
    insertFirst?: boolean;
    className?: string;
}
/**
 * 通用 Tooltip 帮助工具类
 * 提供创建和管理鼠标跟随提示的功能
 */
export declare class TooltipHelper {
    private map;
    private tooltipElement;
    private tooltip;
    private defaultStyle;
    private defaultConfig;
    private pointerMoveListener;
    private animationFrameId;
    private pendingCoordinate;
    constructor(map: Map);
    /**
     * 创建 Tooltip
     * @param styleConfig 样式配置
     * @param config Tooltip 配置
     */
    createTooltip(styleConfig?: Partial<TooltipStyleConfig>, config?: Partial<TooltipConfig>): void;
    /**
     * 应用样式到元素
     * @param element HTML 元素
     * @param style 样式配置
     */
    private applyStyles;
    /**
     * 更新 Tooltip 文本内容
     * @param text 文本内容
     */
    updateText(text: string): void;
    /**
     * 更新 Tooltip 位置
     * @param coordinate 坐标
     */
    updatePosition(coordinate: Coordinate): void;
    /**
     * 显示 Tooltip
     * @param mode 绘制模式
     */
    show(mode?: DrawingMode): void;
    /**
     * 隐藏 Tooltip
     */
    hide(): void;
    /**
     * 隐藏提示框（别名方法，兼容性）
     */
    hideTooltip(): void;
    /**
     * 显示 tooltip（别名方法）
     */
    showTooltip(text: string): void;
    /**
     * 销毁 Tooltip
     */
    destroyTooltip(): void;
    /**
     * 获取当前 Tooltip 元素
     */
    getTooltipElement(): HTMLElement | null;
    /**
     * 获取当前 Tooltip Overlay
     */
    getTooltip(): Overlay | null;
    /**
     * 检查 Tooltip 是否存在
     */
    exists(): boolean;
    /**
     * 设置默认样式配置
     * @param style 样式配置
     */
    setDefaultStyle(style: Partial<TooltipStyleConfig>): void;
    /**
     * 设置默认配置
     * @param config 配置
     */
    setDefaultConfig(config: Partial<TooltipConfig>): void;
    /**
     * 添加鼠标移动监听器（带requestAnimationFrame优化）
     */
    private addPointerMoveListener;
    /**
     * 移除鼠标移动监听器
     */
    private removePointerMoveListener;
    /**
     * 销毁工具类
     */
    destroy(): void;
}
/**
 * 标绘模式类型定义
 */
export type DrawingMode = "point" | "line" | "polygon" | "circle" | "rectangle" | "star" | "text" | "multipoint" | "multilinestring" | "multipolygon" | "select" | "modify" | "none";
/**
 * 创建标绘模式的鼠标跟随提示文本
 */
export declare const DrawingTooltipTexts: Record<DrawingMode, string>;
//# sourceMappingURL=TooltipHelper.d.ts.map