import { IMeasureModeObj, CesiumMapType, CesiumMapOptions, CesiumQueryOption, SlopeOptions, LightShadow, OpennessType, PositionType } from './Cesium.types';
import { LayerOption, DrawingMode, DrawOptions } from '../SuperMap.types';
import { OpenLayersMapType } from '../openlayers/OpenLayers.types';
import effect from './effect/index';
/**
 * @function CesiumUtils.setMapConfig
 * @description 设置地图配置
 * @param {object} config - 地图配置
 */
declare const setMapConfig: (config: any) => void;
/**
 * @function CesiumUtils.createMap
 * @description 创建Viewer对象
 * @param {string | HTMLElement} container - 页面容器
 * @param {Cesium.ViewerOptions} options - 地图参数
 * @return  viewer - 三维地图对象
 */
declare const createMap: (options: CesiumMapOptions) => any;
/**
 * @function CesiumUtils.zoomIn
 * @description 放大地图
 * @param {CesiumMapType} viewer - 视图对象
 */
declare const zoomIn: (viewer: CesiumMapType) => void;
/**
 * @function CesiumUtils.zoomIn
 * @description 缩小地图
 * @param {CesiumMapType} viewer - 视图对象
 */
declare const zoomOut: (viewer: CesiumMapType) => void;
/**
 * @function CesiumUtils.moveTo
 * @description 地图平移至目标位置
 * @param {CesiumMapType} viewer - 地图对象
 * @param {[number, number]} lnglat - 目标位置实体
 * @param {object} [options] - 过渡动画参数
 */
declare const moveTo: (viewer: CesiumMapType, lnglat: [number, number]) => void;
/**
 * @function CesiumUtils.addLayer
 * @description 添加地图服务
 * @param {CesiumMapType} viewer - 地图对象
 * @param {LayerOption} option - 图层参数
 */
declare const addLayer: (viewer: CesiumMapType, option: LayerOption | LayerOption[]) => Promise<any>;
/**
 * @function CesiumUtils.removeLayer
 * @description 移除地图服务
 * @param {CesiumMapType} viewer - 地图对象
 * @param {string} option - 服务参数
 */
declare const removeLayer: (viewer: CesiumMapType, option: LayerOption | LayerOption[]) => void;
/**
 * @function CesiumUtils.changeLayerOpacity
 * @description 调整图层透明度
 * @param {CesiumMapType} viewer - 地图对象
 * @param {LayerOption} option - 服务参数
 * @param {number} opacity - 透明度 0~1
 */
declare const changeLayerOpacity: (viewer: CesiumMapType, option: LayerOption | LayerOption[], opacity: number) => void;
/**
 * @function CesiumUtils.queryLayerData
 * @description 查询图层数据
 * @param {CesiumQueryOption} option - 查询参数对象 1、url:图层地址 2、type：查询类型  3、查询参数
 */
declare const queryLayerData: ({ url, type, data }: CesiumQueryOption) => Promise<any>;
/**
 * @function measureHeight
 * @description 测量高度
 * @param {CesiumMapType} viewer - 地图对象
 * @param {IMeasureModeObj} [measureModeObj]
 * @param {isShowLine} [Boolean] -是否显示等值线
 */
declare const measureHeight: (viewer: CesiumMapType, measureModeObj?: IMeasureModeObj) => any;
/**
 * @function startMeasureDistance
 * @description 测量距离
 * @param {CesiumMapType} viewer - 地图对象
 * @param {IMeasureModeObj} [measureModeObj]
 */
declare const startMeasureDistance: (viewer: CesiumMapType, measureModeObj?: IMeasureModeObj) => any;
/**
 * @function startMeasureArea
 * @description 测量面积
 * @param {CesiumMapType} viewer - 地图对象
 * @param {IMeasureModeObj} [measureModeObj]
 */
