import { Map as OlMap } from 'ol';
import { DrawingManager } from './drawing/DrawingManager';
import { PointDrawing } from './drawing/PointDrawing';

/**
 * 用户标记数据接口
 */
export interface UserMarker {
    id: string;
    name: string;
    category: string;
    color: string;
    longitude: number;
    latitude: number;
    description?: string;
    createTime: string;
}
/**
 * 标记绘制适配器
 * 基于DrawingManager + PointDrawing架构实现标记管理功能
 */
export declare class MarkerDrawingAdapter {
    private map;
    private drawingManager;
    private markerDrawings;
    private eventListeners;
    constructor(map: OlMap);
    /**
     * 设置事件监听器
     */
    private setupEventListeners;
    /**
     * 将UserMarker转换为PointDrawing配置
     */
    private convertMarkerToDrawingConfig;
    /**
     * 创建标记图标的Data URL
     */
    private createMarkerIconDataUrl;
    /**
     * 从PointDrawing获取UserMarker数据
     */
    private getMarkerFromDrawing;
    /**
     * 添加标记
     */
    addMarker(marker: UserMarker): PointDrawing;
    /**
     * 删除标记
     */
    removeMarker(markerId: string): boolean;
    /**
     * 更新标记
     */
    updateMarker(marker: UserMarker): boolean;
    /**
     * 获取标记
     */
    getMarker(markerId: string): UserMarker | null;
    /**
     * 获取所有标记
     */
    getAllMarkers(): UserMarker[];
    /**
     * 设置标记（批量替换）
     */
    setMarkers(markers: UserMarker[]): void;
    /**
     * 清除所有标记
     */
    clearAllMarkers(): void;
    /**
     * 定位到标记
     */
    flyToMarker(markerId: string, zoomLevel?: number): boolean;
    /**
     * 设置图层可见性
     */
    setVisible(visible: boolean): void;
    /**
     * 获取标记点击处理器
     */
    getMarkerClickHandler(): (event: any) => UserMarker | null;
    /**
     * 获取标记数量
     */
    getMarkerCount(): number;
    /**
     * 选择标记
     */
    selectMarker(markerId: string): void;
    /**
     * 获取选中的标记
     */
    getSelectedMarker(): UserMarker | null;
    /**
     * 删除选中的标记
     */
    deleteSelectedMarker(): boolean;
    /**
     * 事件监听
     */
    on(event: string, listener: Function): void;
    /**
     * 移除事件监听
     */
    off(event: string, listener: Function): void;
    /**
     * 触发事件
     */
    private emit;
    /**
     * 获取DrawingManager实例
     */
    getDrawingManager(): DrawingManager;
    /**
     * 销毁适配器
     */
    destroy(): void;
}
/**
 * 创建标记绘制适配器
 */
export declare function createMarkerDrawingAdapter(map: OlMap): MarkerDrawingAdapter;
//# sourceMappingURL=MarkerDrawingAdapter.d.ts.map