import { Map } from 'ol';

/**
 * 地图操作工具类
 * 提供地图的基本操作功能：放大、缩小、回到初始位置、定位等
 */
export declare class MapOperationTool {
    private map;
    private initialCenter;
    private initialZoom;
    constructor(map: Map, initialCenter?: [number, number], initialZoom?: number);
    /**
     * 放大地图
     * @param step 放大步长，默认为1
     */
    zoomIn(step?: number): void;
    /**
     * 缩小地图
     * @param step 缩小步长，默认为1
     */
    zoomOut(step?: number): void;
    /**
     * 设置地图缩放级别
     * @param zoom 缩放级别
     */
    setZoom(zoom: number): void;
    /**
     * 回到初始位置
     */
    fitToInitialExtent(): void;
    /**
     * 定位到指定坐标
     * @param longitude 经度
     * @param latitude 纬度
     * @param zoom 缩放级别，可选
     * @param duration 动画持续时间，默认1000ms
     */
    locateToCoordinate(longitude: number, latitude: number, zoom?: number, duration?: number): void;
    /**
     * 平移到指定坐标（不改变缩放级别）
     * @param longitude 经度
     * @param latitude 纬度
     * @param duration 动画持续时间，默认1000ms
     */
    panToCoordinate(longitude: number, latitude: number, duration?: number): void;
    /**
     * 获取当前地图中心点坐标（经纬度）
     * @returns [longitude, latitude]
     */
    getCurrentCenter(): [number, number];
    /**
     * 获取当前缩放级别
     */
    getCurrentZoom(): number;
    /**
     * 设置初始中心点和缩放级别
     * @param center 初始中心点坐标 [longitude, latitude]
     * @param zoom 初始缩放级别
     */
    setInitialView(center: [number, number], zoom: number): void;
    /**
     * 获取地图实例
     */
    getMap(): Map;
    /**
     * 更新地图实例
     * @param map 新的地图实例
     */
    updateMap(map: Map): void;
    /**
     * 清除地图上绘制的所有图形
     * 包括矢量图层、标记、绘制图形等
     */
    clearAllGraphics(): void;
    /**
     * 创建地图预览实例
     * @param targetId 目标容器ID
     * @returns 预览地图实例
     */
    createPreviewMap(targetId: string): Map | null;
    /**
     * 计算地图比例尺
     * @param map 地图实例，默认使用当前地图
     * @returns 比例尺文本
     */
    calculateScale(map?: Map): string;
    /**
     * 计算比例尺条代表的实际距离
     * @param map 地图实例
     * @param pixelWidth 比例尺条的像素宽度
     * @returns 格式化后的距离文本
     */
    calculateScaleBarDistance(map: Map, pixelWidth: number): string;
    /**
     * 获取地图当前范围
     * @returns 地图范围 [minX, minY, maxX, maxY]
     */
    getCurrentExtent(): number[] | null;
    /**
     * 设置地图范围
     * @param extent 地图范围 [minX, minY, maxX, maxY]
     * @param duration 动画持续时间，默认1000ms
     */
    fitToExtent(extent: number[], duration?: number): void;
    /**
     * 清理预览地图资源
     * @param previewMap 预览地图实例
     */
    cleanupPreviewMap(previewMap: Map): void;
    /**
     * 获取地图图层信息
     * @returns 图层信息数组
     */
    getLayersInfo(): any[];
    /**
     * 设置图层可见性
     * @param layerId 图层ID
     * @param visible 是否可见
     */
    setLayerVisibility(layerId: string, visible: boolean): void;
    /**
     * 定位到 GeoJSON 数据
     * @param geoJsonData GeoJSON 数据（可以是 Feature、FeatureCollection 或 Geometry）
     * @param options 定位选项
     */
    locateToGeoJSON(geoJsonData: any, options?: {
        padding?: number[];
        maxZoom?: number;
        duration?: number;
        minZoom?: number;
    }): void;
    /**
     * 定位到单个 GeoJSON 要素的中心点
     * @param geoJsonFeature 单个 GeoJSON Feature
     * @param zoom 缩放级别，可选
     * @param duration 动画持续时间，默认1000ms
     */
    locateToGeoJSONCenter(geoJsonFeature: any, zoom?: number, duration?: number): void;
    /**
     * 批量定位多个 GeoJSON 要素
     * @param geoJsonFeatures GeoJSON Feature 数组
     * @param options 定位选项
     */
    locateToMultipleGeoJSON(geoJsonFeatures: any[], options?: {
        padding?: number[];
        maxZoom?: number;
        duration?: number;
        minZoom?: number;
    }): void;
}
export default MapOperationTool;
//# sourceMappingURL=mapOperationTool.d.ts.map