declare const startMeasureArea: (viewer: CesiumMapType, measureModeObj?: IMeasureModeObj) => any;
/**
 * @function CesiumUtils.clearMeasure
 * @description 清除测量工具
 */
declare const clearMeasure: () => void;
/**
 * @function CesiumUtils.startCoordPick
 * @description 坐标拾取
 * @param {CesiumMapType} viewer - 地图对象
 */
declare const startCoordPick: (viewer: CesiumMapType) => any;
/**
 * @function CesiumUtils.stopCoordPick
 * @description 清除坐标拾取
 * @param {CesiumMapType} viewer - 地图对象
 */
declare const stopCoordPick: (viewer: CesiumMapType) => void;
/**
 * @function CesiumUtils.addMiniMap
 * @description 创建鹰眼图
 * @param {CesiumMapType} viewer - 地图对象
 * @param {string | HTMLElement} container - 鹰眼图容器
 */
declare const addMiniMap: (viewer: CesiumMapType, container?: HTMLElement | String) => void;
/**
 * @function CesiumUtils.removeMiniMap
 * @description 移除鹰眼图
 */
declare const removeMiniMap: () => void;
/**
 * @function CesiumUtils.openContourLine
 * @description 切换等高线
 * @param {CesiumMapType} viewer - 地图对象
 * @param {Cesium.HypsometricSetting} hyp - 分层设色类
 * @param {'Line' | 'Region' | 'Line_Region'} type - 等高线类型
 */
declare const openContourLine: (viewer: CesiumMapType, hyp: Cesium.HypsometricSetting, type: 'Line' | 'Region' | 'Line_Region') => void;
/**
 * @function CesiumUtils.closeContourLine
 * @description 清除等高线
 * @param {CesiumMapType} viewer - 地图对象
 */
declare const closeContourLine: (viewer: CesiumMapType) => void;
/**
 * @function CesiumUtils.addInterVisibilityViewPoint
 * @description 通视分析-添加观察点
 * @param {CesiumMapType} viewer - 地图对象
 */
declare const addInterVisibilityViewPoint: (viewer: CesiumMapType) => void;
/**
 * @function CesiumUtils.addInterVisibilityTargetPoint
 * @description 通视分析-添加目标点
 * @param {CesiumMapType} viewer - 地图对象
 */
declare const addInterVisibilityTargetPoint: (viewer: CesiumMapType) => void;
/**
 * @function CesiumUtils.removeInterVisibility
 * @description 清除通视分析
 * @param {CesiumMapType} viewer - 地图对象
 */
declare const removeInterVisibility: (viewer: CesiumMapType) => void;
declare const openSkyLine: (viewer: CesiumMapType) => void;
/**
 * @function CesiumUtils.closeSkyLine
 * @description 清除天际线分析
 */
declare const closeSkyLine: () => void;
/**
 * @function CesiumUtils.startViewShed
 * @description 可视域分析
 * @param {CesiumMapType} viewer - 地图对象
 */
declare const startViewShed: (viewer: CesiumMapType) => void;
/**
 * @function CesiumUtils.stopViewShed
 * @description 清除可视域分析
 * @param {CesiumMapType} viewer - 地图对象
 */
declare const stopViewShed: (viewer: CesiumMapType) => void;
/**
 * @function CesiumUtils.addOpennessPoint
 * @description 添加开敞度点位
 * @param {CesiumMapType} viewer - 地图对象
 * @param {position} position - 位置信息
 */
declare const addOpennessPoint: (viewer: CesiumMapType, position: PositionType) => void;
/**
 * @function CesiumUtils.startOpenness
 * @description 开敞度分析
 * @param {CesiumMapType} viewer - 地图对象
 * @param {OpennessType} openConfig - 开敞度配置项
 */
declare const startOpenness: (viewer: CesiumMapType, openConfig?: OpennessType) => any;
/**
 * @function CesiumUtils.stopOpenness
 * @description 清除上一次开敞度结果
 * @param {CesiumMapType} viewer - 地图对象
 */
declare const stopOpenness: (viewer: CesiumMapType) => 0 | undefined;
/**
 * @function CesiumUtils.clearOpenness
 * @description 清空开敞度结果
 * @param {CesiumMapType} viewer - 地图对象
 */
declare const clearOpenness: (viewer: CesiumMapType) => void;
/**
 * @function CesiumAPI.extractDynamicEntityByClick
 * @description 点击拾取（查询）地图动态单体
 * @param {CesiumMapType} viewer - 地图对象
 * @param {Array<CesiumQueryOption>} options 查询参数对象数组< 1、url:图层地址 2、type：查询类型  3、查询参数 >
 * @param {Cesium.Color} paintStyle 动态单体绘制样式
 */
declare const extractDynamicEntityByClick: (viewer: CesiumMapType, queryOptions: Array<CesiumQueryOption>, paintStyle?: Cesium.Color) => void;
/**
 * @function CesiumAPI.removeExtractEvent
 * @description 清除点击监听事件和查询结果
 * @param {CesiumMapType} viewer - 地图对象
 */
declare const removeExtractEvent: (viewer: CesiumMapType) => void;
/**
 * @function CesiumAPI.extractEntityByClick
 * @description 点击拾取（查询）地图实体
 * @param {CesiumMapType} viewer - 地图对象
 * @param {Array<CesiumQueryOption>} options 查询参数对象数组< 1、url:图层地址 2、type：查询类型  3、查询参数 >
 * @param {Cesium.Color} paintStyle 单体（多边形）绘制样式
 */
declare const extractEntityByClick: (viewer: CesiumMapType, queryOptions: Array<CesiumQueryOption>, paintStyle?: Cesium.Color) => void;
/**
 * @function CesiumAPI.setLocateCoordinate
 * @description 坐标定位
 * @param {CesiumMapType} viewer - 地图对象
 * @param {number[]} coordinate - 输入坐标数组
 * @param {'Point' | 'Polyline' | 'Polygon'} type - 类型
 */
declare const setLocateCoordinate: (viewer: CesiumMapType, coordinate: number[], type: 'Point' | 'Polyline' | 'Polygon') => void;
/**
 * @function CesiumAPI.resetLocateCoordinate
 * @description 重置坐标定位
 * @param {CesiumMapType} viewer - 地图对象
 */
declare const resetLocateCoordinate: (viewer: CesiumMapType) => void;
/**
 * @function CesiumAPI.startClipBox
 * @description 开始裁剪
 * @param {CesiumMapType} viewer - 地图对象
 */
declare const startClipBox: (viewer: CesiumMapType) => void;
/**
 * @function CesiumAPI.stopClipBox
 * @description 清除裁剪结果
 * @param {CesiumMapType} viewer - 地图对象
 */
declare const stopClipBox: (viewer: CesiumMapType) => void;
/**
 * @function CesiumAPI.startDigTerrain
 * @description 地形开挖
 * @param {CesiumMapType} viewer - 地图对象
 * @param {number} height - 开挖深度
 */
declare const startDigTerrain: (viewer: CesiumMapType, height?: number) => void;
/**
 * @function CesiumAPI.stopDigTerrain
 * @description 清除地形开挖
 * @param {CesiumMapType} viewer - 地图对象
 */
declare const stopDigTerrain: (viewer: CesiumMapType) => void;
/**
 * @function CesiumAPI.startProfile
 * @description 剖面分析
 * @param {CesiumMapType} viewer - 地图对象
 */
declare const startProfile: (viewer: CesiumMapType) => void;
/**
 * @function CesiumAPI.stopProfile
 * @description 清除剖面分析
 */
declare const stopProfile: () => void;
/**
 * @function CesiumAPI.openLightShadow
 * @description 日照分析
 * @param {CesiumMapType} viewer - 地图对象
 * @param {Date} date - 日期对象
 * @param {number} startHour - 起始时间（小时）
 * @param {number} endHour - 结束时间（小时）
 * @param {number} speed - 日照变化速度(每小时)
 */
declare const openLightShadow: (viewer: CesiumMapType, options?: LightShadow) => void;
/**
 * @function CesiumAPI.pauseLightShadow
 * @description 暂停日照分析
 * @param {CesiumMapType} viewer - 地图对象
 */
declare const pauseLightShadow: (viewer: CesiumMapType) => void;
/**
 * @function CesiumAPI.closeLightShadow
 * @description 清除日照分析
 * @param {CesiumMapType} viewer - 地图对象
 */
declare const closeLightShadow: (viewer: CesiumMapType) => void;
/**
 * @function CesiumAPI.startFlood
 * @description 淹没分析
 * @param {CesiumMapType} viewer - 地图对象
 * @param {number} minWaterHeight -最小可见高程
 * @param {number} maxWaterHeight -最大可见高程
 * @param {number} speed - 淹没速度
 * @param {boolean} isLoop -是否循环
 * @param {function} callback - 返回结果
 */
declare const startFlood: (viewer: CesiumMapType, minWaterHeight: number | undefined, maxWaterHeight: number | undefined, speed: number | undefined, isLoop: boolean | undefined, callback: Function) => void;
/**
 * @function CesiumAPI.stopFlood
 * @description 清除淹没分析
 * @param {CesiumMapType} viewer - 地图对象
 */
declare const stopFlood: (viewer: CesiumMapType) => void;
/**
 * @function CesiumAPI.startFillAndCut
 * @description 挖填方分析
 * @param {CesiumMapType} viewer - 地图对象
 * @param {number} deep -开挖高程
 */
declare const startFillAndCut: (viewer: CesiumMapType, deep: number) => void;
/**
 * @function CesiumAPI.getFillAndCutPositions
 * @description 获取填挖方绘制坐标
 * @param {CesiumMapType} viewer - 地图对象
 */
declare const getFillAndCutPositions: () => any;
/**
 * @function CesiumAPI.stopFillAndCut
 * @description 清除填挖方分析
 * @param {CesiumMapType} viewer - 地图对象
 */
declare const stopFillAndCut: (viewer: CesiumMapType) => void;
/**
 * @function CesiumAPI.startSlope
 * @description 坡度坡向分析
 * @param {CesiumMapType} viewer - 地图对象
 * @param {number[]} coordinates - 坐标数组
 * @param {SlopeOptions} options - 分析参数
 * @param {Cesium.ColorTable} options.colorTable - 颜色表
 * @param {string} options.displayMode - 呈现模式
 * @param {number} options.minVisibleValue - 最小可见值 0
 * @param {number} options.maxVisibleValue - 最大可见值 100
 */
declare const startSlope: (viewer: CesiumMapType, coordinates: number[], options?: SlopeOptions) => void;
/**
 * @function CesiumAPI.converSlopeGeometry
 * @description 坡度坡向-图形转换成分析坐标
 * @param {'Polygon'|'Rectangle'|'Circle'} type - 图形类型
 * @param {geometry} geometry - 绘制图形
 */
declare const converSlopeGeometry: (type: 'Polygon' | 'Rectangle' | 'Circle', geometry: any) => any;
/**
 * @function CesiumAPI.stopSlope
 * @description 清除坡度坡向分析
 * @param {CesiumMapType} viewer - 地图对象
 */
declare const stopSlope: (viewer: CesiumMapType) => void;
/**
 * @function CesiumAPI.syntaxView
 * @description 视图同步
 * @param {OpenLayersMapType} map - 二维地图对象
 * @param {CesiumMapType} viewer - 三维地图对象
 */
declare const syntaxView: (map: OpenLayersMapType, viewer: CesiumMapType) => void;
/**
 * @function CesiumAPI.fullExtent
 * @description 全图
 * @param {CesiumMapType} viewer - 三维地图对象
 */
declare const fullExtent: (viewer: CesiumMapType) => void;
/**
 * @function CesiumAPI.draw
 * @description 手动绘制
 * @param {CesiumMapType} viewer - 地图对象
 * @param {DrawingMode} drawingMode - 绘制模式
 * @param {object} options - 绘制配置参数
 * @param {boolean} options.continueDraw - 是否连续绘制 默认：true
 * @param {boolean} options.removeLast - 是否移除上一次绘制的图形 默认：true
 * @param {Function} callback
 */
declare const draw: (viewer: CesiumMapType, drawingMode: DrawingMode, options?: DrawOptions, callback?: any) => any;
/**
 * @function CesiumAPI.draw
 * @description 清除手动绘制
 * @param {CesiumMapType} viewer - 地图对象
 */
declare const clearDraw: (viewer: CesiumMapType) => void;
/**
 * @function CesiumUtils.layerClear
 * @description 图层清理
 * @param {CesiumMapType} viewer - 地图对象
 */
declare const layerClear: (viewer: CesiumMapType) => void;
/**
 * @function CesiumUtils.clear
 * @description 清除分析结果
 * @param {CesiumMapType} viewer - 地图对象
 */
declare const clear: (viewer: CesiumMapType) => void;
/**
 * @function CesiumUtils.changeLayerSwipe
 * @description 卷帘分析
 * @param {CesiumMapType} viewer - 地图对象
 * @param {string[]} leadingLayerIds - 卷帘左侧/上侧图层id集合
 * @param {string[]} trailingLayerIds - 卷帘右侧/下侧图层id集合
 * @param {'horizontal' | 'vertical'} direction - 卷帘方向: horizontal-水平、vertical-垂直
 * @param {number} [swipeRatio] - 卷帘比例数值 默认值:0.5
 */
declare const changeLayerSwipe: (viewer: CesiumMapType, leadingLayerIds: string[], trailingLayerIds: string[], direction: 'horizontal' | 'vertical', swipeRatio?: number) => void;
declare const startPickModel: (viewer: CesiumMapType, callback: Function) => void;
/**
 * @function CesiumUtils.startPickModel
 * @description 停止模型拾取
 * @param {CesiumMapType} viewer - 地图对象
 */
declare const stopPickModel: (viewer: CesiumMapType) => void;
/**
 * @function CesiumUtils.heatingPower
 * @description 热力分析
 * @param {CesiumMapType} viewer - 地图对象
 */
declare const heatingPower: (viewer: CesiumMapType, s3mLayers: any) => void;
/**
 * @function CesiumUtils.stopHeatingPower
 * @description 重置热力图
 * @param {CesiumMapType} viewer - 地图对象
 */
declare const stopHeatingPower: () => void;
export { createMap, setMapConfig, fullExtent, zoomIn, zoomOut, moveTo, addLayer, removeLayer, changeLayerOpacity, queryLayerData, startMeasureDistance, startMeasureArea, clearMeasure, addMiniMap, removeMiniMap, startCoordPick, stopCoordPick, openContourLine, closeContourLine, openSkyLine, closeSkyLine, startViewShed, stopViewShed, addOpennessPoint, startOpenness, stopOpenness, clearOpenness, setLocateCoordinate, resetLocateCoordinate, startClipBox, stopClipBox, startDigTerrain, stopDigTerrain, startProfile, stopProfile, openLightShadow, pauseLightShadow, closeLightShadow, startFlood, stopFlood, startFillAndCut, stopFillAndCut, getFillAndCutPositions, startSlope, converSlopeGeometry, stopSlope, addInterVisibilityViewPoint, addInterVisibilityTargetPoint, removeInterVisibility, extractDynamicEntityByClick, removeExtractEvent, extractEntityByClick, changeLayerSwipe, syntaxView, layerClear, clear, draw, clearDraw, startPickModel, stopPickModel, measureHeight, heatingPower, stopHeatingPower, effect };
