
/**
 * Mars3D三维可视化平台  mars3d
 *
 * 版本信息：v3.4.20
 * 编译日期：2023-01-10 12:55:02
 * 版权所有：Copyright by 火星科技  http://mars3d.cn
 * 使用单位：免费公开版 ，2022-06-01
 */

import * as Cesium from "mars3d-cesium"
export { Cesium }
export { Resource } from "mars3d-cesium"

declare const version: string
declare const update: string
declare const name: string

declare const proj4: any

declare const provider: any


/**
 * 国内偏移坐标系 枚举
 */
declare enum ChinaCRS {
    /**
     * 标准无偏坐标系
     */
    WGS84 = "WGS84",
    /**
     * 国测局(GCJ02)偏移坐标系
     */
    GCJ02 = "GCJ02",
    /**
     * 百度(BD09) 偏移坐标系
     */
    BAIDU = "BD09"
}

/**
 * 裁剪模型类型
 */
declare enum ClipType {
    /**
     * z水平面, 切底部
     */
    Z = 1,
    /**
     * z水平面，切顶部
     */
    ZR = 2,
    /**
     * x垂直面,切西向
     */
    X = 3,
    /**
     * x垂直面,切东向
     */
    XR = 4,
    /**
     * y垂直面, 切南向
     */
    Y = 5,
    /**
     * y垂直面，切北向
     */
    YR = 6
}

/**
 * 控件类型
 */
declare enum ControlType {
    clockAnimate,
    compass,
    distanceLegend,
    locationBar,
    mapSplit,
    mouseDownView,
    overviewMap,
    zoom
}

/**
 * 坐标系 枚举
 */
declare enum CRS {
    /**
     * Web墨卡托投影坐标系
     */
    EPSG3857 = "EPSG:3857",
    /**
     * WGS84地理坐标系
     */
    EPSG4326 = "EPSG:4326",
    /**
     * 中国大地2000 （CGCS2000）地理坐标系
     */
    EPSG4490 = "EPSG:4490",
    /**
     * CGCS2000 Gauss-Kruger Zone 平面投影，3度分带，横坐标前加带号。
     * 范围：EPSG:4513 到 EPSG:4533
     */
    CGCS2000_GK_Zone_3 = "CGCS2000_GK_Zone_3",
    /**
     * CGCS2000 Gauss-Kruger Zone 平面投影，6度分带，横坐标前加带号。
     * 范围：EPSG:4491 到 EPSG:4501
     */
    CGCS2000_GK_Zone_6 = "CGCS2000_GK_Zone_6",
    /**
     * CGCS2000 Gauss-Kruger CM 平面投影，3度分带，横坐标前不加带号。
     * 范围：EPSG:4534 到 EPSG:4554
     */
    CGCS2000_GK_CM_3 = "CGCS2000_GK_CM_3",
    /**
     * CGCS2000 Gauss-Kruger CM 平面投影，6度分带，横坐标前不加带号。
     * 范围：EPSG:4502 到 EPSG:4512
     */
    CGCS2000_GK_CM_6 = "CGCS2000_GK_CM_6"
}

/**
 * 特效类型
 */
declare enum EffectType {
    blackAndWhite,
    bloom,
    brightness,
    depthOfField,
    fog,
    inverted,
    mosaic,
    nightVision,
    outline,
    rain,
    snow,
    snowCover
}

/**
 * 事件类型 枚举（所有事件统一的入口）
 */
declare enum EventType {
    /**
     * 添加对象(本身)
     */
    add = "add",
    /**
     * 移除对象(本身)
     */
    remove = "remove",
    /**
     * 对象中添加了一项内容
     */
    addItem = "addItem",
    /**
     * 对象中移除了一项内容
     */
    removeItem = "removeItem",
    /**
     * 添加矢量数据时[图层上监听时使用]
     */
    addGraphic = "addGraphic",
    /**
     * 移除矢量数据时[图层上监听时使用]
     */
    removeGraphic = "removeGraphic",
    /**
     * 添加图层[map上监听时使用]
     */
    addLayer = "addLayer",
    /**
     * 移除图层[map上监听时使用]
     */
    removeLayer = "removeLayer",
    /**
     * 地图上添加控件
     */
    addControl = "addControl",
    /**
     * 从地图上移除控件
     */
    removeControl = "removeControl",
    /**
     * 更新了控件（比如show变化）
     */
    updateControl = "updateControl",
    /**
     * 地图上添加Effect特效
     */
    addEffect = "addEffect",
    /**
     * 从地图上移除Effect特效
     */
    removeEffect = "removeEffect",
    /**
     * 更新了对象
     */
    update = "update",
    /**
     * 更新了坐标位置
     */
    updatePosition = "updatePosition",
    /**
     * 更新了style对象
     */
    updateStyle = "updateStyle",
    /**
     * 更新了attr对象
     */
    updateAttr = "updateAttr",
    /**
     * 显示了对象
     */
    show = "show",
    /**
     * 隐藏了对象
     */
    hide = "hide",
    /**
     * 开始
     */
    start = "start",
    /**
     * 变化了
     */
    change = "change",
    /**
     * 多个数据异步分析时，完成其中一个时的回调事件
     */
    endItem = "endItem",
    /**
     * 多个数据异步分析时，完成所有的回调事件
     */
    end = "end",
    /**
     * 完成
     */
    stop = "stop",
    /**
     * 地图zoomIn/zoomOut方法缩放事件
     */
    zoom = "zoom",
    /**
     * 完成加载，但未做任何其他处理前
     */
    loadBefore = "loadBefore",
    /**
     * 完成加载，执行所有内部处理后
     */
    load = "load",
    /**
     * 出错了
     */
    error = "error",
    /**
     * 完成加载配置信息
     */
    loadConfig = "loadConfig",
    /**
     * popup弹窗打开后
     */
    popupOpen = "popupOpen",
    /**
     * popup弹窗关闭
     */
    popupClose = "popupClose",
    /**
     * tooltip弹窗打开后
     */
    tooltipOpen = "tooltipOpen",
    /**
     * tooltip弹窗关闭
     */
    tooltipClose = "tooltipClose",
    /**
     * 右键菜单 打开后
     */
    contextMenuOpen = "contextMenuOpen",
    /**
     * 右键菜单 关闭
     */
    contextMenuClose = "contextMenuClose",
    /**
     * 右键菜单 单击某一项后
     */
    contextMenuClick = "contextMenuClick",
    /**
     * highlight高亮后
     */
    highlightOpen = "highlightOpen",
    /**
     * highlight关闭后
     */
    highlightClose = "highlightClose",
    /**
     * 左键单击  鼠标事件
     */
    click = "click",
    /**
     * 左键单击到矢量或模型数据时 鼠标事件
     */
    clickGraphic = "clickGraphic",
    /**
     * 左键单击到wms或arcgis瓦片服务的对应矢量数据时
     */
    clickTileGraphic = "clickTileGraphic",
    /**
     * 左键单击地图空白（未单击到矢量或模型数据）时 鼠标事件
     */
    clickMap = "clickMap",
    /**
     * 左键双击  鼠标事件
     */
    dblClick = "dblClick",
    /**
     * 左键鼠标按下 鼠标事件
     */
    leftDown = "leftDown",
    /**
     * 左键鼠标按下后释放   鼠标事件
     */
    leftUp = "leftUp",
    /**
     * 鼠标移动   鼠标事件
     */
    mouseMove = "mouseMove",
    /**
     * 鼠标移动（拾取目标，并延迟处理） 鼠标事件
     */
    mouseMoveTarget = "mouseMoveTarget",
    /**
     * 鼠标滚轮滚动  鼠标事件
     */
    wheel = "wheel",
    /**
     * 右键单击 鼠标事件
     */
    rightClick = "rightClick",
    /**
     * 右键鼠标按下  鼠标事件
     */
    rightDown = "rightDown",
    /**
     * 右键鼠标按下后释放   鼠标事件
     */
    rightUp = "rightUp",
    /**
     * 中键单击 鼠标事件
     */
    middleClick = "middleClick",
    /**
     * 中键鼠标按下  鼠标事件
     */
    middleDown = "middleDown",
    /**
     * 中键鼠标按下后释放 鼠标事件
     */
    middleUp = "middleUp",
    /**
     * 在触摸屏上两指缩放开始 鼠标事件
     */
    pinchStart = "pinchStart",
    /**
     * 在触摸屏上两指缩放结束  鼠标事件
     */
    pinchEnd = "pinchEnd",
    /**
     * 在触摸屏上两指移动 鼠标事件
     */
    pinchMove = "pinchMove",
    /**
     * 鼠标按下 [左中右3键都触发] 鼠标事件
     */
    mouseDown = "mouseDown",
    /**
     * 鼠标按下后释放 [左中右3键都触发] 鼠标事件
     */
    mouseUp = "mouseUp",
    /**
     * 鼠标移入 鼠标事件
     */
    mouseOver = "mouseOver",
    /**
     * 鼠标移出 鼠标事件
     */
    mouseOut = "mouseOut",
    /**
     * 按键按下 键盘事件
     */
    keydown = "keydown",
    /**
     * 按键按下后释放 键盘事件
     */
    keyup = "keyup",
    /**
     * 开始绘制 标绘事件
     */
    drawStart = "drawStart",
    /**
     * 正在移动鼠标中，绘制过程中鼠标移动了点 标绘事件
     */
    drawMouseMove = "drawMouseMove",
    /**
     * 绘制过程中增加了点 标绘事件
     */
    drawAddPoint = "drawAddPoint",
    /**
     * 绘制过程中删除了最后一个点 标绘事件
     */
    drawRemovePoint = "drawRemovePoint",
    /**
     * 创建完成 标绘事件
     */
    drawCreated = "drawCreated",
    /**
     * 开始编辑 标绘事件
     */
    editStart = "editStart",
    /**
     * 移动鼠标按下左键（LEFT_DOWN）标绘事件
     */
    editMouseDown = "editMouseDown",
    /**
     * 正在移动鼠标中，正在编辑拖拽修改点中（MOUSE_MOVE） 标绘事件
     */
    editMouseMove = "editMouseMove",
    /**
     * 编辑修改了点（LEFT_UP）标绘事件
     */
    editMovePoint = "editMovePoint",
    /**
     * 编辑新增了点 标绘事件
     */
    editAddPoint = "editAddPoint",
    /**
     * 编辑删除了点 标绘事件
     */
    editRemovePoint = "editRemovePoint",
    /**
     * 图上编辑修改了相关style属性 标绘事件
     */
    editStyle = "editStyle",
    /**
     * 停止编辑 标绘事件
     */
    editStop = "editStop",
    /**
     * 标绘事件
     */
    move = "move",
    /**
     * 3dtiles模型，模型瓦片初始化完成
     * 该回调只执行一次
     */
    initialTilesLoaded = "initialTilesLoaded",
    /**
     * 3dtiles模型,当前批次模型加载完成
     * 该回调会执行多次，视角变化后重新加载一次完成后都会回调
     */
    allTilesLoaded = "allTilesLoaded",
    /**
     * 栅格瓦片图层，添加单个瓦片，开始加载瓦片（请求前）
     */
    addTile = "addTile",
    /**
     * 栅格瓦片图层，添加单个瓦片 加载瓦片完成
     */
    addTileSuccess = "addTileSuccess",
    /**
     * 栅格瓦片图层，添加单个瓦片 加载瓦片出错了
     */
    addTileError = "addTileError",
    /**
     * 栅格瓦片图层，移除单个瓦片
     */
    removeTile = "removeTile",
    /**
     * 相机开启移动前 场景事件
     */
    cameraMoveStart = "cameraMoveStart",
    /**
     * 相机移动完成后 场景事件
     */
    cameraMoveEnd = "cameraMoveEnd",
    /**
     * 相机位置完成 场景事件
     */
    cameraChanged = "cameraChanged",
    /**
     * 场景更新前 场景事件
     */
    preUpdate = "preUpdate",
    /**
     * 场景更新后 场景事件
     */
    postUpdate = "postUpdate",
    /**
     * 场景渲染前 场景事件
     */
    preRender = "preRender",
    /**
     * 场景渲染后 场景事件
     */
    postRender = "postRender",
    /**
     * 场景渲染失败（需要刷新页面）
     */
    renderError = "renderError",
    /**
     * 场景模式(2D/3D/哥伦布)变换前 场景事件
     */
    morphStart = "morphStart",
    /**
     * 完成场景模式(2D/3D/哥伦布)变换 场景事件
     */
    morphComplete = "morphComplete",
    /**
     * 时钟跳动 场景事件
     */
    clockTick = "clockTick",
    /**
     * 地形变化  事件
     */
    terrainChange = "terrainChange",
    /**
     * 地形初始化加载layer.json失败 事件
     */
    terrainLoadError = "terrainLoadError",
    /**
     * 地形初始化加载layer.json完成  事件
     */
    terrainLoadSuccess = "terrainLoadSuccess",
    /**
     * 地图中瓦片加载进度变化  事件
     */
    tileLoadProgress = "tileLoadProgress"
}

/**
 * 矢量数据类型
 */
declare enum GraphicType {
    label,
    labelP,
    point,
    pointP,
    billboard,
    divBillboard,
    fontBillboard,
    billboardP,
    model,
    modelP,
    modelC,
    plane,
    planeP,
    box,
    boxP,
    circle,
    circleP,
    ellipse,
    cylinder,
    cylinderP,
    coneTrack,
    coneTrackP,
    ellipsoid,
    ellipsoidP,
    polyline,
    curve,
    polylineP,
    polylineSP,
    polylineC,
    polylineVolume,
    polylineVolumeP,
    path,
    roamLine,
    dynamicRoamLine,
    corridor,
    corridorP,
    wall,
    wallP,
    polygon,
    polygonP,
    polygonC,
    rectangle,
    rectangleP,
    frustum,
    water,
    waterC,
    div,
    divLightPoint,
    divUpLabel,
    divBoderLabel,
    particleSystem,
    video2D,
    video3D,
    flatBillboard,
    lightCone,
    scrollWall,
    diffuseWall,
    dynamicRiver,
    road,
    rectangularSensor,
    pit,
    tetrahedron,
    distanceMeasure,
    distanceSurfaceMeasure,
    sectionMeasure,
    areaMeasure,
    areaSurfaceMeasure,
    volumeMeasure,
    heightMeasure,
    heightTriangleMeasure,
    angleMeasure,
    attackArrow,
    attackArrowPW,
    attackArrowYW,
    doubleArrow,
    fineArrow,
    fineArrowYW,
    straightArrow,
    lune,
    sector,
    regular,
    isosTriangle,
    closeVurve,
    gatheringPlace,
    camberRadar,
    conicSensor,
    rectSensor,
    satelliteSensor,
    satellite
}

/**
 * SDK内部使用的一些图标配置，方便外部覆盖(建议Map构造前覆盖)。
 * 如：默认右键菜单
 */
declare enum Icon {
    /**
     * 删除
     */
    Delete = "fa fa-trash-o",
    /**
     * 查看此处坐标
     */
    Coordinates = "fa fa-info-circle",
    /**
     * 查看当前视角
     */
    CameraInfo = "fa fa-camera-retro",
    /**
     * 视角切换
     */
    Camera = "fa fa-street-view",
    /**
     * 禁止进入地下
     */
    UndergroundNo = "fa fa-ban",
    /**
     * 允许进入地下
     */
    UndergroundYes = "fa fa-sort-amount-desc",
    /**
     * 绕此处环绕飞行
     */
    RotatePointStart = "fa fa-retweet",
    /**
     * 关闭环绕飞行
     */
    RotatePointStop = "fa fa-remove",
    /**
     * 移动到此处
     */
    FlyToPoint = "fa fa-send-o",
    /**
     * 第一视角站到此处
     */
    FirstPerspective = "fa fa-male",
    /**
     * 开启键盘漫游
     */
    KeyboardRoamYes = "fa fa-keyboard-o",
    /**
     * 关闭键盘漫游
     */
    KeyboardRoamNo = "fa fa-keyboard-o",
    /**
     * 跟踪锁定
     */
    TrackedEntityYes = "fa fa-lock",
    /**
     * 取消锁定
     */
    TrackedEntityNo = "fa fa-unlock-alt",
    /**
     * 三维模型
     */
    Tileset = "fa fa-building-o",
    /**
     * 显示模型三角网
     */
    TilesetWireframeYes = "fa fa-connectdevelop",
    /**
     * 关闭模型三角网
     */
    TilesetWireframeNo = "fa fa-connectdevelop",
    /**
     * 显示模型包围盒
     */
    TilesetBoundingVolumeYes = "fa fa-codepen",
    /**
     * 关闭模型包围盒
     */
    TilesetBoundingVolumeNo = "fa fa-codepen",
    /**
     * 地形服务
     */
    Terrain = "fa fa-globe",
    /**
     * 开启地形
     */
    TerrainYes = "fa fa-medium",
    /**
     * 关闭地形
     */
    TerrainNo = "fa fa-medium",
    /**
     * 显示地形三角网
     */
    TerrainWireframeYes = "fa fa-connectdevelop",
    /**
     * 关闭地形三角网
     */
    TerrainWireframeNo = "fa fa-connectdevelop",
    /**
     * 图上量算
     */
    Measure = "fa fa-share-alt",
    /**
     * 距离
     */
    MeasureDistance = "fa fa-minus",
    /**
     * 面积
     */
    MeasureArea = "fa fa-medium",
    /**
     * 高度差
     */
    MeasureHeight = "fa fa-sort-amount-asc",
    /**
     * 角度
     */
    MeasureAngle = "fa fa-road",
    /**
     * 图上标记
     */
    Draw = "fa fa-eyedropper",
    /**
     * 标记点
     */
    DrawPoint = "fa fa-map-marker",
    /**
     * 标记线
     */
    DrawPolyline = "fa fa-reorder",
    /**
     * 标记面
     */
    DrawPolygon = "fa fa-medium",
    /**
     * 标记圆
     */
    DrawCircle = "fa fa-genderless",
    /**
     * 标记矩形
     */
    DrawRectangle = "fa fa-retweet",
    /**
     * 允许编辑
     */
    DrawEditYes = "fa fa-pencil",
    /**
     * 禁止编辑
     */
    DrawEditNo = "fa fa-pencil-square",
    /**
     * 导出GeoJSON
     */
    DrawDownJson = "fa fa-file-text-o",
    /**
     * 特效效果
     */
    Effect = "fa fa-rss",
    /**
     * 开启下雨
     */
    RainEffectYes = "fa fa-tint",
    /**
     * 关闭下雨
     */
    RainEffectNo = "fa fa-tint",
    /**
     * 开启下雪
     */
    SnowEffectYes = "fa fa-yelp",
    SnowEffectNo = "fa fa-yelp",
    /**
     * 开启雾天气
     */
    FogEffectYes = "fa fa-spinner",
    /**
     * 关闭雾天气
     */
    FogEffectNo = "fa fa-spinner",
    /**
     * 开启泛光
     */
    BloomEffectYes = "fa fa-bullseye",
    /**
     * 关闭泛光
     */
    BloomEffectNo = "fa fa-bullseye",
    /**
     * 开启亮度
     */
    BrightnessEffectYes = "fa fa-trello",
    /**
     * 关闭亮度
     */
    BrightnessEffectNo = "fa fa-trello",
    /**
     * 开启夜视
     */
    NightVisionEffectYes = "fa fa-dashboard",
    /**
     * 关闭夜视
     */
    NightVisionEffectNo = "fa fa-dashboard",
    /**
     * 开启黑白
     */
    BlackAndWhiteEffectYes = "fa fa-star-half-full",
    /**
     * 关闭黑白
     */
    BlackAndWhiteEffectNo = "fa fa-star-half-full",
    /**
     * 开启拾取高亮
     */
    OutlineEffectYes = "fa fa-ticket",
    /**
     * 关闭拾取高亮
     */
    OutlineEffectNo = "fa fa-ticket",
    /**
     * 场景设置
     */
    Scene = "fa fa-gear",
    /**
     * 开启深度监测
     */
    DepthTestYes = "fa fa-eye-slash",
    /**
     * 关闭深度监测
     */
    DepthTestNo = "fa fa-eye",
    /**
     * 显示星空背景
     */
    SkyBoxYes = "fa fa-moon-o",
    /**
     * 关闭星空背景
     */
    SkyBoxNo = "fa fa-moon-o",
    /**
     * 开启日照阴影
     */
    ShadowYes = "fa fa-sun-o",
    /**
     * 关闭日照阴影
     */
    ShadowNo = "fa fa-sun-o",
    /**
     * 开启大气渲染
     */
    SkyAtmosphereYes = "fa fa-soundcloud",
    /**
     * 关闭大气渲染
     */
    SkyAtmosphereNo = "fa fa-soundcloud",
    /**
     * 场景出图
     */
    ExpImage = "fa fa-download"
}

/**
 * 多语种文本配置，
 * 值为数组，对应{@link LangType}按照固定顺序排列,如：[中文简体,中文繁體,English]
 * @example
 * mars3d.Lang["_单击开始绘制"][mars3d.LangType.ZH] ="新的中文提示语句";
 */
declare enum Lang {
    "_放大" = "[\"\u653E\u5927\",\"\u653E\u5927\",\"Zoom In\"]",
    "_缩小" = "[\"\u7F29\u5C0F\",\"\u7E2E\u5C0F\",\"Zoom Out\"]",
    "_查看此处坐标" = "[\"\u67E5\u770B\u6B64\u5904\u5750\u6807\",\"\u67E5\u770B\u6B64\u8655\u5750\u6A19\",\"Location info\"]",
    "_位置信息" = "[\"\u4F4D\u7F6E\u4FE1\u606F\",\"\u4F4D\u7F6E\u4FE1\u606F\",\"The location information\"]",
    "_经度" = "[\"\u7ECF\u5EA6\",\"\u7D93\u5EA6\",\"Lon\"]",
    "_纬度" = "[\"\u7EAC\u5EA6\",\"\u7DEF\u5EA6\",\"Lat\"]",
    "_海拔" = "[\"\u9AD8\u7A0B\",\"\u9AD8\u7A0B\",\"Alt\"]",
    "_横坐标" = "[\"\u6A2A\u5750\u6807\",\"\u6A6B\u5750\u6A19\",\"X\"]",
    "_纵坐标" = "[\"\u7EB5\u5750\u6807\",\"\u7E31\u5750\u6A19\",\"Y\"]",
    "_查看当前视角" = "[\"\u67E5\u770B\u5F53\u524D\u89C6\u89D2\",\"\u67E5\u770B\u7576\u524D\u8996\u89D2\",\"Camera info\"]",
    "_当前视角信息" = "[\"\u5F53\u524D\u89C6\u89D2\u4FE1\u606F\",\"\u7576\u524D\u8996\u89D2\u4FE1\u606F\",\"Current Camera Information\"]",
    "_视角切换" = "[\"\u89C6\u89D2\u5207\u6362\",\"\u8996\u89D2\u5207\u63DB\",\"Camera\"]",
    "_禁止进入地下" = "[\"\u7981\u6B62\u8FDB\u5165\u5730\u4E0B\",\"\u7981\u6B62\u9032\u5165\u5730\u4E0B\",\"Do not go underground\"]",
    "_允许进入地下" = "[\"\u5141\u8BB8\u8FDB\u5165\u5730\u4E0B\",\"\u5141\u8A31\u9032\u5165\u5730\u4E0B\",\"Access to the ground\"]",
    "_绕此处环绕飞行" = "[\"\u7ED5\u6B64\u5904\u73AF\u7ED5\u98DE\u884C\",\"\u7E5E\u6B64\u8655\u74B0\u7E5E\u98DB\u884C\",\"Fly around here\"]",
    "_关闭环绕飞行" = "[\"\u5173\u95ED\u73AF\u7ED5\u98DE\u884C\",\"\u95DC\u9589\u74B0\u7E5E\u98DB\u884C\",\"Close off circling\"]",
    "_移动到此处" = "[\"\u79FB\u52A8\u5230\u6B64\u5904\",\"\u79FB\u52D5\u5230\u6B64\u8655\",\"Move it over here\"]",
    "_第一视角站到此处" = "[\"\u7B2C\u4E00\u89C6\u89D2\u7AD9\u5230\u6B64\u5904\",\"\u7B2C\u4E00\u8996\u89D2\u7AD9\u5230\u6B64\u8655\",\"First view is here\"]",
    "_开启键盘漫游" = "[\"\u5F00\u542F\u952E\u76D8\u6F2B\u6E38\",\"\u958B\u5553\u9375\u76E4\u6F2B\u904A\",\"Enable keyboard roaming\"]",
    "_关闭键盘漫游" = "[\"\u5173\u95ED\u952E\u76D8\u6F2B\u6E38\",\"\u95DC\u9589\u9375\u76E4\u6F2B\u904A\",\"Turn off keyboard roaming\"]",
    "_跟踪锁定" = "[\"\u8DDF\u8E2A\u9501\u5B9A\",\"\u8DDF\u8E2A\u9396\u5B9A\",\"TrackedEntity\"]",
    "_取消锁定" = "[\"\u53D6\u6D88\u9501\u5B9A\",\"\u53D6\u6D88\u9396\u5B9A\",\"Unlocked\"]",
    "_三维模型" = "[\"\u4E09\u7EF4\u6A21\u578B\",\"\u4E09\u7DAD\u6A21\u578B\",\"3DTiles\"]",
    "_显示三角网" = "[\"\u663E\u793A\u4E09\u89D2\u7F51\",\"\u986F\u793A\u4E09\u89D2\u7DB2\",\"Display Wireframe\"]",
    "_关闭三角网" = "[\"\u5173\u95ED\u4E09\u89D2\u7F51\",\"\u95DC\u9589\u4E09\u89D2\u7DB2\",\"Close Wireframe\"]",
    "_显示包围盒" = "[\"\u663E\u793A\u5305\u56F4\u76D2\",\"\u986F\u793A\u5305\u570D\u76D2\",\"Display BoundingVolume\"]",
    "_关闭包围盒" = "[\"\u5173\u95ED\u5305\u56F4\u76D2\",\"\u95DC\u9589\u5305\u570D\u76D2\",\"Close BoundingVolume\"]",
    "_地形服务" = "[\"\u5730\u5F62\u670D\u52A1\",\"\u5730\u5F62\u670D\u52D9\",\"Terrain\"]",
    "_开启地形" = "[\"\u5F00\u542F\u5730\u5F62\",\"\u986F\u793A\u5730\u5F62\",\"Open terrain\"]",
    "_关闭地形" = "[\"\u5173\u95ED\u5730\u5F62\",\"\u95DC\u9589\u5730\u5F62\",\"Close terrain\"]",
    "_图上标记" = "[\"\u56FE\u4E0A\u6807\u8BB0\",\"\u5716\u4E0A\u6A19\u8A18\",\"Drawing\"]",
    "_标记点" = "[\"\u6807\u8BB0\u70B9\",\"\u6A19\u8A18\u9EDE\",\"Mark points\"]",
    "_标记线" = "[\"\u6807\u8BB0\u7EBF\",\"\u6A19\u8A18\u7DDA\",\"Tag line\"]",
    "_标记面" = "[\"\u6807\u8BB0\u9762\",\"\u6A19\u8A18\u9762\",\"Mark surface\"]",
    "_标记圆" = "[\"\u6807\u8BB0\u5706\",\"\u6A19\u8A18\u5713\",\"Mark round\"]",
    "_标记矩形" = "[\"\u6807\u8BB0\u77E9\u5F62\",\"\u6A19\u8A18\u77E9\u5F62\",\"Mark rectangular\"]",
    "_允许编辑" = "[\"\u5141\u8BB8\u7F16\u8F91\",\"\u5141\u8A31\u7DE8\u8F2F\",\"Allowed to edit\"]",
    "_禁止编辑" = "[\"\u7981\u6B62\u7F16\u8F91\",\"\u7981\u6B62\u7DE8\u8F2F\",\"Prohibit to edit\"]",
    "_导出GeoJSON" = "[\"\u5BFC\u51FAGeoJSON\",\"\u5C0E\u51FAGeoJSON\",\"Export GeoJSON\"]",
    "_清除所有标记" = "[\"\u6E05\u9664\u6240\u6709\u6807\u8BB0\",\"\u6E05\u9664\u6240\u6709\u6A19\u8A18\",\"Clear\"]",
    "_特效效果" = "[\"\u7279\u6548\u6548\u679C\",\"\u7279\u6548\u6548\u679C\",\"Effects\"]",
    "_开启下雨" = "[\"\u5F00\u542F\u4E0B\u96E8\",\"\u958B\u5553\u4E0B\u96E8\",\"Enable rain\"]",
    "_关闭下雨" = "[\"\u5173\u95ED\u4E0B\u96E8\",\"\u95DC\u9589\u4E0B\u96E8\",\"Close rain\"]",
    "_开启下雪" = "[\"\u5F00\u542F\u4E0B\u96EA\",\"\u958B\u5553\u4E0B\u96EA\",\"Enable snow\"]",
    "_关闭下雪" = "[\"\u5173\u95ED\u4E0B\u96EA\",\"\u95DC\u9589\u4E0B\u96EA\",\"Close snow\"]",
    "_开启雾天气" = "[\"\u5F00\u542F\u96FE\u5929\u6C14\",\"\u958B\u5553\u9727\u5929\u6C23\",\"Enable fog\"]",
    "_关闭雾天气" = "[\"\u5173\u95ED\u96FE\u5929\u6C14\",\"\u95DC\u9589\u9727\u5929\u6C23\",\"Close fog\"]",
    "_开启泛光" = "[\"\u5F00\u542F\u6CDB\u5149\",\"\u958B\u5553\u6CDB\u5149\",\"Enable bloom\"]",
    "_关闭泛光" = "[\"\u5173\u95ED\u6CDB\u5149\",\"\u95DC\u9589\u6CDB\u5149\",\"Close bloom\"]",
    "_开启亮度" = "[\"\u5F00\u542F\u4EAE\u5EA6\",\"\u958B\u5553\u4EAE\u5EA6\",\"Enable brightness\"]",
    "_关闭亮度" = "[\"\u5173\u95ED\u4EAE\u5EA6\",\"\u95DC\u9589\u4EAE\u5EA6\",\"Close brightness\"]",
    "_开启夜视" = "[\"\u5F00\u542F\u591C\u89C6\",\"\u958B\u5553\u591C\u8996\",\"Enable night vision\"]",
    "_关闭夜视" = "[\"\u5173\u95ED\u591C\u89C6\",\"\u95DC\u9589\u591C\u8996\",\"Close night vision\"]",
    "_开启黑白" = "[\"\u5F00\u542F\u9ED1\u767D\",\"\u958B\u5553\u9ED1\u767D\",\"Enable black and white\"]",
    "_关闭黑白" = "[\"\u5173\u95ED\u9ED1\u767D\",\"\u95DC\u9589\u9ED1\u767D\",\"Close black and white\"]",
    "_开启拾取高亮" = "[\"\u5F00\u542F\u62FE\u53D6\u9AD8\u4EAE\",\"\u958B\u5553\u62FE\u53D6\u9AD8\u4EAE\",\"Enable Pick highlighted\"]",
    "_关闭拾取高亮" = "[\"\u5173\u95ED\u62FE\u53D6\u9AD8\u4EAE\",\"\u95DC\u9589\u62FE\u53D6\u9AD8\u4EAE\",\"Close Pick highlighted\"]",
    "_场景设置" = "[\"\u573A\u666F\u8BBE\u7F6E\",\"\u5834\u666F\u8A2D\u7F6E\",\"Scene\"]",
    "_开启深度监测" = "[\"\u5F00\u542F\u6DF1\u5EA6\u76D1\u6D4B\",\"\u958B\u5553\u6DF1\u5EA6\u76E3\u6E2C\",\"Enable depth test against terrain\"]",
    "_关闭深度监测" = "[\"\u5173\u95ED\u6DF1\u5EA6\u76D1\u6D4B\",\"\u95DC\u9589\u6DF1\u5EA6\u76E3\u6E2C\",\"Close depth test against terrain\"]",
    "_显示星空背景" = "[\"\u663E\u793A\u661F\u7A7A\u80CC\u666F\",\"\u986F\u793A\u661F\u7A7A\u80CC\u666F\",\"Enable skyBox\"]",
    "_关闭星空背景" = "[\"\u5173\u95ED\u661F\u7A7A\u80CC\u666F\",\"\u95DC\u9589\u661F\u7A7A\u80CC\u666F\",\"Close skyBox\"]",
    "_开启日照阴影" = "[\"\u5F00\u542F\u65E5\u7167\u9634\u5F71\",\"\u958B\u5553\u65E5\u7167\u9670\u5F71\",\"Enable shadow\"]",
    "_关闭日照阴影" = "[\"\u5173\u95ED\u65E5\u7167\u9634\u5F71\",\"\u95DC\u9589\u65E5\u7167\u9670\u5F71\",\"Close shadow\"]",
    "_开启大气渲染" = "[\"\u5F00\u542F\u5927\u6C14\u6E32\u67D3\",\"\u958B\u5553\u5927\u6C23\u6E32\u67D3\",\"Enable sky atmosphere\"]",
    "_关闭大气渲染" = "[\"\u5173\u95ED\u5927\u6C14\u6E32\u67D3\",\"\u95DC\u9589\u5927\u6C23\u6E32\u67D3\",\"Close sky atmosphere\"]",
    "_场景出图" = "[\"\u573A\u666F\u51FA\u56FE\",\"\u5834\u666F\u51FA\u5716\",\"Export image\"]",
    "_图上量算" = "[\"\u56FE\u4E0A\u91CF\u7B97\",\"\u5716\u4E0A\u91CF\u7B97\",\"Measure\"]",
    "_删除测量" = "[\"\u5220\u9664\u6D4B\u91CF\",\"\u522A\u9664\u6E2C\u91CF\",\"Delete\"]",
    "_角度" = "[\"\u89D2\u5EA6\",\"\u89D2\u5EA6\",\"Angle\"]",
    "_距离" = "[\"\u8DDD\u79BB\",\"\u8DDD\u96E2\",\"Distance\"]",
    "_面积" = "[\"\u9762\u79EF\",\"\u9762\u7A4D\",\"Area\"]",
    "_总长" = "[\"\u603B\u957F\",\"\u7E3D\u9577\",\"Total distance\"]",
    "_起点" = "[\"\u8D77\u70B9\",\"\u8D77\u9EDE\",\"Start\"]",
    "_高度差" = "[\"\u9AD8\u5EA6\u5DEE\",\"\u9AD8\u5EA6\u5DEE\",\"Height difference\"]",
    "_空间距离" = "[\"\u7A7A\u95F4\u8DDD\u79BB\",\"\u7A7A\u9593\u8DDD\u96E2\",\"Space distance\"]",
    "_水平距离" = "[\"\u6C34\u5E73\u8DDD\u79BB\",\"\u6C34\u5E73\u8DDD\u96E2\",\"Horizontal distance\"]",
    "_正在计算体积" = "[\"\u6B63\u5728\u8BA1\u7B97\u4F53\u79EF\",\"\u6B63\u5728\u8A08\u7B97\u9AD4\u7A4D\",\"Calculating volume\"]",
    "_填方体积" = "[\"\u586B\u65B9\u4F53\u79EF\",\"\u586B\u65B9\u9AD4\u7A4D\",\"The volume of fill\"]",
    "_挖方体积" = "[\"\u6316\u65B9\u4F53\u79EF\",\"\u6316\u65B9\u9AD4\u7A4D\",\"Excavation volume\"]",
    "_横切面积" = "[\"\u6A2A\u5207\u9762\u79EF\",\"\u6A6B\u5207\u9762\u7A4D\",\"Crosscutting area\"]",
    "_面上" = "[\"\u9762\u4E0A\",\"\u9762\u4E0A\",\"Up\"]",
    "_面下" = "[\"\u9762\u4E0B\",\"\u9762\u4E0B\",\"Down\"]",
    "_米" = "[\"\u7C73\",\"\u7C73\",\"m\"]",
    "_公里" = "[\"\u516C\u91CC\",\"\u516C\u88CF\",\"km\"]",
    "_万米" = "[\"\u4E07\u7C73\",\"\u4E07\u7C73\",\"myriametre\"]",
    "_海里" = "[\"\u6D77\u91CC\",\"\u6D77\u88CF\",\"mile\"]",
    "_丈" = "[\"\u4E08\",\"\u4E08\",\"zhang\"]",
    "_平方米" = "[\"\u5E73\u65B9\u7C73\",\"\u5E73\u65B9\u7C73\",\"m\u00B2\"]",
    "_平方公里" = "[\"\u5E73\u65B9\u516C\u91CC\",\"\u5E73\u65B9\u516C\u88CF\",\"km\u00B2\"]",
    "_亩" = "[\"\u4EA9\",\"\u755D\",\"mu\"]",
    "_公顷" = "[\"\u516C\u9877\",\"\u516C\u9803\",\"ha\"]",
    "_立方米" = "[\"\u65B9\",\"\u65B9\",\"m\u00B3\"]",
    "_万立方米" = "[\"\u4E07\u65B9\",\"\u4E07\u65B9\",\"wm\u00B3\"]",
    "_单击开始绘制" = "[\"\u5355\u51FB\u5F00\u59CB\u7ED8\u5236\",\"\u55AE\u64CA\u958B\u59CB\u7E6A\u5236\",\"Click to start drawing\"]",
    "_单击完成绘制" = "[\"\u5355\u51FB\u5B8C\u6210\u7ED8\u5236\",\"\u55AE\u64CA\u5B8C\u6210\u7E6A\u5236\",\"Click to finish drawing\"]",
    "_双击完成绘制" = "[\"\u53CC\u51FB\u5B8C\u6210\u7ED8\u5236\",\"\u96D9\u64CA\u5B8C\u6210\u7E6A\u5236\",\"Double click to finish drawing\"]",
    "_单击增加点" = "[\"\u5355\u51FB\u589E\u52A0\u70B9\",\"\u55AE\u64CA\u589E\u52A0\u9EDE\",\"left click add point\"]",
    "_右击删除点" = "[\"\u53F3\u51FB\u5220\u9664\u70B9\",\"\u53F3\u64CA\u522A\u9664\u9EDE\",\"right click delete point\"]",
    "_单击后激活编辑" = "[\"\u5355\u51FB\u540E\u6FC0\u6D3B\u7F16\u8F91\",\"\u55AE\u64CA\u5F8C \u6FC0\u6D3B\u7DE8\u8F2F\",\"Click to activate editing\"]",
    "_右击菜单删除" = "[\"\u53F3\u51FB\u83DC\u5355\u5220\u9664\",\"\u53F3\u64CA\u83DC\u55AE\u522A\u9664\",\"Right click menu to delete\"]",
    "_更多功能请右击" = "[\"\u66F4\u591A\u529F\u80FD\u8BF7\u53F3\u51FB\",\"\u66F4\u591A\u529F\u80FD\u8ACB\u53F3\u64CA\",\"For more functions, right click\"]",
    "_停止编辑" = "[\"\u505C\u6B62\u7F16\u8F91\",\"\u505C\u6B62\u7DE8\u8F2F\",\"Stop editing\"]",
    "_删除该点" = "[\"\u5220\u9664\u8BE5\u70B9\",\"\u522A\u9664\u8A72\u9EDE\",\"Delete that point\"]",
    "_按轴平移" = "[\"\u6309\u8F74\u5E73\u79FB\",\"\u6309\u8EF8\u5E73\u79FB\",\"Translation by axis\"]",
    "_停止按轴平移" = "[\"\u505C\u6B62\u6309\u8F74\u5E73\u79FB\",\"\u505C\u6B62\u6309\u8EF8\u5E73\u79FB\",\"Stop translation along axis\"]",
    "_按轴旋转" = "[\"\u6309\u8F74\u65CB\u8F6C\",\"\u6309\u8EF8\u65CB\u8F49\",\"Rotation on axis\"]",
    "_停止按轴旋转" = "[\"\u505C\u6B62\u6309\u8F74\u65CB\u8F6C\",\"\u505C\u6B62\u6309\u8EF8\u65CB\u8F49\",\"Stop rotation on axis\"]",
    "_调整比例" = "[\"\u8C03\u6574\u6BD4\u4F8B\",\"\u8ABF\u6574\u6BD4\u4F8B\",\"Edit Scale\"]",
    "_停止调整比例" = "[\"\u505C\u6B62\u8C03\u6574\u6BD4\u4F8B\",\"\u505C\u6B62\u8ABF\u6574\u6BD4\u4F8B\",\"Stop edit scale\"]",
    "_释放后完成修改" = "[\"\u91CA\u653E\u540E\u5B8C\u6210\u4FEE\u6539\",\"\u91CB\u653E\u5F8C\u5B8C\u6210\u4FEE\u6539\",\"Complete the modification after release\"]",
    "_该对象不允许编辑" = "[\"\u8BE5\u5BF9\u8C61\u4E0D\u5141\u8BB8\u7F16\u8F91\",\"\u8A72\u5C0D\u8C61\u4E0D\u5141\u8A31\u7DE8\u8F2F\",\"This object does not allow editing\"]",
    "_拖动该点后" = "[\"\u62D6\u52A8\u8BE5\u70B9\u540E\",\"\u62D6\u52D5\u8A72\u9EDE\u5F8C\",\"Drag that point\"]",
    "_拖动对象后" = "[\"\u62D6\u52A8\u5BF9\u8C61\u540E\",\"\u62D6\u52D5\u5C0D\u8C61\u5F8C\",\"Drag that object\"]",
    "_修改位置" = "[\"\u4FEE\u6539\u4F4D\u7F6E\",\"\u4FEE\u6539\u4F4D\u7F6E\",\"Modify the position\"]",
    "_整体平移" = "[\"\u6574\u4F53\u5E73\u79FB\",\"\u6574\u9AD4\u5E73\u79FB\",\"The overall translation\"]",
    "_增加点" = "[\"\u589E\u52A0\u70B9\",\"\u589E\u52A0\u9EDE\",\"Add point\"]",
    "_修改高度" = "[\"\u4FEE\u6539\u9AD8\u5EA6\",\"\u4FEE\u6539\u9AD8\u5EA6\",\"Modify the height\"]",
    "_修改半径" = "[\"\u4FEE\u6539\u534A\u5F84\",\"\u4FEE\u6539\u534A\u5F91\",\"Modify the radius\"]",
    "_修改长度" = "[\"\u4FEE\u6539\u957F\u5EA6(X\u65B9\u5411)\",\"\u4FEE\u6539\u9577\u5EA6(X\u65B9\u5411)\",\"Modify the length(X direction )\"]",
    "_修改宽度" = "[\"\u4FEE\u6539\u5BBD\u5EA6(Y\u65B9\u5411)\",\"\u4FEE\u6539\u5BEC\u5EA6(Y\u65B9\u5411)\",\"Change the width(Y direction)\"]",
    "_修改方向" = "[\"\u4FEE\u6539\u65B9\u5411\",\"\u4FEE\u6539\u65B9\u5411\",\"Change direction\"]",
    "_修改缩放比例" = "[\"\u4FEE\u6539\u7F29\u653E\u6BD4\u4F8B\",\"\u4FEE\u6539\u7E2E\u653E\u6BD4\u4F8B\",\"Modify the Scale\"]",
    "_无法删除不能少于最小点数" = "[\"\u65E0\u6CD5\u5220\u9664\uFF0C\u70B9\u6570\u91CF\u4E0D\u80FD\u5C11\u4E8E\",\"\u7121\u6CD5\u522A\u9664\uFF0C\u9EDE\u6578\u91CF\u4E0D\u80FD\u5C11\u4E8E\",\"Cannot delete, the number of dots cannot be less than\"]",
    "_删除" = "[\"\u5220\u9664\",\"\u522A\u9664\",\"Delete\"]",
    "_加载模型中" = "[\"\u52A0\u8F7D\u6A21\u578B\u4E2D\u2026\",\"\u52A0\u8F7D\u6A21\u578B\u4E2D\u2026\",\"Load Model\u2026\"]"
}

/**
 * 语言类型  枚举
 */
declare enum LangType {
    /**
     * 简体中文
     */
    ZH = 0,
    /**
     * 繁体中文(香港、台湾等地区)
     */
    ZHHK = 1,
    /**
     * English英文  en
     */
    EN = 2
}

/**
 * 图层类型
 */
declare enum LayerType {
    tdt,
    baidu,
    gaode,
    tencent,
    osm,
    google,
    bing,
    mapbox,
    ion,
    image,
    xyz,
    arcgis,
    arcgis_tile,
    arcgis_cache,
    wms,
    wmts,
    tms,
    gee,
    tileinfo,
    grid,
    terrain,
    group,
    graphic,
    graphicGroup,
    geojson,
    busineData,
    lodGraphic,
    wfs,
    arcgis_wfs,
    arcgis_wfs_single,
    tileset或3dtiles,
    czmGeojson,
    kml,
    czml,
    graticule,
    gaodePOI,
    osmBuildings,
    tdt_dm,
    supermap_s3m,
    supermap_img,
    supermap_mvt,
    mapv,
    echarts,
    heat,
    canvasWind,
    wind
}

/**
 * 材质 类型枚举
 * @example
 * //Entity矢量对象
 * let graphic = new mars3d.graphic.PolylineEntity({
 *   positions: [
 *     [117.169646, 31.769171],
 *     [117.194579, 31.806466],
 *   ],
 *   style: {
 *     width: 5,
 *     material: mars3d.MaterialUtil.createMaterialProperty(mars3d.MaterialType.LineFlow, {
 *       color: '#00ff00',
 *       image: 'img/textures/line-pulse.png',
 *       speed: 5,
 *     }),
 *   },
 * })
 * graphicLayer.addGraphic(graphic)
 *
 * //Primitive矢量对象
 * let primitive = new mars3d.graphic.PolylinePrimitive({
 *   positions: [
 *     [117.348938, 31.805369, 7.63],
 *     [117.429496, 31.786715, 8.41],
 *   ],
 *   style: {
 *     width: 5,
 *     material: mars3d.MaterialUtil.createMaterial(mars3d.MaterialType.LineFlow, {
 *       color: '#1a9850',
 *       image: 'img/textures/line-arrow.png',
 *       speed: 10,
 *     }),
 *   },
 * })
 * graphicLayer.addGraphic(primitive)
 */
declare namespace MaterialType {
    /**
     * 通用：纯色颜色 ，也是默认的材质
     * @property [color = Cesium.Color.WHITE] - 颜色
     */
    const Color: string;
    /**
     * 线：虚线(等长度虚线间隔)
     * @property [color = Cesium.Color.WHITE] - 颜色
     * @property [gapColor = Cesium.Color.TRANSPARENT] - 虚线间隔颜色，默认为透明
     * @property [dashLength = 16.0] - 虚线间隔长度，以像素为单位
     * @property [dashPattern = 255.0] - 指定的16位模式
     */
    const PolylineDash: string;
    /**
     * 线：点划线虚线
     * @property [color = Cesium.Color.WHITE] - 颜色
     * @property [gapColor = Cesium.Color.TRANSPARENT] - 虚线间隔颜色，默认为透明
     * @property [dashLength = 16.0] - 虚线间隔长度，以像素为单位
     * @property [dashPattern = 255.0] - 指定的16位模式
     */
    const LineDotDash: string;
    /**
     * 线：衬色线
     * @property [color = Cesium.Color.WHITE] - 主颜色
     * @property [outlineColor = Cesium.Color.BLACK] - 衬色颜色
     * @property [outlineWidth = 1.0] - 衬色宽度，以像素为单位
     */
    const PolylineOutline: string;
    /**
     * 线：箭头
     * @property [color = Cesium.Color.WHITE] - 颜色
     */
    const PolylineArrow: string;
    /**
     * 线：高亮线
     * @property [color = Cesium.Color.WHITE] - 颜色
     * @property [glowPower = 0.25] - 高亮强度,占总线宽的百分比表示。
     * @property [taperPower = 1.0] - 渐变效果强度,占总行长的百分比表示。如果1.0或更高，则不使用锥度效应。
     */
    const PolylineGlow: string;
    /**
     * 线状: 流动图片（适用于线和墙）
     * @property image - 背景图片URL
     * @property [color = new Cesium.Color(1, 0, 0, 1.0)] - 背景图片颜色
     * @property [repeat = new Cesium.Cartesian2(1.0, 1.0)] - 横纵方向重复次数
     * @property [speed = 10] - 速度，值越大越快
     * @property [axisY = false] - 是否Y轴朝上
     * @property [mixt = false] - 默认为color颜色，true时color颜色与图片颜色混合
     * @property [hasImage2 = false] - 是否有2张图片的混合模式
     * @property [image2 = Cesium.Material.DefaultImageId] - 第2张背景图片URL地址
     * @property [color2 = new Cesium.Color(1, 1, 1)] - 第2张背景图片颜色
     */
    const LineFlow: string;
    /**
     * 线状: 流动颜色
     * @property [color = new Cesium.Color(1, 0, 0, 1.0)] - 颜色
     * @property [speed = 2] - 速度，值越大越快
     * @property [percent = 0.04] - 比例
     * @property [alpha = 0.1] - 透明程度 0.0-1.0
     * @property [startTime = 0] - 开始的时间
     */
    const LineFlowColor: string;
    /**
     * 线状: OD线
     * @property [color = new Cesium.Color(1, 0, 0, 1.0)] - 运动对象的颜色
     * @property [bgColor] - 线的背景颜色
     * @property [speed = 20] - 速度，值越大越快
     * @property [startTime = 0] - 开始的时间
     * @property [bidirectional = 0] - 运行形式,可选值：0 正向运动 1 反向运动 2 双向运动
     */
    const ODLine: string;
    /**
     * 线状: 闪烁线
     * @property [color = new Cesium.Color(1.0, 0.0, 0.0, 0.7)] - 线颜色
     * @property [speed = 10] - 速度，值越大越快
     */
    const LineFlicker: string;
    /**
     * 线状: 轨迹线
     * @property [color = new Cesium.Color(1.0, 0.0, 0.0, 0.7)] - 线颜色
     * @property [speed = 5.0] - 速度，值越大越快
     */
    const LineTrail: string;
    /**
     * 线状: 泛光线
     * @property [color = Cesium.Color.ORANGE] - 泛光颜色
     * @property [glow = 1.0] - 泛光强度
     * @property [speed = 5.0] - 速度，值越大越快
     */
    const LineBloom: string;
    /**
     * 线状: 数字流动线
     * @property image - 背景图片URL
     * @property [color = new Cesium.Color(1, 0, 0, 1.0)] - 背景图片颜色
     * @property [speed = 10] - 速度，值越大越快
     * @property [glow = 10.0] - 高亮强度
     * @property [flowGlow = 1.0] - 流动高亮强度
     * @property [segment = 3.0] - 分段数
     */
    const DigitalFlow: string;
    /**
     * 墙体: 走马灯效果
     * @property [image = Cesium.Material.DefaultImageId] - 背景图片URL
     * @property [color = new Cesium.Color(1.0, 0.0, 0.0, 0.7)] - 颜色
     * @property [count = 1] - 数量
     * @property [speed = 5.0] - 速度，值越大越快
     * @property [reverse = false] - 方向往上，false是往下，true是往上
     * @property [bloom = false] - 是否泛光
     * @property [axisY = false] - 是否Y轴朝上
     */
    const WallScroll: string;
    /**
     * 面状：图片
     * @property image - 图片对象或图片地址
     * @property [repeat = new Cesium.Cartesian2(1.0, 1.0)] - 指定图像在每个方向上重复的次数
     * @property [color = Cesium.Color.WHITE] - 应用于图像的颜色，也可以使用白色来控制透明度
     * @property [transparent = false] - 当图像具有透明度时设置为true (例如当png具有透明部分时)
     */
    const Image: string;
    /**
     * 面状：图片2 (没有加载完成前的白色闪烁，但也不支持纯白色的图片)
     * @property image - 图片对象或图片地址
     * @property [opacity = 1.0] - 透明度
     * @property [color = Cesium.Color.WHITE] - 颜色
     * @property [speed = 0] - 不为0时呈现图片滚动效果，数字代表滚动速度
     */
    const Image2: string;
    /**
     * 面状: 文字贴图
     * @property text - 文本内容
     * @property [font_family = "楷体"] - 字体, 可选项：微软雅黑,宋体,楷体,隶书,黑体 等
     * @property [font_size = 30] - 字体大小
     * @property [font_weight = "normal"] - 是否加粗, 可选项：bold (解释：是),normal (解释：否)
     * @property [font_style = "normal"] - 是否斜体, 可选项：italic (解释：是),normal (解释：否)
     * @property [font = '30px normal normal 楷体'] - 上叙4个属性的一次性指定CSS字体的属性
     * @property [color = new Cesium.Color(1.0, 1.0, 0.0, 1.0)] - 文本颜色
     * @property [stroke = true] - 是否描边文本
     * @property [strokeColor = new Cesium.Color(1.0, 1.0, 1.0, 0.8)] - 描边的颜色
     * @property [strokeWidth = 2] - 描边的宽度
     * @property [backgroundColor = new Cesium.Color(1.0, 1.0, 1.0, 0.1)] - 画布的背景色
     * @property [padding = 10] - 要在文本周围添加的填充的像素大小
     * @property [textBaseline = 'top'] - 文本的基线
     */
    const Text: string;
    /**
     * 面状：网格
     * @property [color = Cesium.Color.WHITE] - 网格颜色
     * @property [cellAlpha = 0.1] - 填充透明度
     * @property [lineCount = new Cesium.Cartesian2(8, 8)] - 网格线的数量
     * @property [lineThickness = new Cesium.Cartesian2(1.0, 1.0)] - 网格宽度
     * @property [lineOffset = new Cesium.Cartesian2(0.0, 0.0)] - 偏移量，沿每个轴的起始偏移量
     */
    const Grid: string;
    /**
     * 面状：棋盘
     * @property [lightColor = Cesium.Color.WHITE] - 主色
     * @property [darkColor = Cesium.Color.BLACK] - 衬色，棋盘中另外一个颜色
     * @property [repeat = new Cesium.Cartesian2(2.0, 2.0)] - 数量，在每个方向重复的次数
     */
    const Checkerboard: string;
    /**
     * 面状：条纹
     * @property [evenColor = Cesium.Color.WHITE] - 主色
     * @property [oddColor = Cesium.Color.BLACK] - 衬色，条纹中另外一个颜色
     * @property [repeat = 1] - 数量，条纹重复的次数
     * @property [orientation = Cesium.StripeOrientation.HORIZONTAL] - 条纹方向,横向还是纵向
     * @property [offset = 0] - 起始位置
     */
    const Stripe: string;
    /**
     * 面状： 渐变面
     * @property [color = new Cesium.Color(1.0, 1.0, 0.0, 0.5)] - 颜色
     * @property [alphaPower = 1.5] - 透明度系数
     * @property [diffusePower = 1.6] - 漫射系数
     * @property [center = new Cesium.Cartesian2(0.5, 0.5)] - 渐变位置，默认在中心
     */
    const PolyGradient: string;
    /**
     * 面状： 柏油路面效果
     * @property [color = new Cesium.Color(0.15, 0.15, 0.15, 1.0)] - 沥青的颜色
     * @property [size = 0.02] - 块大小
     * @property [frequency = 0.2] - 粗糙度
     */
    const PolyAsphalt: string;
    /**
     * 面状：混合
     * @property [evenColor = new Cesium.Color(1.0, 1.0, 1.0, 0.5)] - 浅色的颜色
     * @property [oddColor = new Cesium.Color(0.0, 0.0, 1.0, 0.5)] - 深色的颜色
     * @property [frequency = 10.0] - 频率
     */
    const PolyBlob: string;
    /**
     * 面状：碎石面
     * @property [evenColor = new Cesium.Color(0.25, 0.25, 0.25, 0.75)] - 浅色的颜色
     * @property [oddColor = new Cesium.Color(0.75, 0.75, 0.75, 0.75)] - 深色的颜色
     * @property [frequency = 10.0] - 频率
     */
    const PolyFacet: string;
    /**
     * 面状：草地面
     * @property [evenColor = new Cesium.Color(0.25, 0.4, 0.1, 1.0)] - 草地的颜色
     * @property [oddColor = new Cesium.Color(0.1, 0.1, 0.1, 1.0)] - 泥土的颜色
     * @property [frequency = 1.5] - 斑块分布
     */
    const PolyGrass: string;
    /**
     * 面状：木材面
     * @property [evenColor = new Cesium.Color(0.6, 0.3, 0.1, 1.0)] - 浅色的颜色
     * @property [oddColor = new Cesium.Color(0.4, 0.2, 0.07, 1.0)] - 深色的颜色
     * @property [frequency = 3.0] - 环频率
     * @property [noiseScale = new Cesium.Cartesian2(0.7, 0.5)] - 噪波比例
     * @property [grainFrequency = 27.0] - 颗粒的频率
     */
    const PolyWood: string;
    /**
     * 面状: 霓虹灯材质
     * @property [color = new Cesium.Color(2, 1, 0.0, 0.8)] - 颜色
     * @property [repeat = 30] - 圈数量
     * @property [frameRate = 60] - 每秒刷新次数
     */
    const NeonLight: string;
    /**
     * 面状：水面材质
     * @property specularMap - 图片路径，镜面反射纹理材质图片
     * @property [normalMap = Cesium.Material.DefaultImageId] - 图片路径，水正常扰动的法线图材质图片
     * @property [baseWaterColor = new Cesium.Color(0.2, 0.3, 0.6, 1.0)] - 基础颜色
     * @property [blendColor = new Cesium.Color(0.0, 1.0, 0.699, 1.0)] - 混合颜色，从水中混合到非水域时使用的rgba颜色对象
     * @property [frequency = 100] - 波数
     * @property [animationSpeed = 0.01] - 动画速度
     * @property [amplitude = 10] - 水波振幅
     * @property [specularIntensity = 0.5] - 镜面反射强度
     * @property [fadeFactor = 1.0] - 衰减因子
     */
    const Water: string;
    /**
     * 面状：带蓝色光线波纹的水面材质
     * @property specularMap - 图片路径，镜面反射纹理材质图片
     * @property [normalMap = Cesium.Material.DefaultImageId] - 图片路径，水正常扰动的法线图材质图片
     * @property [alpha = 0.2] - 透明度
     */
    const WaterLight: string;
    /**
     * 矩形面： 轮播图
     * @property image - 图片URL
     * @property [color = Cesium.Color.WHITE] - 颜色和透明度
     * @property [speed = 10] - 速度，值越大越快
     * @property [pure = false] - 是否纯色
     */
    const RectSlide: string;
    /**
     * 圆形: 放大扩散线
     * @property [color = new Cesium.Color(1.0, 1.0, 0.0, 1.0)] - 扫描线颜色
     * @property [speed = 10] - 扫描速度，值越大越快
     */
    const ScanLine: string;
    /**
     * 圆形: 扫描半径
     * @property image - 扫描图片URL地址
     * @property [color = new Cesium.Color(1.0, 0.0, 0.0, 1.0)] - 颜色
     */
    const CircleScan: string;
    /**
     * 圆形: 波纹扩散
     * @property [color = new Cesium.Color(1.0, 1.0, 0.0, 1.0)] - 颜色
     * @property [speed = 10] - 速度，值越大越快
     * @property [count = 1] - 圆圈个数
     * @property [gradient = 0.1] - 透明度的幂方（0-1）,0表示无虚化效果，1表示虚化成均匀渐变
     */
    const CircleWave: string;
    /**
     * 圆形: 雷达线 (圆+旋转半径线)
     * @property [color = new Cesium.Color(0.0, 1.0, 1.0, 0.7)] - 颜色
     * @property [speed = 5.0] - 速度，值越大越快
     */
    const RadarLine: string;
    /**
     * 圆形: 波纹雷达扫描
     * @property [color = new Cesium.Color(0.0, 1.0, 1.0, 0.7)] - 颜色
     * @property [speed = 5.0] - 速度，值越大越快
     */
    const RadarWave: string;
    /**
     * 圆锥: 条纹扩散
     * @property [color = new Cesium.Color(2, 1, 0.0, 0.8)] - 颜色
     * @property [repeat = 30] - 圈数量
     * @property [thickness = 0.3] - 圈的宽度比例
     * @property [speed = 10] - 速度，值越大越快
     */
    const CylinderWave: string;
    /**
     * 球体: 电弧球体
     * @property [color = new Cesium.Color(0.0, 1.0, 1.0, 0.7)] - 颜色
     * @property [speed = 5.0] - 速度，值越大越快
     */
    const EllipsoidElectric: string;
    /**
     * 球体: 波纹球体
     * @property [color = new Cesium.Color(0.0, 1.0, 1.0, 0.7)] - 颜色
     * @property [speed = 5.0] - 速度，值越大越快
     */
    const EllipsoidWave: string;
}

/**
 * 相机旋转的类型
 */
declare enum MoveType {
    /**
     * 向屏幕中心靠近
     */
    ENLARGE = 0,
    /**
     * 向屏幕中心远离
     */
    NARROW = 1,
    /**
     * 相机原地左旋转
     */
    LEFT_ROTATE = 2,
    /**
     * 相机原地右旋转
     */
    RIGHT_ROTATE = 3,
    /**
     * 相机原地上旋转
     */
    TOP_ROTATE = 4,
    /**
     * 相机原地下旋转
     */
    BOTTOM_ROTATE = 5
}

/**
 * 状态 枚举
 */
declare enum State {
    /**
     * 初始化
     */
    INITIALIZED = "inited",
    /**
     * 已添加到地图上
     */
    ADDED = "added",
    /**
     * 已移除地图
     */
    REMOVED = "removed",
    /**
     * 已销毁对象
     */
    DESTROY = "destroy"
}

/**
 * 地形类型
 */
declare enum TerrainType {
    /**
     * 无地形
     */
    NONE = "none",
    /**
     * 标准xyz瓦片地形
     */
    XYZ = "xyz",
    /**
     * arcgis地形
     */
    ARCGIS = "arcgis",
    /**
     * ION在线地形(cesium官方服务)
     */
    ION = "ion",
    /**
     * GoogleEarth Enterprise 地形服务
     */
    GEE = "gee",
    /**
     * VR 地形
     */
    VR = "vr"
}

/**
 * SDK中涉及到的所有第3方地图服务的Token令牌key，
 * 【重要提示：为了避免后期失效，请全部重新赋值换成自己的key】
 */
declare namespace Token {
    /**
     * Cesium官方的Ion服务key，
     * 官网： {@link https://cesium.com/ion/signin/}
     */
    const ion: string;
    /**
     * 更新Cesium官方的Ion服务key
     * @param item - token值
     */
    function updateIon(item: string): void;
    /**
     * mapbox地图key，
     * 官网：{@link https://account.mapbox.com}
     */
    const mapbox: string;
    /**
     * 更新mapbox地图key
     * @param item - token值
     */
    function updateMapbox(item: string): void;
    /**
     * 微软Bing地图key，
     * 官网： {@link https://www.bingmapsportal.com/Application}
     */
    const bing: string;
    /**
     * 更新微软Bing地图key
     * @param item - token值
     */
    function updateBing(item: string): void;
    /**
     * 天地图key数组，
     * 官网： {@link https://console.tianditu.gov.cn/api/key}
     */
    const tiandituArr: string[];
    /**
     * 天地图key，
     */
    const tianditu: string;
    /**
     * 更新天地图key
     * @param item - token值
     */
    function updateTianditu(item: string | string[]): void;
    /**
     * 高德key数组，
     * 官网： {@link https://console.amap.com/dev/key/app}
     */
    const gaodeArr: string[];
    /**
     * 高德key，
     */
    const gaode: string;
    /**
     * 更新高德key
     * @param item - token值
     */
    function updateGaode(item: string | string[]): void;
    /**
     * 百度key数组，
     * 官网： {@link http://lbsyun.baidu.com/apiconsole/key#/home}
     */
    const baiduArr: string[];
    /**
     * 百度key，
     */
    const baidu: string;
    /**
     * 更新百度key
     * @param item - token值
     */
    function updateBaidu(item: string | string[]): void;
    /**
     * 更新所有SDK涉及的第3放Token值（如果具体使用类中传入时，已传入值优先）
     * @param token - 集合
     * @param [token.tianditu] - 天地图
     * @param [token.gaode] - 高德
     * @param [token.baidu] - 百度
     * @param [token.ion] - Ion服务
     * @param [token.mapbox] - mapbox地图
     * @param [token.bing] - 微软Bing地图
     */
    function updateAll(token: {
        tianditu?: string | string[];
        gaode?: string | string[];
        baidu?: string | string[];
        ion?: string;
        mapbox?: string;
        bing?: string;
    }): void;
}

/**
 * 控件 基类
 * @param [options] - 参数对象，包括以下：
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.parentContainer] - 控件加入的父容器，默认为map所在的DOM map.container
 * @param [options.insertIndex] - 可以自定义插入到父容器中的index顺序，默认是插入到最后面。
 * @param [options.insertBefore] - 可以自定义插入到指定兄弟容器的前面，与insertIndex二选一。
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的map对象，false时不冒泡事件
 */
declare class BaseControl extends BaseThing {
    constructor(options?: {
        id?: string | number;
        enabled?: boolean;
        parentContainer?: HTMLElement;
        insertIndex?: number;
        insertBefore?: HTMLElement;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 设置DOM容器的显示隐藏
     */
    show: boolean;
    /**
     * 控件类型
     */
    readonly type: string;
    /**
     * 当前控件的DOM对象
     */
    readonly container: HTMLElement;
    /**
     * 父容器DOM对象
     */
    readonly parentContainer: HTMLElement;
    /**
     * 父容器DOM对象的ID
     */
    readonly parentContainerId: string;
    /**
     * 添加到地图上，同 map.addControl
     * @param map - 地图对象
     * @returns 当前对象本身，可以链式调用
     */
    addTo(map: Map): BaseControl;
    /**
     * 从地图上移除，同map.removeControl
     * @param [destroy] - 是否调用destroy释放
     * @returns 无
     */
    remove(destroy?: boolean): void;
    /**
     * 对象添加到地图前创建一些对象的钩子方法，
     * 只会调用一次
     * @returns 无
     */
    _mountedHook(): void;
    /**
     * 对象添加到地图上的创建钩子方法，
     * 每次add时都会调用
     * @returns 无
     */
    _addedHook(): void;
    /**
     * 对象从地图上移除的创建钩子方法，
     * 每次remove时都会调用
     * @returns 无
     */
    _removedHook(): void;
    /**
     * 设置新的css样式信息
     * @param style - css样式
     * @returns 无
     */
    setStyle(style: any): void;
    /**
     * 设置对象的启用和禁用状态。
     */
    enabled: boolean;
    /**
     * 更新图层参数
     * @param options - 与类的构造方法参数相同
     * @returns 当前对象本身，可以链式调用
     */
    setOptions(options: any): BaseThing | BaseControl | any;
}

/**
 * 时钟及其动画的管理控制
 * @param [options] - 参数对象，包括以下：
 * @param [options.format = "yyyy-MM-dd HH:mm:ss"] - 当前时间格式化字符串
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.parentContainer] - 控件加入的父容器，默认为map所在的DOM map.container
 * @param [options.insertIndex] - 可以自定义插入到父容器中的index顺序，默认是插入到最后面。
 * @param [options.insertBefore] - 可以自定义插入到指定兄弟容器的前面，与insertIndex二选一。
 */
declare class ClockAnimate extends BaseControl {
    constructor(options?: {
        format?: string;
        id?: string | number;
        enabled?: boolean;
        parentContainer?: HTMLElement;
        insertIndex?: number;
        insertBefore?: HTMLElement;
    });
}

/**
 * 导航球控件
 * @param [options] - 参数对象，包括以下：
 * @param [options.rotation = true] - 是否启用调整俯仰角（按中间区域往四周拖拽）
 * @param [options.className = 'mars3d-compass'] - 样式名称，可以外部自定义样式。
 * @param [options.top] - css定位top位置, 如 top: '10px'
 * @param [options.bottom] - css定位bottom位置，支持配置'toolbar'自动跟随cesium-viewer-toolbar
 * @param [options.left] - css定位left位置
 * @param [options.right] - css定位right位置
 * @param [options.outerSvg] - 外部圆环区域的SVG图片
 * @param [options.innerSvg] - 中心球区域的SVG图片
 * @param [options.rotationArcSvg] - rotation为true时，按中间区域往四周拖拽时，调整俯仰角的对外部圆环的半弧遮盖SVG图片
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.parentContainer] - 控件加入的父容器，默认为map所在的DOM map.container
 * @param [options.insertIndex] - 可以自定义插入到父容器中的index顺序，默认是插入到最后面。
 * @param [options.insertBefore] - 可以自定义插入到指定兄弟容器的前面，与insertIndex二选一。
 */
declare class Compass extends BaseControl {
    constructor(options?: {
        rotation?: boolean;
        className?: string;
        top?: string;
        bottom?: string;
        left?: string;
        right?: string;
        outerSvg?: string;
        innerSvg?: string;
        rotationArcSvg?: string;
        id?: string | number;
        enabled?: boolean;
        parentContainer?: HTMLElement;
        insertIndex?: number;
        insertBefore?: HTMLElement;
    });
    /**
     * 更新 外部圆环区域的SVG图片
     * @param svg - SVG图片
     * @returns 无
     */
    setOuterSvg(svg: string): void;
    /**
     * 更新 中心球区域的SVG图片
     * @param svg - SVG图片
     * @returns 无
     */
    setInnerSvg(svg: string): void;
    /**
     * 更新 按中间区域往四周拖拽时，调整俯仰角的对外部圆环的半弧遮盖SVG图片，rotation为true时有效
     * @param svg - SVG图片
     * @returns 无
     */
    setRotationSvg(svg: string): void;
    /**
     * 对象添加到地图前创建一些对象的钩子方法，
     * 只会调用一次
     * @returns 无
     */
    _mountedHook(): void;
    /**
     * 对象添加到地图上的创建钩子方法，
     * 每次add时都会调用
     * @returns 无
     */
    _addedHook(): void;
    /**
     * 对象从地图上移除的创建钩子方法，
     * 每次remove时都会调用
     * @returns 无
     */
    _removedHook(): void;
}

declare namespace DistanceLegend {
    /**
     * 当前类支持的{@link EventType}事件类型
     * @example
     * //绑定监听事件
     * distanceLegend.on(mars3d.EventType.change, function (event) {
     *   console.log('比例尺发生变化', event)
     * })
     * @property change - 比例尺发生变化
     */
    type EventType = {
        change: string;
    };
}

/**
 * 比例尺 控件
 * @param [options] - 参数对象，包括以下：
 * @param [options.top] - css定位top位置, 如 top: '10px'
 * @param [options.bottom] - css定位bottom位置
 * @param [options.left] - css定位left位置
 * @param [options.right] - css定位right位置
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.parentContainer] - 控件加入的父容器，默认为map所在的DOM map.container
 * @param [options.insertIndex] - 可以自定义插入到父容器中的index顺序，默认是插入到最后面。
 * @param [options.insertBefore] - 可以自定义插入到指定兄弟容器的前面，与insertIndex二选一。
 */
declare class DistanceLegend extends BaseControl {
    constructor(options?: {
        top?: string;
        bottom?: string;
        left?: string;
        right?: string;
        id?: string | number;
        enabled?: boolean;
        parentContainer?: HTMLElement;
        insertIndex?: number;
        insertBefore?: HTMLElement;
    });
    /**
     * 当前比例尺值（单位：米）
     */
    readonly distance: number;
    /**
     * 对象添加到地图前创建一些对象的钩子方法，
     * 只会调用一次
     * @returns 无
     */
    _mountedHook(): void;
    /**
     * 对象添加到地图上的创建钩子方法，
     * 每次add时都会调用
     * @returns 无
     */
    _addedHook(): void;
    /**
     * 对象从地图上移除的创建钩子方法，
     * 每次remove时都会调用
     * @returns 无
     */
    _removedHook(): void;
}

declare namespace LocationBar {
    /**
     * 当前类支持的{@link EventType}事件类型
     * @example
     * //绑定监听事件
     * thing.on(mars3d.EventType.change, function (event) {
     *   console.log('数据变化了', event)
     * })
     * @property change - 数据变化了
     */
    type EventType = {
        change: string;
    };
}

/**
 * 信息状态栏, 一般在页面下侧区域，包括鼠标经纬度等信息
 * @param [options] - 参数对象，包括以下：
 * @param [options.template] - 展示的内容格式化字符串, 为数组时按多语言顺序定义，如[中文、繁体、英文]
 * 支持以下模版配置：
 * 【鼠标所在位置】 经度:{lng}， 纬度:{lat}， 海拔：{alt}米， 横{crsx}  纵{crsy}
 * 【相机的】 方向角度：{heading}， 俯仰角度：{pitch}， 视高：{cameraHeight}米，
 * 【地图的】 层级：{level}
 * @param [options.latDecimal = LngLatPoint.FormatLength] - 保留的{lat}和{lng}的小数位
 * @param [options.crs] - 按指定坐标系显示坐标值,true时取值CRS.CGCS2000_GK_Zone_3，配置后template可以加模板：【鼠标所在位置对应的crs坐标系】 X或经度值：{crsx}， Y或纬度值：{crsy}
 * @param [options.crsDecimal = 1] - 保留的{crsx}和{crsy}的小数位
 * @param [options.style] - 可以CSS样式，如:
 * @param [options.style.top] - css定位top位置, 如 top: '10px'
 * @param [options.style.bottom] - css定位bottom位置
 * @param [options.style.left] - css定位left位置
 * @param [options.style.right] - css定位right位置
 * @param [options.fps = false] - 是否显示实时FPS帧率
 * @param [options.cacheTime = 50] - 鼠标移动的缓存时间
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.parentContainer] - 控件加入的父容器，默认为map所在的DOM map.container
 * @param [options.insertIndex] - 可以自定义插入到父容器中的index顺序，默认是插入到最后面。
 * @param [options.insertBefore] - 可以自定义插入到指定兄弟容器的前面，与insertIndex二选一。
 */
declare class LocationBar extends BaseControl {
    constructor(options?: {
        template?: string | string[];
        latDecimal?: number;
        crs?: string | CRS | boolean;
        crsDecimal?: number;
        style?: {
            top?: string;
            bottom?: string;
            left?: string;
            right?: string;
        };
        fps?: boolean;
        cacheTime?: number;
        id?: string | number;
        enabled?: boolean;
        parentContainer?: HTMLElement;
        insertIndex?: number;
        insertBefore?: HTMLElement;
    });
    /**
     * 显示的数据
     */
    readonly locationData: any;
}

/**
 * 地图分屏对比 控件，
 * 默认自动读取当前Map配置，也会合并传入的scene、control等参数值
 * @param [options] - 参数对象，包括以下：
 * @param [options.basemaps] - 底图图层配置
 * @param [options.layers] - 可以叠加显示的图层配置
 * @param [options.scene] - 场景参数
 * @param [options.control] - 添加的控件
 * @param [options.effect] - 添加的特效
 * @param [options.mouse] - 鼠标操作相关配置参数
 * @param [options.terrain] - 地形服务配置
 * @param [options.className = "mars3d-container  mars3d-mapCompare"] - 对比地图DIV的样式名称
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.parentContainer] - 控件加入的父容器，默认为map所在的DOM map.container
 * @param [options.insertIndex] - 可以自定义插入到父容器中的index顺序，默认是插入到最后面。
 * @param [options.insertBefore] - 可以自定义插入到指定兄弟容器的前面，与insertIndex二选一。
 */
declare class MapCompare extends BaseControl {
    constructor(options?: {
        basemaps?: Map.basemapOptions[];
        layers?: Map.layerOptions[];
        scene?: Map.sceneOptions;
        control?: Map.controlOptions;
        effect?: Map.effectOptions;
        mouse?: Map.mouseOptions;
        terrain?: Map.terrainOptions;
        className?: string;
        id?: string | number;
        enabled?: boolean;
        parentContainer?: HTMLElement;
        insertIndex?: number;
        insertBefore?: HTMLElement;
    });
    /**
     * 对比的地图对象
     */
    mapEx: Map;
    /**
     * 对象添加到地图前创建一些对象的钩子方法，
     * 只会调用一次
     * @returns 无
     */
    _mountedHook(): void;
    /**
     * 对象添加到地图上的创建钩子方法，
     * 每次add时都会调用
     * @returns 无
     */
    _addedHook(): void;
    /**
     * 对象从地图上移除的创建钩子方法，
     * 每次remove时都会调用
     * @returns 无
     */
    _removedHook(): void;
}

/**
 * 卷帘对比 控件
 * @param [options] - 参数对象，包括以下：
 * @param [options.leftLayer] - 左侧区域瓦片图层
 * @param [options.rightLayer] - 右侧区域瓦片图层
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.parentContainer] - 控件加入的父容器，默认为map所在的DOM map.container
 * @param [options.insertIndex] - 可以自定义插入到父容器中的index顺序，默认是插入到最后面。
 * @param [options.insertBefore] - 可以自定义插入到指定兄弟容器的前面，与insertIndex二选一。
 */
declare class MapSplit extends BaseControl {
    constructor(options?: {
        leftLayer?: BaseTileLayer | BaseTileLayer[] | any;
        rightLayer?: BaseTileLayer | BaseTileLayer[] | any;
        id?: string | number;
        enabled?: boolean;
        parentContainer?: HTMLElement;
        insertIndex?: number;
        insertBefore?: HTMLElement;
    });
    /**
     * 左侧区域瓦片图层
     */
    leftLayer: BaseTileLayer | BaseTileLayer[] | any;
    /**
     * 右侧区域瓦片图层
     */
    rightLayer: BaseTileLayer | BaseTileLayer[] | any;
    /**
     * 对瓦片图层设置卷帘方向
     * @param layer - 图层 或图层构造参数
     * @param [splitDirection] - 图层显示的方向
     * @returns 图层对象
     */
    setLayerSplitDirection(layer: BaseTileLayer | GroupLayer | any, splitDirection?: Cesium.SplitDirection): BaseTileLayer | GroupLayer;
    /**
     * 控件类型
     */
    readonly type: string;
    /**
     * 对象添加到地图前创建一些对象的钩子方法，
     * 只会调用一次
     * @returns 无
     */
    _mountedHook(): void;
    /**
     * 对象添加到地图上的创建钩子方法，
     * 每次add时都会调用
     * @returns 无
     */
    _addedHook(): void;
    /**
     * 对象从地图上移除的创建钩子方法，
     * 每次remove时都会调用
     * @returns 无
     */
    _removedHook(): void;
}

/**
 * 鼠标滚轮缩放美化样式(指示图标)控件
 * @param [options] - 参数对象，包括以下：
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.parentContainer] - 控件加入的父容器，默认为map所在的DOM map.container
 * @param [options.insertIndex] - 可以自定义插入到父容器中的index顺序，默认是插入到最后面。
 * @param [options.insertBefore] - 可以自定义插入到指定兄弟容器的前面，与insertIndex二选一。
 */
declare class MouseDownView extends BaseControl {
    constructor(options?: {
        id?: string | number;
        enabled?: boolean;
        parentContainer?: HTMLElement;
        insertIndex?: number;
        insertBefore?: HTMLElement;
    });
}

/**
 * 鹰眼地图 控件
 * @param [options] - 参数对象，包括以下：
 * @param options.basemap - 瓦片底图图层配置
 * @param [options.layers] - 可以叠加显示的图层配置
 * @param [options.scene] - 鹰眼地图场景参数
 * @param [options.rectangle] - 矩形区域样式信息，不配置时不显示矩形。
 * @param [options.style] - 可以CSS样式，如:
 * @param [options.style.top] - css定位top位置, 如 top: '10px'
 * @param [options.style.bottom] - css定位bottom位置
 * @param [options.style.left] - css定位left位置
 * @param [options.style.right] - css定位right位置
 * @param [options.flyToOptions] - 小地图的定位参数
 * @param [options.flyToOptions.scale = 2] - 缩放比例，可以控制视角比矩形略大一些，这样效果更友好。
 * @param [options.flyToOptions.duration = 0] - 飞行时间（单位：秒）。如果省略，SDK内部会根据飞行距离计算出理想的飞行时间。
 * @param [options.flyToOptions.complete] - 飞行完成后要执行的函数。
 * @param [options.flyToOptions.cancel] - 飞行取消时要执行的函数。
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.parentContainer] - 控件加入的父容器，默认为map所在的DOM map.container
 * @param [options.insertIndex] - 可以自定义插入到父容器中的index顺序，默认是插入到最后面。
 * @param [options.insertBefore] - 可以自定义插入到指定兄弟容器的前面，与insertIndex二选一。
 */
declare class OverviewMap extends BaseControl {
    constructor(options?: {
        basemap: Map.basemapOptions;
        layers?: Map.layerOptions[];
        scene?: Map.sceneOptions;
        rectangle?: RectangleEntity.StyleOptions | any;
        style?: {
            top?: string;
            bottom?: string;
            left?: string;
            right?: string;
        };
        flyToOptions?: {
            scale?: number;
            duration?: number;
            complete?: Cesium.Camera.FlightCompleteCallback;
            cancel?: Cesium.Camera.FlightCancelledCallback;
        };
        id?: string | number;
        enabled?: boolean;
        parentContainer?: HTMLElement;
        insertIndex?: number;
        insertBefore?: HTMLElement;
    });
    /**
     * 鹰眼小地图对象
     */
    smallMap: Map;
    /**
     * 对象添加到地图前创建一些对象的钩子方法，
     * 只会调用一次
     * @returns 无
     */
    _mountedHook(): void;
    /**
     * 对象添加到地图上的创建钩子方法，
     * 每次add时都会调用
     * @returns 无
     */
    _addedHook(): void;
    /**
     * 对象从地图上移除的创建钩子方法，
     * 每次remove时都会调用
     * @returns 无
     */
    _removedHook(): void;
}

/**
 * 时间线 控件
 * @param [options] - 参数对象，包括以下：
 * @param [options.maxSpan = 1] - 刻度放大的最大刻度跨度，单位：秒
 * @param [options.style] - 可以CSS样式，如:
 * @param [options.style.top] - css定位top位置, 如 top: '10px'
 * @param [options.style.bottom = 0] - css定位bottom位置
 * @param [options.style.left = 0] - css定位left位置
 * @param [options.style.right = 0] - css定位right位置
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.parentContainer] - 控件加入的父容器，默认为map所在的DOM map.container
 * @param [options.insertIndex] - 可以自定义插入到父容器中的index顺序，默认是插入到最后面。
 * @param [options.insertBefore] - 可以自定义插入到指定兄弟容器的前面，与insertIndex二选一。
 */
declare class Timeline extends BaseControl {
    constructor(options?: {
        maxSpan?: number;
        style?: {
            top?: string;
            bottom?: string;
            left?: string;
            right?: string;
        };
        id?: string | number;
        enabled?: boolean;
        parentContainer?: HTMLElement;
        insertIndex?: number;
        insertBefore?: HTMLElement;
    });
    /**
     * @param startTime - 开始时间
     * @param stopTime - 结束时间
     */
    zoomTo(startTime: Cesium.JulianDate, stopTime: Cesium.JulianDate): void;
}

declare namespace ToolButton {
    /**
     * 当前类支持的{@link EventType}事件类型
     * @example
     * //绑定监听事件
     * control.on(mars3d.EventType.click, function (event) {
     *   console.log('单击了按钮', event)
     * })
     * @property click - 单击了按钮
     */
    type EventType = {
        click: string;
    };
}

/**
 * 工具栏 单个按钮控件
 * @param [options] - 参数对象，包括以下：
 * @param [options.title = ''] - 按钮标题
 * @param [options.icon] - 按钮图标,可以是：图片url路径、base64字符串、svg字符串、字体图标class名
 * @param [options.click] - 按钮单击后的回调方法
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.parentContainer] - 控件加入的父容器，默认为map所在的DOM map.container
 * @param [options.insertIndex] - 可以自定义插入到父容器中的index顺序，默认是插入到最后面。
 * @param [options.insertBefore] - 可以自定义插入到指定兄弟容器的前面，与insertIndex二选一。
 */
declare class ToolButton extends BaseControl {
    constructor(options?: {
        title?: string;
        icon?: string;
        click?: (...params: any[]) => any;
        id?: string | number;
        enabled?: boolean;
        parentContainer?: HTMLElement;
        insertIndex?: number;
        insertBefore?: HTMLElement;
    });
    /**
     * 父容器DOM对象
     */
    readonly parentContainer: HTMLElement;
}

/**
 * 放大缩小按钮控件
 * @param [options] - 参数对象，包括以下：
 * @param [options.relativeAmount = 2] - 放大缩小的相对量（调整步长）
 * @param [options.zoomOutIcon] - 缩小按钮 图片url路径 或 字体图标class名
 * @param [options.zoomInIcon] - 放大按钮 图片url路径 或 字体图标class名
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.parentContainer] - 控件加入的父容器，默认为map所在的DOM map.container
 * @param [options.insertIndex] - 可以自定义插入到父容器中的index顺序，默认是插入到最后面。
 * @param [options.insertBefore] - 可以自定义插入到指定兄弟容器的前面，与insertIndex二选一。
 */
declare class Zoom extends BaseControl {
    constructor(options?: {
        relativeAmount?: string;
        zoomOutIcon?: string;
        zoomInIcon?: string;
        id?: string | number;
        enabled?: boolean;
        parentContainer?: HTMLElement;
        insertIndex?: number;
        insertBefore?: HTMLElement;
    });
    /**
     * 父容器DOM对象
     */
    readonly parentContainer: HTMLElement;
}

/**
 * 基础类，SDK中几乎所有类的基类，都是继承该基类的。
 * @param [options] - 参数名称
 */
declare class BaseClass {
    constructor(options?: any);
    /**
     * 当前类的构造参数
     */
    readonly options: any;
    /**
     * 设置事件的启用和禁用状态
     */
    enabledEvent: boolean;
    /**
     * 销毁当前对象
     * @param [noDel = false] - false:会自动delete释放所有属性，true：不delete绑定的变量
     * @returns 无
     */
    destroy(noDel?: boolean): void;
    /**
     * 绑定指定类型事件监听器,
     * 支持在监听中调用 event.stopPropagation(); 组织事件冒泡
     * @param types - 事件类型
     * @param fn - 绑定的监听器回调方法
     * @param [context] - 侦听器的上下文(this关键字将指向的对象)。
     * @returns 当前对象本身,可以链式调用
     */
    on(types: EventType | string | EventType[] | string[] | any, fn: (...params: any[]) => any, context?: any): BaseClass;
    /**
     * 解除绑定指定类型事件监听器
     * @param [types] - 事件类型,未传值时解绑所有事件
     * @param [fn] - 绑定的监听器回调方法,未传值时解绑所有指定类型对应事件
     * @param [context] - 侦听器的上下文(this关键字将指向的对象)。
     * @returns 当前对象本身,可以链式调用
     */
    off(types?: EventType | string | EventType[], fn?: (...params: any[]) => any, context?: any): BaseClass;
    /**
     * 触发指定类型的事件。
     * @param type - 事件类型
     * @param [data] - 传输的数据或对象，可在事件回调方法中event对象中获取进行使用
     * @param [propagate] - 将事件传播给父类 (用addEventParent设置)
     * @returns 当前对象本身,可以链式调用
     */
    fire(type: EventType | string, data?: any, propagate?: BaseClass): BaseClass;
    /**
     * 是否有绑定指定的事件
     * @param type - 事件类型
     * @param [propagate] - 是否判断指定的父类 (用addEventParent设置的)
     * @returns 是否存在
     */
    listens(type: EventType | string, propagate?: BaseClass): boolean;
    /**
     * 绑定一次性执行的指定类型事件监听器
     * 与on类似，监听器只会被触发一次，然后被删除。
     * @param types - 事件类型
     * @param fn - 绑定的监听器回调方法
     * @param [context] - 侦听器的上下文(this关键字将指向的对象)。
     * @returns 当前对象本身,可以链式调用
     */
    once(types: EventType | string | EventType[], fn: (...params: any[]) => any, context?: any): BaseClass;
    /**
     * 添加抛出事件到父类，它将接收传播的事件
     * @param obj - 父类对象
     * @returns 当前对象本身,可以链式调用
     */
    addEventParent(obj: any): BaseClass;
    /**
     * 移除抛出事件到父类
     * @param obj - 父类对象
     * @returns 当前对象本身,可以链式调用
     */
    removeEventParent(obj: any): BaseClass;
    /**
     * 是否绑定了抛出事件到指定父类
     * @param obj - 父类对象
     * @returns 当前对象本身,可以链式调用
     */
    hasEventParent(obj: any): BaseClass;
}

/**
 * 转换options参数处理基类
 * @param [options] - 控制参数
 */
declare class BaseOptsConver {
    constructor(options?: any);
    /**
     * 转换为Cesium相关属性值
     * @param style - 样式配置
     * @param [czmVal = {}] - Cesium属性值
     * @returns Cesium属性值
     */
    toCesiumVal(style: any, czmVal?: any): any;
    /**
     * 转换为json简单对象，用于导出
     * @param czmVal - Cesium属性值
     * @param [style = {}] - json简单对象
     * @returns json简单对象
     */
    toJSON(czmVal: any, style?: any): any;
    /**
     * 根据样式配置获取颜色
     * @param style - 样式配置
     * @returns 颜色
     */
    static getColorByStyle(style: any): Cesium.Color;
    /**
     * 根据样式配置获取颜色
     * @param style - 样式配置
     * @returns 颜色
     */
    getColorByStyle(style: any): Cesium.Color;
    /**
     * 根据样式配置获取outline颜色
     * @param style - 样式配置
     * @returns 颜色
     */
    getOutlineColorByStyle(style: any): Cesium.Color;
}

declare namespace BaseThing {
    /**
     * 当前类支持的{@link EventType}事件类型
     * @example
     * //绑定监听事件
     * thing.on(mars3d.EventType.add, function (event) {
     *   console.log('添加了对象', event)
     * })
     * @property add - 添加对象
     * @property remove - 移除对象
     */
    type EventType = {
        add: string;
        remove: string;
    };
}

/**
 * Thing对象(如特效、分析、管理类等) 的基类
 * @param [options] - 参数对象，包括以下：
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的map对象，false时不冒泡事件
 */
declare class BaseThing extends BaseClass {
    constructor(options?: {
        id?: string | number;
        enabled?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 当前对象的状态
     */
    readonly state: State;
    /**
     * 是否已添加到地图
     */
    readonly isAdded: boolean;
    /**
     * 对象的id标识
     */
    readonly id: string | number;
    /**
     * 设置对象的启用和禁用状态。
     */
    enabled: boolean;
    /**
     * 添加到地图上，同 map.addThing
     * @param map - 地图对象
     * @returns 当前对象本身，可以链式调用
     */
    addTo(map: Map): BaseThing;
    /**
     * 从地图上移除，同map.removeThing
     * @param [destroy] - 是否调用destroy释放
     * @returns 无
     */
    remove(destroy?: boolean): void;
    /**
     * 对象添加到地图前创建一些对象的钩子方法，
     * 只会调用一次
     * @returns 无
     */
    _mountedHook(): void;
    /**
     * 对象添加到地图上的创建钩子方法，
     * 每次add时都会调用
     * @returns 无
     */
    _addedHook(): void;
    /**
     * 对象从地图上移除的创建钩子方法，
     * 每次remove时都会调用
     * @returns 无
     */
    _removedHook(): void;
    /**
     * 更新图层参数
     * @param options - 与类的构造方法参数相同
     * @returns 当前对象本身，可以链式调用
     */
    setOptions(options: any): BaseThing | BaseControl | any;
    /**
     * 当前类的构造参数
     */
    readonly options: any;
    /**
     * 销毁当前对象
     * @param [noDel = false] - false:会自动delete释放所有属性，true：不delete绑定的变量
     * @returns 无
     */
    destroy(noDel?: boolean): void;
}

/**
 * 近地天空盒, 在场景周围绘制星星等太空背景。
 * 天空盒子是用真正的赤道平均春分点(TEME)轴定义的。仅在3D中支持。当转换为2D或哥伦布视图时，天空盒会淡出。
 * 天空盒子的大小不能超过{@link Cesium.Scene#maximumCubeMapSize}。
 * @example
 * map.scene.skyBox = new mars3d.GroundSkyBox({
 *   sources : {
 *     positiveX : 'skybox_px.png',
 *     negativeX : 'skybox_nx.png',
 *     positiveY : 'skybox_py.png',
 *     negativeY : 'skybox_ny.png',
 *     positiveZ : 'skybox_pz.png',
 *     negativeZ : 'skybox_nz.png'
 *   }
 * });
 * @param options - 对象，具有以下属性:
 * @param [options.sources] - 天空盒的6个立方体映射面的图片url
 * @param [options.sources.positiveX] - 映射面的图片url
 * @param [options.sources.negativeX] - 映射面的图片url
 * @param [options.sources.positiveY] - 映射面的图片url
 * @param [options.sources.negativeY] - 映射面的图片url
 * @param [options.sources.positiveZ] - 映射面的图片url
 * @param [options.sources.negativeZ] - 映射面的图片url
 * @param [options.show = true] - 是否显示
 */
declare class GroundSkyBox extends Cesium.SkyBox {
    constructor(options: {
        sources?: {
            positiveX?: string;
            negativeX?: string;
            positiveY?: string;
            negativeY?: string;
            positiveZ?: string;
            negativeZ?: string;
        };
        show?: boolean;
    });
}

/**
 * Thing对象(如特效、分析、管理类等)组，可以用于将多个Thing对象组合起来方便控制
 * @param [options] - 参数对象，包括以下：
 * @param [options.things] - 子Thing对象数组
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 */
declare class GroupThing extends BaseThing {
    constructor(options?: {
        things?: any;
        id?: string | number;
        enabled?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 子Thing对象对象数组
     */
    readonly arrThing: BaseThing[];
    /**
     * 是否空组 ，空组目前就Thing对象管理用于Thing对象分组节点（虚拟节点）。
     */
    readonly hasEmptyGroup: boolean;
    /**
     * 是否有子Thing对象
     */
    readonly hasChildThing: boolean;
    /**
     * 子Thing对象的个数
     */
    readonly length: number;
    /**
     * 添加所有子对象到map上
     * @returns 当前对象本身，可以链式调用
     */
    addChildsToMap(): GroupThing;
    /**
     * 将所有子对象从map中移除
     * @returns 当前对象本身，可以链式调用
     */
    removeMapChilds(): GroupThing;
    /**
     * 添加子Thing对象，并绑定关联关系。
     * @param childthing - 子Thing对象对象
     * @returns 当前对象本身，可以链式调用
     */
    addThing(childthing: BaseThing): GroupThing;
    /**
     * 移除子Thing对象，并解除关联关系。
     * @param childthing - 子Thing对象对象
     * @returns 当前对象本身，可以链式调用
     */
    removeThing(childthing: BaseThing): GroupThing;
    /**
     * 遍历每一个子Thing对象并将其作为参数传递给回调函数
     * @param method - 回调方法
     * @param [context] - 侦听器的上下文(this关键字将指向的对象)。
     * @returns 当前对象本身,可以链式调用
     */
    eachThing(method: (...params: any[]) => any, context?: any): GroupThing;
    /**
     * 获取所有内置子Thing对象对象
     * @returns 所有子Thing对象对象
     */
    getThings(): BaseThing[];
    /**
     * 获取地图所有的子Thing对象对象(包括pid和id关联的Thing对象)
     * @returns 所有子Thing对象对象
     */
    getInMapChilds(): BaseThing[];
    /**
     * 根据ID或取Thing对象
     * @param id - Thing对象id或uuid
     * @returns Thing对象对象
     */
    getThingById(id: string | number): BaseThing | any;
    /**
     * 销毁当前对象
     * @param [noDel = false] - false:会自动delete释放所有属性，true：不delete绑定的变量
     * @returns 无
     */
    destroy(noDel?: boolean): void;
}

/**
 * 坐标数组处理类
 */
declare class LngLatArray {
    /**
     * 根据传入的各种对象数据数组，转换返回Cartesian3数组
     * @param value - 坐标位置数组
     * @param [clone] - 是否重新生成拷贝
     * @returns 转换返回的Cartesian3数组
     */
    static toCartesians(value: string[] | any[][] | LngLatPoint[], clone?: boolean): Cesium.Cartesian3[];
    /**
     * 根据传入的各种对象数据数组，转换返回LatLngPoint数组
     * @param value - 坐标位置数组
     * @param [clone] - 是否重新生成拷贝
     * @returns 转换返回的LatLngPoint数组
     */
    static toPoints(value: string[] | any[][] | Cesium.Cartesian3[], clone?: boolean): LngLatPoint[];
    /**
     * 根据传入的各种对象数据数组，转换返回经纬度坐标数组
     * @param value - 坐标位置数组
     * @param [noAlt] - 是否包含高度值
     * @returns 经纬度坐标数组,示例：[ [123.123456,32.654321,198.7], [111.123456,22.654321,50.7] ]
     */
    static toArray(value: string[] | any[][] | Cesium.Cartesian3[], noAlt?: boolean): any[][];
}

/**
 * 坐标点类（含经度、纬度、高度）
 * @param lng - 经度值, -180 至 180
 * @param lat - 纬度值, -90 至 90
 * @param [alt] - 高度（单位：米）
 */
declare class LngLatPoint {
    constructor(lng: number | string, lat: number | string, alt?: number | string);
    /**
     * 经度值, -180 至 180
     */
    lng: number;
    /**
     * 纬度值, -180 至 180
     */
    lat: number;
    /**
     * 高度（单位：米）
     */
    alt: number;
    /**
     * 复制一份对象
     * @returns 无
     */
    clone(): LngLatPoint;
    /**
     * 格式化对象内的经纬度的小数位为6位，高度小数位为1位。
     * @returns 当前对象本身，可以链式调用
     */
    format(): LngLatPoint;
    /**
     * 转换为数组对象
     * @param [noAlt] - 是否包含高度值
     * @returns 数组对象，示例[113.123456,31.123456,30.1]
     */
    toArray(noAlt?: boolean): any[];
    /**
     * 转换为字符串对象
     * @returns 符串，示例 "113.123456,31.123456,30.1"
     */
    toString(): string;
    /**
     * 转换为笛卡尔坐标
     * @param clone - 是否复制
     * @returns 笛卡尔坐标
     */
    toCartesian(clone: boolean): Cesium.Cartesian3;
    /**
     * 转换为 地理坐标(弧度制)
     * @returns 地理坐标(弧度制)
     */
    toCartographic(): Cesium.Cartographic;
    /**
     * 转换为 WebMercator投影平面坐标
     * @returns WebMercator投影平面坐标,示例：[13048882.06,3741659.72]
     */
    toMercator(): number[];
    /**
     * 将此属性与提供的属性进行比较并返回, 如果两者相等返回true，否则为false
     * @param [other] - 比较的对象
     * @returns 两者是同一个对象
     */
    equals(other?: LngLatPoint): boolean;
    /**
     * 坐标是否有效范围内数据
     * @returns 是否有效
     */
    valid(): boolean;
    /**
     * 根据传入的各种对象数据，转换返回LatLngPoint对象
     * @param position - 坐标位置
     * @param [time = Cesium.JulianDate.now()] - Cesium坐标时，getValue传入的时间值
     * @returns 转换返回的LatLngPoint对象
     */
    static parse(position: string | any[] | LngLatPoint | Cesium.Cartesian3 | any, time?: Cesium.JulianDate): LngLatPoint;
    /**
     * 根据数组数据，转换返回LatLngPoint对象
     * 示例：[113.123456,31.123456,30.1]
     * @param arr - 坐标位置
     * @returns 转换返回的LatLngPoint对象
     */
    static fromArray(arr: any[]): LngLatPoint;
    /**
     * 根据传入字符串，转换返回LatLngPoint对象
     * 示例："113.123456,31.123456,30.1"
     * @param str - 坐标位置字符串，逗号分割。
     * @returns 转换返回的LatLngPoint对象
     */
    static fromString(str: string): LngLatPoint;
    /**
     * 根据传入的笛卡尔坐标，转换返回LatLngPoint对象
     * @param cartesian - 坐标位置
     * @param [time = Cesium.JulianDate.now()] - Cesium坐标时，getValue传入的时间值
     * @returns 转换返回的LatLngPoint对象
     */
    static fromCartesian(cartesian: Cesium.Cartesian3 | any, time?: Cesium.JulianDate): LngLatPoint;
    /**
     * 根据传入的地理坐标(弧度制)，转换返回LatLngPoint对象
     * @param cartographic - 地理坐标(弧度制)
     * @returns 转换返回的LatLngPoint对象
     */
    static fromCartographic(cartographic: Cesium.Cartographic): LngLatPoint;
    /**
     * 根据传入的 WebMercator投影平面坐标，转换返回LatLngPoint对象
     * @param arrdata - WebMercator投影平面坐标，示例：[13048882.06,3741659.72]
     * @returns 转换返回的LatLngPoint对象
     */
    static fromMercator(arrdata: number[]): LngLatPoint;
    /**
     * 根据传入的各种对象数据，转换返回Cartesian3对象
     * @param position - 坐标位置
     * @param [time = Cesium.JulianDate.now()] - Cesium坐标时，getValue传入的时间值
     * @returns 转换返回的Cartesian3对象
     */
    static toCartesian(position: string | any[] | LngLatPoint | Cesium.Cartesian3 | any, time?: Cesium.JulianDate): Cesium.Cartesian3;
    /**
     * 根据传入的各种对象数据，转换返回Cartographic对象
     * @param position - 坐标位置
     * @param [time = Cesium.JulianDate.now()] - Cesium坐标时，getValue传入的时间值
     * @returns 转换返回的Cartographic对象
     */
    static toCartographic(position: string | any[] | LngLatPoint | Cesium.Cartesian3 | any, time?: Cesium.JulianDate): Cesium.Cartographic;
    /**
     * 转换返回经纬度坐标数组
     * @param value - 坐标位置数组
     * @param [noAlt] - 是否包含高度值
     * @returns 经纬度坐标数组,示例： [123.123456,32.654321,198.7]
     */
    static toArray(value: string | any[] | Cesium.Cartesian3 | any, noAlt?: boolean): any[][];
    /**
     * 经度纬度的格式化时的长度，默认为6
     */
    static FormatLength: number;
    /**
     * 高度的格式化时的长度，默认为1
     */
    static FormatAltLength: number;
}

/**
 * 局部坐标系 与 世界坐标系 转换控制类
 * @param center - 局部坐标的中心点对应的世界坐标
 * @param [fixedFrameTransform] - 局部坐标系的轴方向
 */
declare class LocalWorldTransform {
    constructor(center: Cesium.Cartesian3, fixedFrameTransform?: Cesium.Transforms.LocalFrameToFixedFrame);
    /**
     * 局部坐标 转换成对应的 世界坐标
     * @param localPoint - 局部坐标
     * @param [result] - 世界坐标
     * @returns 世界坐标
     */
    localToWorld(localPoint: Cesium.Cartesian3, result?: Cesium.Cartesian3): Cesium.Cartesian3;
    /**
     * 世界坐标 转换成对应的 局部坐标
     * @param worldPoint - 世界坐标
     * @param [result] - 局部坐标
     * @returns 局部坐标
     */
    worldToLocal(worldPoint: Cesium.Cartesian3, result?: Cesium.Cartesian3): Cesium.Cartesian3;
}

/**
 * 自定义集合存储管理类
 */
declare class MarsArray {
    /**
     * 获取总数量
     */
    readonly length: number;
    /**
     * 获取集合中的数组列表
     */
    readonly values: any[];
    /**
     * 确定提供的键是否在数组中
     * @param key - 主键
     * @returns 是否在数组中
     */
    contains(key: string | number): boolean;
    /**
     * 将提供的键与提供的值关联起来。如果密钥已经存在, 存在时，它将被新值覆盖。
     * @param key - 主键
     * @param value - 与提供的键相关联的值
     */
    set(key: string | number, value: any): void;
    /**
     * 检索与提供的键关联的值
     * @param key - 主键
     * @returns 关联的值，如果键在集合中不存在，则为未定义。
     */
    get(key: string | number): any;
    /**
     * 根据指定属性获取对象
     * @param attrValue - 属性值
     * @param [attrName = 'id'] - 属性键
     * @param [exObj = 'options'] - 查找的二级对象属性键
     * @returns 关联的值，如果键在集合中不存在，则为未定义。
     */
    getByAttr(attrValue: string | number, attrName?: string, exObj?: string): any;
    /**
     * 根据指定属性获取符合条件对象数组
     * @param attrValue - 属性值
     * @param [attrName = 'id'] - 属性键
     * @param [exObj = 'options'] - 查找的二级对象属性键
     * @returns 数组
     */
    getListByAttr(attrValue: string | number, attrName?: string, exObj?: string): any[];
    /**
     * 从集合中移除键值对
     * @param key - 主键
     * @returns 是否移除
     */
    remove(key: string | number): boolean;
    /**
     * 遍历每一个对象并将其作为参数传递给回调函数
     * @param method - 回调方法
     * @param [context] - 侦听器的上下文(this关键字将指向的对象)。
     */
    forEach(method: (...params: any[]) => any, context?: any): void;
    /**
     * 清空集合
     */
    removeAll(): void;
    /**
     * 销毁对象
     */
    destroy(): void;
}

/**
 * 3个天空盒（可以平滑过度）, 在场景周围绘制星星等太空背景。
 * 天空盒子是用真正的赤道平均春分点(TEME)轴定义的。仅在3D中支持。当转换为2D或哥伦布视图时，天空盒会淡出。
 * 天空盒子的大小不能超过{@link Cesium.Scene#maximumCubeMapSize}。
 * @example
 * map.scene.skyBox = new mars3d.MultipleSkyBox({
 *     sources: {
 *       positiveX: "./img/skybox/1/px.png",
 *       negativeX: "./img/skybox/1/nx.png",
 *       positiveY: "./img/skybox/1/pz.png",
 *       negativeY: "./img/skybox/1/nz.png",
 *       positiveZ: "./img/skybox/1/py.png",
 *       negativeZ: "./img/skybox/1/ny.png",
 *     },
 *     sources2: {
 *       positiveX: "./img/skybox/2/px.png",
 *       negativeX: "./img/skybox/2/nx.png",
 *       positiveY: "./img/skybox/2/pz.png",
 *       negativeY: "./img/skybox/2/nz.png",
 *       positiveZ: "./img/skybox/2/py.png",
 *       negativeZ: "./img/skybox/2/ny.png",
 *     },
 *     sources3: {
 *       positiveX: "./img/skybox/3/px.png",
 *       negativeX: "./img/skybox/3/nx.png",
 *       positiveY: "./img/skybox/3/pz.png",
 *       negativeY: "./img/skybox/3/nz.png",
 *       positiveZ: "./img/skybox/3/py.png",
 *       negativeZ: "./img/skybox/3/ny.png",
 *     },
 *   });
 * @param options - 对象，具有以下属性:
 * @param [options.sources] - 天空盒的6个立方体映射面的图片url
 * @param [options.sources.positiveX] - 映射面的图片url
 * @param [options.sources.negativeX] - 映射面的图片url
 * @param [options.sources.positiveY] - 映射面的图片url
 * @param [options.sources.negativeY] - 映射面的图片url
 * @param [options.sources.positiveZ] - 映射面的图片url
 * @param [options.sources.negativeZ] - 映射面的图片url
 * @param [options.sources2] - 天空盒的6个立方体映射面的图片url
 * @param [options.sources2.positiveX] - 映射面的图片url
 * @param [options.sources2.negativeX] - 映射面的图片url
 * @param [options.sources2.positiveY] - 映射面的图片url
 * @param [options.sources2.negativeY] - 映射面的图片url
 * @param [options.sources2.positiveZ] - 映射面的图片url
 * @param [options.sources2.negativeZ] - 映射面的图片url
 * @param [options.sources3] - 天空盒的6个立方体映射面的图片url
 * @param [options.sources3.positiveX] - 映射面的图片url
 * @param [options.sources3.negativeX] - 映射面的图片url
 * @param [options.sources3.positiveY] - 映射面的图片url
 * @param [options.sources3.negativeY] - 映射面的图片url
 * @param [options.sources3.positiveZ] - 映射面的图片url
 * @param [options.sources3.negativeZ] - 映射面的图片url
 * @param [options.select = 0.0] - 当前选择生效的天空盒，取值范围：0.0-2.0 , 当为 0 时显示sources、为 1 时显示sources2、为 2 时显示sources3，中间值过渡
 * @param [options.show = true] - 是否显示
 */
declare class MultipleSkyBox extends Cesium.SkyBox {
    constructor(options: {
        sources?: {
            positiveX?: string;
            negativeX?: string;
            positiveY?: string;
            negativeY?: string;
            positiveZ?: string;
            negativeZ?: string;
        };
        sources2?: {
            positiveX?: string;
            negativeX?: string;
            positiveY?: string;
            negativeY?: string;
            positiveZ?: string;
            negativeZ?: string;
        };
        sources3?: {
            positiveX?: string;
            negativeX?: string;
            positiveY?: string;
            negativeY?: string;
            positiveZ?: string;
            negativeZ?: string;
        };
        select?: number;
        show?: boolean;
    });
    /**
     * 当前选择生效的天空盒，取值范围：0.0-2.0, 当为 0 时显示sources、为 1 时显示sources2、为 2 时显示sources3，中间值过渡
     */
    select: number;
}

/**
 * 特效 基类
 * @param [options] - 参数对象，包括以下：
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 */
declare class BaseEffect extends BaseThing {
    constructor(options?: {
        id?: string | number;
        enabled?: boolean;
    });
    /**
     * 特效类型
     */
    readonly type: string;
    /**
     * 特效对象
     */
    readonly target: Cesium.PostProcessStage;
    /**
     * 特效对象的uniforms
     * 一个对象，它的属性被用来设置片段着色器shader。
     * <p>
     * 对象属性值可以是常量或函数。这个函数将在每一帧后处理阶段执行之前被调用。
     * </p>
     * <p>
     *  常量值也可以是图像的URI、数据URI，或者可以用作纹理的HTML元素，如HTMLImageElement或HTMLCanvasElement。
     * </p>
     * <p>
     * 如果这个后处理阶段是{@link Cesium.PostProcessStageComposite}中不串行执行的部分，那么常量值也可以是复合程序中另一个阶段的名称。这将设置统一的输出纹理与该名称的舞台。
     * </p>
     */
    readonly uniforms: any;
    /**
     * 添加到地图上，同 map.addEffect
     * @param map - 地图对象
     * @returns 当前对象本身，可以链式调用
     */
    addTo(map: Map): BaseEffect;
    /**
     * 从地图上移除，同map.removeEffect
     * @param [destroy] - 是否调用destroy释放
     * @returns 无
     */
    remove(destroy?: boolean): void;
    /**
     * 触发指定类型的事件。
     * @param type - 事件类型
     * @param [data] - 传输的数据或对象，可在事件回调方法中event对象中获取进行使用
     * @param [propagate] - 将事件传播给父类 (用addEventParent设置)
     * @returns 当前对象本身,可以链式调用
     */
    fire(type: EventType | string, data?: any, propagate?: BaseClass): BaseClass;
}

/**
 * 黑白效果
 * @param [options] - 参数对象，包括以下：
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.gradations = 4.0] - 渐变
 */
declare class BlackAndWhiteEffect extends BaseEffect {
    constructor(options?: {
        enabled?: boolean;
        gradations?: number;
    });
    /**
     * 渐变
     */
    gradations: number;
}

/**
 * 泛光效果, 使明亮的区域更亮，黑暗的区域更暗。
 * @param [options] - 参数对象，包括以下：
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.contrast = 128] - 对比度,取值范围[-255.0,255.0]
 * @param [options.brightness = -0.3] - 亮度, 将输入纹理的RGB值转换为色相、饱和度和亮度(HSB)，然后将该值添加到亮度中。
 * @param [options.delta = 1.0] - 增量权值
 * @param [options.sigma = 3.78] - 滤波权值，delta和sigma用于计算高斯滤波器的权值。方程是 <code>exp((-0.5 * delta * delta) / (sigma * sigma))</code>。
 * @param [options.stepSize = 5.0] - 步长,是下一个texel的距离
 */
declare class BloomEffect extends BaseEffect {
    constructor(options?: {
        enabled?: boolean;
        contrast?: number;
        brightness?: number;
        delta?: number;
        sigma?: number;
        stepSize?: number;
    });
    /**
     * 对比度,取值范围[-255.0,255.0]
     */
    contrast: number;
    /**
     * 亮度, 将输入纹理的RGB值转换为色相、饱和度和亮度(HSB)，然后将该值添加到亮度中
     */
    brightness: number;
    /**
     * 增量.方程是 <code>exp((-0.5 * delta * delta) / (sigma * sigma))</code>。
     */
    delta: number;
    /**
     * delta和sigma用于计算高斯滤波器的权值。方程是 <code>exp((-0.5 * delta * delta) / (sigma * sigma))</code>。
     */
    sigma: number;
    /**
     * 步长,是下一个texel的距离
     */
    stepSize: number;
}

/**
 * 选中对象的 泛光效果。
 * @param [options] - 参数对象
 * @param [options.eventType = "click"] - 高亮触发的事件类型，默认为单击。可选值：单击、鼠标移入,false时不内部控制
 * @param [options.color = Cesium.Color.WHITE] - 泛光颜色
 * @param [options.contrast = 128] - 对比度,取值范围[-255.0,255.0]
 * @param [options.brightness = -0.3] - 亮度, 将输入纹理的RGB值转换为色相、饱和度和亮度(HSB)，然后将该值添加到亮度中。
 * @param [options.blurSamples = 32] - 模糊样本
 * @param [options.delta = 1.0] - 增量
 * @param [options.sigma = 3.78] - delta和sigma用于计算高斯滤波器的权值。方程是 <code>exp((-0.5 * delta * delta) / (sigma * sigma))</code>。
 * @param [options.stepSize = 5.0] - 步长,是下一个texel的距离
 * @param [options.ratio = 2.0] - 亮度增强比例
 * @param [options.threshold = 0.0] - 亮度阈值
 * @param [options.smoothWidth = 0.01] - 亮度光滑的宽度
 * @param [options.objectsToExclude] - 排除不拾取的对象,支持TilesetLayer或Graphic对象
 * @param [options.enabled = true] - 对象的启用状态
 */
declare class BloomTargetEffect extends BaseEffect {
    constructor(options?: {
        eventType?: EventType | boolean;
        color?: Cesium.Color;
        contrast?: number;
        brightness?: number;
        blurSamples?: number;
        delta?: number;
        sigma?: number;
        stepSize?: number;
        ratio?: number;
        threshold?: number;
        smoothWidth?: number;
        objectsToExclude?: any[];
        enabled?: boolean;
    });
    /**
     * 发光颜色
     */
    color: Cesium.Color;
    /**
     * 高亮触发的事件类型，默认为单击。
     */
    eventType: EventType | string;
    /**
     * 选中对象
     */
    selected: any | any | undefined;
}

/**
 * 高亮特效
 * @param [options] - 参数对象，包括以下：
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.brightness = 2.0] - 亮度值
 */
declare class BrightnessEffect extends BaseEffect {
    constructor(options?: {
        enabled?: boolean;
        brightness?: number;
    });
    /**
     * 亮度, 将输入纹理的RGB值转换为色相、饱和度和亮度(HSB)，然后将该值添加到亮度中
     */
    brightness: number;
}

/**
 * 景深
 * @param [options] - 参数对象，包括以下：
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.focalDistance = 87] - 焦距，是以米为单位的距离来设定相机的焦距。
 * @param [options.delta = 1.0] - 增量
 * @param [options.sigma = 3.78] - delta和sigma用于计算高斯滤波器的权值。方程是 <code>exp((-0.5 * delta * delta) / (sigma * sigma))</code>。
 * @param [options.stepSize = 5.0] - 步长,是下一个texel的距离
 */
declare class DepthOfFieldEffect extends BaseEffect {
    constructor(options?: {
        enabled?: boolean;
        focalDistance?: number;
        delta?: number;
        sigma?: number;
        stepSize?: number;
    });
    /**
     * 焦距，是以米为单位的距离来设定相机的焦距。
     */
    focalDistance: number;
    /**
     * 增量.方程是 <code>exp((-0.5 * delta * delta) / (sigma * sigma))</code>。
     */
    delta: number;
    /**
     * delta和sigma用于计算高斯滤波器的权值。方程是 <code>exp((-0.5 * delta * delta) / (sigma * sigma))</code>。
     */
    sigma: number;
    /**
     * 步长,是下一个texel的距离
     */
    stepSize: number;
}

/**
 * 雾场景效果
 * @param [options] - 参数对象，包括以下：
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.fogByDistance = new Cesium.Cartesian4(10, 0.0, 1000, 0.9)] - 雾强度
 * @param [options.fogByDistance_near] - 最近距离，可以与fogByDistance二选一
 * @param [options.fogByDistance_nearValue] - 最近强度，可以与fogByDistance二选一
 * @param [options.fogByDistance_far] - 最远距离，可以与fogByDistance二选一
 * @param [options.fogByDistance_farValue] - 最远强度，可以与fogByDistance二选一
 * @param [options.color = Cesium.Color.WHITE] - 雾颜色
 * @param [options.maxHeight = 9000] - 最大高度，限定超出该高度不显示雾场景效果
 */
declare class FogEffect extends BaseEffect {
    constructor(options?: {
        enabled?: boolean;
        fogByDistance?: Cesium.Cartesian4;
        fogByDistance_near?: number;
        fogByDistance_nearValue?: number;
        fogByDistance_far?: number;
        fogByDistance_farValue?: number;
        color?: Cesium.Color;
        maxHeight?: number;
    });
    /**
     * 雾强度
     */
    fogByDistance: Cesium.Cartesian4;
    /**
     * 雾颜色
     */
    color: Cesium.Color;
    /**
     * 最高限定高度，超出该高度不显示雾场景效果
     */
    maxHeight: number;
}

/**
 * 倒影效果
 * @param [options] - 参数对象，包括以下：
 * @param [options.enabled = true] - 对象的启用状态
 */
declare class InvertedEffect extends BaseEffect {
    constructor(options?: {
        enabled?: boolean;
    });
}

/**
 * 马赛克效果
 * @param [options] - 参数对象，包括以下：
 * @param [options.enabled = true] - 对象的启用状态
 */
declare class MosaicEffect extends BaseEffect {
    constructor(options?: {
        enabled?: boolean;
    });
}

/**
 * 夜视效果
 * @param [options] - 参数对象，包括以下：
 * @param [options.enabled = true] - 对象的启用状态
 */
declare class NightVisionEffect extends BaseEffect {
    constructor(options?: {
        enabled?: boolean;
    });
}

declare namespace OutlineEffect {
    /**
     * 对象轮廓描边效果 支持的参数信息
     * @property [width = 6] - 线宽，单位：像素px
     * @property [color = Cesium.Color.WHITE] - 轮廓线 颜色
     * @property [colorHidden = color] - 被遮挡的轮廓线 颜色
     * @property [showPlane = false] - 是否显示边缘同一个平面（按thresholdAngle属性定义）
     * @property [planeAngle = 10] - 如果两个三角面的法线间夹角小于该值 则标记为同一个平面。该值的单位：角度
     * @property [glow = false] - 是否显示发光
     * @property [glowPower = 1] - 发光强度
     * @property [glowStrength = 3] - 发光的增量
     * @property [onlySelected = false] - 只显示选中构件
     */
    type Options = {
        width?: number;
        color?: string | Cesium.Color;
        colorHidden?: string | Cesium.Color;
        showPlane?: boolean;
        planeAngle?: number;
        glow?: boolean;
        glowPower?: number;
        glowStrength?: number;
        onlySelected?: boolean;
    };
}

/**
 * 对象轮廓描边效果
 * @param [options] - 参数对象
 * @param [options.eventType = "click"] - 高亮触发的事件类型，默认为单击。可选值：单击、鼠标移入,false时不内部控制
 * @param [options.enabled = true] - 对象的启用状态
 */
declare class OutlineEffect extends BaseEffect {
    constructor(options?: {
        eventType?: EventType | boolean;
        enabled?: boolean;
    });
    /**
     * 选中对象
     */
    selected: any | any | undefined;
    /**
     * 轮廓线 颜色
     */
    color: string | Cesium.Color;
    /**
     * 被遮挡的轮廓线 颜色
     */
    colorHidden: string | Cesium.Color;
    /**
     * 如果两个三角面的法线间夹角小于该值 则标记为同一个平面。该值的单位：角度
     */
    planeAngle: number;
    /**
     * 重新赋值参数，同构造方法参数一致。
     * @param options - 参数,与类的构造方法参数相同
     * @returns 当前对象本身，可以链式调用
     */
    setOptions(options: any): OutlineEffect;
    /**
     * 高亮触发的事件类型，默认为单击。
     */
    eventType: EventType | string;
    /**
     * 轮廓线 宽度，单位：像素px
     */
    width: number;
    /**
     * 是否显示边缘同一个平面（按thresholdAngle属性定义）
     */
    showPlane: boolean;
    /**
     * 是否显示发光
     */
    glow: boolean;
    /**
     * 发光强度
     */
    glowPower: number;
    /**
     * 发光的增量
     */
    glowStrength: number;
    /**
     * 只显示选中构件
     */
    onlySelected: boolean;
}

/**
 * 雨天气 效果
 * @param [options] - 参数对象，包括以下：
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.size = 20] - 粒子大小
 * @param [options.speed = 10] - 速度
 * @param [options.direction = -30] - 方向（度），0度垂直向下
 */
declare class RainEffect extends BaseEffect {
    constructor(options?: {
        enabled?: boolean;
        size?: number;
        speed?: number;
        direction?: number;
    });
    /**
     * 速度
     */
    speed: number;
    /**
     * 雨粒子大小
     */
    size: number;
    /**
     * 雨的方向（度），0度垂直向下
     */
    direction: number;
}

/**
 * 地面积雪 效果
 * @param [options] - 参数对象，包括以下：
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.alpha = 1.0] - 覆盖强度  0-1
 * @param [options.maxHeight = 9000] - 最大高度，限定超出该高度不显示积雪效果
 */
declare class SnowCoverEffect extends BaseEffect {
    constructor(options?: {
        enabled?: boolean;
        alpha?: number;
        maxHeight?: number;
    });
    /**
     * 最高限定高度，超出该高度不显示积雪效果
     */
    maxHeight: number;
    /**
     * 覆盖强度  0-1
     */
    alpha: number;
}

/**
 * 雪天气 效果
 * @param [options] - 参数对象，包括以下：
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.speed = 10] - 速度
 */
declare class SnowEffect extends BaseEffect {
    constructor(options?: {
        enabled?: boolean;
        speed?: number;
    });
    /**
     * 速度
     */
    speed: number;
}

/**
 * 全局JsDoc变量 (只是注释使用，非mars3d变量)
 */
declare namespace Globe {
    /**
     * Popup或Tooltip配置的数组方式对象
     * @property [field] - 字段名称
     * @property [name] - 显示的对应自定义名称
     * @property [type] - 默认为label文本，也可以支持：'button'按钮，'html' html内容。
     * @property [callback] - 当type为'button'按钮时，单击后触发的事件。
     * @property [html] - 当type为'html'时，对于拼接的html内容。
     * @property [format] - 使用window上有效的格式化js方法名称或function回调方法，来格式化字符串值。
     * @property [unit] - 追加的计量单位值。
     * @property [className] - 自定义样式名称
     */
    type getTemplateHtml_template = {
        field?: string;
        name?: string;
        type?: string;
        callback?: string;
        html?: string;
        format?: string | ((...params: any[]) => any);
        unit?: string;
        className?: string;
    };
}

declare namespace BaseGraphic {
    /**
     * 当前类支持的{@link EventType}事件类型
     * @example
     * //绑定监听事件
     * graphic.on(mars3d.EventType.click, function (event) {
     *   console.log('单击了矢量数据对象', event)
     * })
     * @property add - 本身被添加
     * @property remove - 本身被移除
     * @property show - 显示了对象本身
     * @property hide - 隐藏了对象本身
     * @property updatePosition - 更新了坐标位置
     * @property updateStyle - 更新了style对象
     * @property updateAttr - 更新了attr对象
     * @property click - 左键单击 鼠标事件 【仅支持交互的相关对象内存在】
     * @property rightClick - 右键单击 鼠标事件
     * @property mouseOver - 鼠标移入 鼠标事件
     * @property mouseOut - 鼠标移出 鼠标事件
     * @property popupOpen - popup弹窗打开后
     * @property popupClose - popup弹窗关闭
     * @property tooltipOpen - tooltip弹窗打开后
     * @property tooltipClose - tooltip弹窗关闭
     * @property contextMenuOpen - 右键菜单 打开后
     * @property contextMenuClose - 右键菜单 关闭
     * @property contextMenuClick - 右键菜单 单击某一项后
     * @property highlightOpen - highlight高亮后
     * @property highlightClose - highlight关闭后
     * @property postRender - 每帧渲染  【仅DIV或Popup相关对象内存在】
     * @property drawStart - 开始绘制 标绘事件 【仅支持标绘的相关对象内存在】
     * @property drawMouseMove - 正在移动鼠标中，绘制过程中鼠标移动了点 标绘事件
     * @property drawAddPoint - 绘制过程中增加了点 标绘事件
     * @property drawRemovePoint - 绘制过程中删除了最后一个点 标绘事件
     * @property drawCreated - 创建完成 标绘事件
     * @property editStart - 开始编辑 标绘事件 【仅支持编辑的相关对象内存在】
     * @property editMouseDown - 移动鼠标按下左键（LEFT_DOWN）标绘事件
     * @property editMouseMove - 正在移动鼠标中，正在编辑拖拽修改点中（MOUSE_MOVE） 标绘事件
     * @property editMovePoint - 编辑修改了点（LEFT_UP）标绘事件
     * @property editRemovePoint - 编辑删除了点 标绘事件
     * @property editStyle - 图上编辑修改了相关style属性 标绘事件
     * @property editStop - 停止编辑 标绘事件
     * @property load - gltf模型加载完成后【仅gltf模型相关对象存在】
     * @property stop - 模型addDynamicPosition添加的动态点，到时时间停止后触发【仅addDynamicPosition动态点时存在】
     */
    type EventType = {
        add: string;
        remove: string;
        show: string;
        hide: string;
        updatePosition: string;
        updateStyle: string;
        updateAttr: string;
        click: string;
        rightClick: string;
        mouseOver: string;
        mouseOut: string;
        popupOpen: string;
        popupClose: string;
        tooltipOpen: string;
        tooltipClose: string;
        contextMenuOpen: string;
        contextMenuClose: string;
        contextMenuClick: string;
        highlightOpen: string;
        highlightClose: string;
        postRender: string;
        drawStart: string;
        drawMouseMove: string;
        drawAddPoint: string;
        drawRemovePoint: string;
        drawCreated: string;
        editStart: string;
        editMouseDown: string;
        editMouseMove: string;
        editMovePoint: string;
        editRemovePoint: string;
        editStyle: string;
        editStop: string;
        load: string;
        stop: string;
    };
}

/**
 * 矢量数据 基础类
 * @param options - 参数对象，包括以下：
 * @param options.position - 【点状】矢量数据时的坐标位置，具体看子类实现
 * @param options.positions - 【线面状（多点）】矢量数据时的坐标位置，具体看子类实现
 * @param options.style - 矢量数据的 样式信息，具体见各{@link GraphicType}子类矢量数据的style参数。
 * @param [options.attr] - 矢量数据的 属性信息，可以任意附加属性。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class BaseGraphic extends BaseClass {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | number[];
        positions: LngLatPoint[] | Cesium.Cartesian3[] | any[];
        style: any;
        attr?: any;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 矢量数据类型
     */
    readonly type: string;
    /**
     * 对象的id标识
     */
    readonly id: string | number;
    /**
     * 当前对象的状态
     */
    readonly state: State;
    /**
     * 是否已添加到图层
     */
    readonly isAdded: boolean;
    /**
     * 是否已经销毁了
     */
    readonly isDestroy: boolean;
    /**
     * 是否Mars3D内部的私有对象，如标绘拖拽点等
     */
    readonly isPrivate: boolean;
    /**
     * 矢量数据对应的 Cesium内部对象 (不同子类中实现)
     */
    readonly czmObject: Cesium.Entity | Cesium.Primitive | Cesium.GroundPrimitive | Cesium.ClassificationPrimitive | any;
    /**
     * 显示隐藏状态
     */
    show: boolean;
    /**
     * 名称
     */
    name: string;
    /**
     * 属性信息
     */
    attr: any;
    /**
     * 样式信息
     */
    style: any;
    /**
     * 是否允许鼠标穿透拾取
     */
    allowDrillPick: boolean | ((...params: any[]) => any);
    /**
     * 是否可以编辑
     */
    hasEdit: boolean;
    /**
     * 设置事件的启用和禁用状态
     */
    enabledEvent: boolean;
    /**
     * 中心点坐标（笛卡尔坐标）
     */
    readonly center: Cesium.Cartesian3 | Cesium.SampledPositionProperty;
    /**
     * 中心点坐标
     */
    readonly centerPoint: LngLatPoint;
    /**
     * 是否可以调整透明度
     */
    readonly hasOpacity: boolean;
    /**
     * 添加到图层上，同  layer.addGraphic
     * @param layer - 图层对象
     * @returns 当前对象本身，可以链式调用
     */
    addTo(layer: GraphicLayer): BaseGraphic | any;
    /**
     * 从图层上移除，同 layer.removeGraphic
     * @param [hasDestroy] - 是否调用destroy释放
     * @returns 无
     */
    remove(hasDestroy?: boolean): void;
    /**
     * 绑定Cesium内部对象进行相关管理。
     * @param item - Cesium对象
     * @returns 当前对象本身，可以链式调用
     */
    bindPickId(item: any): BaseGraphic | any;
    /**
     * 对象添加到图层前创建一些对象的钩子方法，
     * 只会调用一次
     * @returns 无
     */
    _mountedHook(): void;
    /**
     * 对象添加到图层上的创建钩子方法，
     * 每次add时都会调用
     * @param style - 完整样式信息
     * @returns 无
     */
    _addedHook(style: any): void;
    /**
     * 对象从图层上移除的创建钩子方法，
     * 每次remove时都会调用
     * @returns 无
     */
    _removedHook(): void;
    /**
     * 启用或禁用所有内部控件（含tooltip、popup、contextmenu）
     * @param value - 是否启用
     * @returns 无
     */
    enableControl(value: boolean): void;
    /**
     * 重新赋值参数，同构造方法参数一致。
     * @param options - 参数,与类的构造方法参数相同
     * @returns 当前对象本身，可以链式调用
     */
    setOptions(options: any): BaseGraphic | any;
    /**
     * 设置 样式信息 的钩子方法
     * @param newStyle - 本次更新的部分样式信息,内部会合并属性
     * @returns 当前对象本身，可以链式调用
     */
    setStyle(newStyle: any): BaseGraphic | any;
    /**
     * 设置透明度, 不是所有类型均支持，主要看数据类型和材质类型决定。
     * @param value - 透明度
     * @returns 无
     */
    setOpacity(value: number): void;
    /**
     * 将矢量数据导出为GeoJSON格式规范对象。
     * @param [options] - 参数对象:
     * @param [options.noAlt] - 不导出高度值
     * @returns GeoJSON格式规范对象
     */
    toGeoJSON(options?: {
        noAlt?: boolean;
    }): any;
    /**
     * 将矢量数据的坐标、样式及属性等信息导出为对象，可以用于存储。
     * @returns 导出的坐标、样式及属性等信息
     */
    toJSON(): any;
    /**
     * 获取数据的矩形边界
     * @param [options] - 控制参数
     * @param [options.isFormat = false] - 是否格式化，格式化时示例： { xmin: 73.16895, xmax: 134.86816, ymin: 12.2023, ymax: 54.11485 }
     * @returns isFormat：true时，返回格式化对象，isFormat：false时返回Cesium.Rectangle对象
     */
    getRectangle(options?: {
        isFormat?: boolean;
    }): Cesium.Rectangle | any;
    /**
     * 获取数据的最大高度
     * @returns 高度
     */
    getMaxHeight(): number;
    /**
     * 飞行定位至 数据所在的视角
     * @param [options = {}] - 参数对象:
     * @param [options.radius] - 点状数据时，相机距离目标点的距离（单位：米）
     * @param [options.scale = 1.2] - 线面数据时，缩放比例，可以控制视角比矩形略大一些，这样效果更友好。
     * @param [options.minHeight] - 定位时相机的最小高度值，用于控制避免异常数据
     * @param [options.maxHeight] - 定位时相机的最大高度值，用于控制避免异常数据
     * @param [options.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
     * @param [options.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
     * @param [options.roll] - 翻滚角度值，绕经度线旋转角度,-90至90
     * @param [options.duration] - 飞行时间（单位：秒）。如果省略，SDK内部会根据飞行距离计算出理想的飞行时间。
     * @param [options.complete] - 飞行完成后要执行的函数。
     * @param [options.cancel] - 飞行取消时要执行的函数。
     * @param [options.endTransform] - 变换矩阵表示飞行结束时相机所处的参照系。
     * @param [options.maximumHeight] - 飞行高峰时的最大高度。
     * @param [options.pitchAdjustHeight] - 如果相机飞得比这个值高，在飞行过程中调整俯仰以向下看，并保持地球在视口。
     * @param [options.flyOverLongitude] - 地球上的两点之间总有两条路。这个选项迫使相机选择战斗方向飞过那个经度。
     * @param [options.flyOverLongitudeWeight] - 仅在通过flyOverLongitude指定的lon上空飞行，只要该方式的时间不超过flyOverLongitudeWeight的短途时间。
     * @param [options.convert = true] - 是否将目的地从世界坐标转换为场景坐标（仅在不使用3D时相关）。
     * @param [options.easingFunction] - 控制在飞行过程中如何插值时间。
     * @returns 如果飞行成功则解析为true的承诺，如果当前未在场景中可视化目标或取消飞行，则为false的Promise
     */
    flyTo(options?: {
        radius?: number;
        scale?: number;
        minHeight?: number;
        maxHeight?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        duration?: number;
        complete?: Cesium.Camera.FlightCompleteCallback;
        cancel?: Cesium.Camera.FlightCancelledCallback;
        endTransform?: Cesium.Matrix4;
        maximumHeight?: number;
        pitchAdjustHeight?: number;
        flyOverLongitude?: number;
        flyOverLongitudeWeight?: number;
        convert?: boolean;
        easingFunction?: Cesium.EasingFunction.Callback;
    }): Promise<boolean>;
    /**
     * 绑定鼠标移入或单击后的 对象高亮
     * @param options - 高亮的样式，具体见各{@link GraphicType}矢量数据的style参数。
     * @param [options.type] - 事件类型，默认为鼠标移入高亮，也可以指定'click'单击高亮.
     * @returns 无
     */
    bindHighlight(options: {
        type?: string;
    }): void;
    /**
     * 解绑鼠标移入或单击后的高亮处理
     * @returns 无
     */
    unbindHighlight(): void;
    /**
     * 是否存在Popup绑定
     * @param [hasLayer = true] - 是否判断图层上的Popup
     * @returns 是否存在Popup绑定
     */
    hasPopup(hasLayer?: boolean): boolean;
    /**
     * 绑定鼠标单击对象后的弹窗。
     * @param content - 弹窗内容html字符串，或者回调方法。
     * @param [options] - 控制参数
     * @returns 当前对象本身，可以链式调用
     */
    bindPopup(content: string | ((...params: any[]) => any), options?: Popup.StyleOptions | any): BaseGraphic | any;
    /**
     * 解除绑定的鼠标单击对象后的弹窗。
     * @param [bubbling = false] - 单击事件中是否继续冒泡往上级查找
     * @returns 当前对象本身，可以链式调用
     */
    unbindPopup(bubbling?: boolean): BaseGraphic | any;
    /**
     * 打开绑定的弹窗
     * @param [position = this.center] - 矢量对象 或 显示的位置
     * @param [event] - 用于抛出事件时的相关额外属性
     * @returns 当前对象本身，可以链式调用
     */
    openPopup(position?: LngLatPoint | Cesium.Cartesian3 | number[], event?: any): BaseGraphic | any;
    /**
     * 关闭弹窗
     * @returns 当前对象本身，可以链式调用
     */
    closePopup(): BaseGraphic | any;
    /**
     * 获取当前对象打开的Popup对象
     * @returns 当前对象打开的Popup对象
     */
    getPopup(): Popup;
    /**
     * 是否绑定了tooltip
     * @param [hasLayer = true] - 是否判断图层上的tooltip
     * @returns 是否绑定
     */
    hasTooltip(hasLayer?: boolean): boolean;
    /**
     * 绑定鼠标移入的弹窗
     * @param content - 弹窗内容html字符串，或者回调方法。
     * @param [options] - 控制参数
     * @returns 当前对象本身，可以链式调用
     */
    bindTooltip(content: string | ((...params: any[]) => any), options?: Tooltip.StyleOptions | any): BaseGraphic | any;
    /**
     * 解除绑定的鼠标移入对象后的弹窗。
     * @param [bubbling = false] - 单击事件中是否继续冒泡查找
     * @returns 当前对象本身，可以链式调用
     */
    unbindTooltip(bubbling?: boolean): BaseGraphic | any;
    /**
     * 打开绑定的tooltip弹窗
     * @param [position = this.center] - 显示的位置,默认为矢量对象所在点或中心点位置
     * @param [event] - 用于抛出事件时的相关额外属性
     * @returns 当前对象本身，可以链式调用
     */
    openTooltip(position?: LngLatPoint | Cesium.Cartesian3 | number[], event?: any): BaseGraphic | any;
    /**
     * 关闭弹窗
     * @returns 当前对象本身，可以链式调用
     */
    closeTooltip(): BaseGraphic | any;
    /**
     * 获取当前对象打开的Tooltip对象
     * @returns 当前对象打开的Tooltip对象
     */
    getTooltip(): Tooltip;
    /**
     * 是否有绑定的右键菜单
     * @param [hasLayer = true] - 是否判断图层上的右键菜单
     * @returns 是否有绑定
     */
    hasContextMenu(hasLayer?: boolean): boolean;
    /**
     * 获取绑定的右键菜单数组
     * @param [hasLayer = true] - 是获取图层上的右键菜单
     * @returns 右键菜单数组
     */
    getContextMenu(hasLayer?: boolean): any;
    /**
     * 绑定右键菜单
     * @example
     * graphic.bindContextMenu([
     *         {
     *           text: '删除对象',
     *           icon: 'fa fa-trash-o',
     *           callback: function (e) {
     *             let graphic = e.graphic
     *             if (graphic) {
     *               graphic.remove()
     *             }
     *           },
     *         },
     *       ])
     * @param content - 右键菜单配置数组，数组中每一项包括：
     * @param [content.text] - 菜单文字
     * @param [content.icon] - 图标,可以是：图片url路径、base64字符串、svg字符串、字体图标class名
     * @param [content.show] - 菜单项是否显示的回调方法
     * @param [content.callback] - 菜单项单击后的回调方法
     * @param [content.children] - 当有二级子菜单时，配置数组。
     * @param [options = {}] - 控制参数
     * @param [options.offsetX] - 用于非规则对象时，横向偏移的px像素值
     * @param [options.offsetY] - 用于非规则对象时，垂直方向偏移的px像素值
     * @returns 当前对象本身，可以链式调用
     */
    bindContextMenu(content: {
        text?: string;
        icon?: string;
        show?: ((...params: any[]) => any) | boolean;
        callback?: (...params: any[]) => any;
        children?: any;
    }[], options?: {
        offsetX?: number;
        offsetY?: number;
    }): BaseGraphic | any;
    /**
     * 解除绑定的右键菜单
     * @param [bubbling = false] - 单击事件中是否继续冒泡查找
     * @returns 当前对象本身，可以链式调用
     */
    unbindContextMenu(bubbling?: boolean): BaseGraphic | any;
    /**
     * 打开右键菜单
     * @param [position = this.center] - 矢量对象 或 显示的位置
     * @returns 当前对象本身，可以链式调用
     */
    openContextMenu(position?: Cesium.Cartesian3): BaseGraphic | any;
    /**
     * 关闭右键菜单
     * @returns 当前对象本身，可以链式调用
     */
    closeContextMenu(): BaseGraphic | any;
    /**
     * 显示小提示窗，一般用于鼠标操作的提示。
     * @param position - 显示的屏幕坐标位置 或 笛卡尔坐标位置
     * @param message - 显示的内容
     * @returns 当前对象本身，可以链式调用
     */
    openSmallTooltip(position: Cesium.Cartesian2 | Cesium.Cartesian3, message: any): BaseGraphic | any;
    /**
     * 关闭小提示窗
     * @returns 当前对象本身，可以链式调用
     */
    closeSmallTooltip(): BaseGraphic | any;
    /**
     * 当前类的构造参数
     */
    readonly options: any;
    /**
     * 销毁当前对象
     * @param [noDel = false] - false:会自动delete释放所有属性，true：不delete绑定的变量
     * @returns 无
     */
    destroy(noDel?: boolean): void;
    /**
     * 触发指定类型的事件。
     * @param type - 事件类型
     * @param [data] - 传输的数据或对象，可在事件回调方法中event对象中获取进行使用
     * @param [propagate] - 将事件传播给父类 (用addEventParent设置)
     * @returns 当前对象本身,可以链式调用
     */
    fire(type: EventType | string, data?: any, propagate?: BaseClass): BaseClass;
}

/**
 * 大数据合并渲染Primitive对象基类
 */
declare class BaseCombine extends BasePrimitive {
    /**
     * 数据集合数组，同类的构造参数
     */
    instances: any;
    /**
     * 根据 pickId 获取对应绑定的数据据对象
     * @param pickId - 单个对象的pickid
     * @returns 对应绑定的数据对象
     */
    getPickedObject(pickId: string): any;
    /**
     * 获取数据的矩形边界
     * @param [options] - 控制参数
     * @param [options.isFormat = false] - 是否格式化，格式化时示例： { xmin: 73.16895, xmax: 134.86816, ymin: 12.2023, ymax: 54.11485 }
     * @returns isFormat：true时，返回格式化对象，isFormat：false时返回Cesium.Rectangle对象
     */
    getRectangle(options?: {
        isFormat?: boolean;
    }): Cesium.Rectangle | any;
    /**
     * 将矢量数据的坐标、样式及属性等信息导出为对象，可以用于存储。
     * @returns 导出的坐标、样式及属性等信息
     */
    toJSON(): any;
    /**
     * 将矢量数据导出为GeoJSON格式规范对象。[因为geojson格式规范，是拆分为多个Feature，如果不满足需求，也可以用toJSON方法]
     * @param [options] - 参数对象:
     * @param [options.noAlt] - 不导出高度值
     * @returns GeoJSON格式规范对象
     */
    toGeoJSON(options?: {
        noAlt?: boolean;
    }): any;
    /**
     * 更新颜色, 只对纯色材质有效，其他材质无法单独更新，需要setStle方法调用(全部更新渲染)。
     * @param style - 样式信息
     * @param [style.color = "#3388ff"] - 颜色
     * @param [style.opacity = 1.0] - 透明度，取值范围：0.0-1.0
     * @param [index] - 更新的instances对象index值，为空时更新所有对象。
     * @returns 空
     */
    setColorStyle(style: {
        color?: string | Cesium.Color;
        opacity?: number;
    }, index?: number | undefined): void;
}

/**
 * 大数据点状数据基类 集合 (合并渲染) Primitive图元 矢量对象
 * @param options - 参数对象，包括以下：
 * @param [options.instances] - 面信息数组，单个对象包括：
 * @param options.instances.position - 坐标位置
 * @param [options.instances.style] - 样式信息
 * @param [options.instances.attr] - 矢量数据的 属性信息，可以任意附加属性。
 * @param [options.style] - 所有面的公共样式信息
 * @param [options.highlight] - 鼠标移入或单击后的对应高亮的部分样式(仅支持Color纯色材质)
 * @param [options.highlight.type] - 触发高亮的方式，默认鼠标移入，可以指定为type:'click'为单击后高亮
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.depthFailAppearance] - 当深度测试失败时，用于为该图元着色的外观。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class BasePointCombine extends BasePolyCombine {
    constructor(options: {
        instances?: {
            position: LngLatPoint | Cesium.Cartesian3 | any[] | any;
            style?: any;
            attr?: any;
        }[];
        style?: any;
        highlight?: {
            type?: string;
        };
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        depthFailAppearance?: Cesium.Appearance;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

/**
 * 大数据线面集合 (合并渲染) Primitive图元 矢量对象基类
 * @param options - 参数对象，包括以下：
 * @param [options.instances] - 线面信息数组，单个对象包括：
 * @param options.instances.positions - 坐标位置
 * @param [options.instances.style] - 样式信息
 * @param [options.instances.attr] - 矢量数据的 属性信息，可以任意附加属性。
 * @param [options.style] - 所有面的公共样式信息
 * @param [options.highlight] - 鼠标移入或单击后的对应高亮的部分样式(仅支持Color纯色材质)
 * @param [options.highlight.type] - 触发高亮的方式，默认鼠标移入，可以指定为type:'click'为单击后高亮
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.depthFailAppearance] - 当深度测试失败时，用于为该图元着色的外观。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class BasePolyCombine extends BaseCombine {
    constructor(options: {
        instances?: {
            positions: LngLatPoint[] | Cesium.Cartesian3[] | any[];
            style?: any;
            attr?: any;
        }[];
        style?: any;
        highlight?: {
            type?: string;
        };
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        depthFailAppearance?: Cesium.Appearance;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 样式信息
     */
    readonly style: any;
    /**
     * 高亮对象。
     * @param [highlightStyle] - 高亮的样式，具体见各{@link GraphicType}矢量数据的style参数。
     * @param [closeLast = true] - 是否清除地图上上一次的高亮对象
     * @param [pickedObject] - 指定需要高亮的子对象, 如果是mars3d的相关事件内时，可以取 event.pickedObject
     * @returns 无
     */
    openHighlight(highlightStyle?: any, closeLast?: boolean, pickedObject?: any): void;
    /**
     * 清除已选中的高亮，原有style的配置项需要与highlightStyle配置有一一对应关系，否则无法清除
     * @returns 无
     */
    closeHighlight(): void;
}

/**
 * 大数据 盒子 集合 (合并渲染) Primitive图元 矢量对象
 * @param options - 参数对象，包括以下：
 * @param [options.instances] - 面信息数组，单个对象包括：
 * @param options.instances.position - 坐标位置
 * @param [options.instances.style] - 样式信息
 * @param [options.instances.attr] - 矢量数据的 属性信息，可以任意附加属性。
 * @param [options.style] - 所有面的公共样式信息
 * @param [options.highlight] - 鼠标移入或单击后的对应高亮的部分样式(仅支持Color纯色材质)
 * @param [options.highlight.type] - 触发高亮的方式，默认鼠标移入，可以指定为type:'click'为单击后高亮
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.depthFailAppearance] - 当深度测试失败时，用于为该图元着色的外观。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class BoxCombine extends BasePointCombine {
    constructor(options: {
        instances?: {
            position: LngLatPoint | Cesium.Cartesian3 | any[] | any;
            style?: BoxPrimitive.StyleOptions | any;
            attr?: any;
        }[];
        style?: BoxPrimitive.StyleOptions | any;
        highlight?: {
            type?: string;
        };
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        depthFailAppearance?: Cesium.Appearance;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

/**
 * 大数据圆集合 (合并渲染) Primitive图元 矢量对象
 * @param options - 参数对象，包括以下：
 * @param [options.instances] - 面信息数组，单个对象包括：
 * @param options.instances.position - 坐标位置
 * @param [options.instances.style] - 样式信息
 * @param [options.instances.attr] - 矢量数据的 属性信息，可以任意附加属性。
 * @param [options.style] - 所有面的公共样式信息
 * @param [options.highlight] - 鼠标移入或单击后的对应高亮的部分样式(仅支持Color纯色材质)
 * @param [options.highlight.type] - 触发高亮的方式，默认鼠标移入，可以指定为type:'click'为单击后高亮
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.depthFailAppearance] - 当深度测试失败时，用于为该图元着色的外观。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class CircleCombine extends BasePointCombine {
    constructor(options: {
        instances?: {
            position: LngLatPoint | Cesium.Cartesian3 | any[] | any;
            style?: CirclePrimitive.StyleOptions | any;
            attr?: any;
        }[];
        style?: CirclePrimitive.StyleOptions | any;
        highlight?: {
            type?: string;
        };
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        depthFailAppearance?: Cesium.Appearance;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

/**
 * 大数据 走廊 集合 (合并渲染) Primitive图元 矢量对象
 * @param options - 参数对象，包括以下：
 * @param [options.instances] - 线信息 数组，单个对象包括：
 * @param options.instances.positions - 坐标位置
 * @param [options.instances.style] - 样式信息
 * @param [options.instances.attr] - 矢量数据的 属性信息，可以任意附加属性。
 * @param [options.style] - 所有线的公共样式信息
 * @param [options.highlight] - 鼠标移入或单击后的对应高亮的部分样式(仅支持Color纯色材质)
 * @param [options.highlight.type] - 触发高亮的方式，默认鼠标移入，可以指定为type:'click'为单击后高亮
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.depthFailAppearance] - 当深度测试失败时，用于为该图元着色的外观。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取*
 */
declare class CorridorCombine extends BasePolyCombine {
    constructor(options: {
        instances?: {
            positions: LngLatPoint[] | Cesium.Cartesian3[] | any[];
            style?: CorridorPrimitive.StyleOptions | any;
            attr?: any;
        }[];
        style?: CorridorPrimitive.StyleOptions | any;
        highlight?: {
            type?: string;
        };
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        depthFailAppearance?: Cesium.Appearance;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

/**
 * 大数据圆锥、圆柱集合 (合并渲染) Primitive图元 矢量对象
 * @param options - 参数对象，包括以下：
 * @param [options.instances] - 面信息数组，单个对象包括：
 * @param options.instances.position - 坐标位置
 * @param [options.instances.style] - 样式信息
 * @param [options.instances.attr] - 矢量数据的 属性信息，可以任意附加属性。
 * @param [options.style] - 所有面的公共样式信息
 * @param [options.highlight] - 鼠标移入或单击后的对应高亮的部分样式(仅支持Color纯色材质)
 * @param [options.highlight.type] - 触发高亮的方式，默认鼠标移入，可以指定为type:'click'为单击后高亮
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.depthFailAppearance] - 当深度测试失败时，用于为该图元着色的外观。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class CylinderCombine extends BasePointCombine {
    constructor(options: {
        instances?: {
            position: LngLatPoint | Cesium.Cartesian3 | any[] | any;
            style?: CylinderPrimitive.StyleOptions | any;
            attr?: any;
        }[];
        style?: CylinderPrimitive.StyleOptions | any;
        highlight?: {
            type?: string;
        };
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        depthFailAppearance?: Cesium.Appearance;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

/**
 * 大数据 球体 集合 (合并渲染) Primitive图元 矢量对象
 * @param options - 参数对象，包括以下：
 * @param [options.instances] - 面信息数组，单个对象包括：
 * @param options.instances.position - 坐标位置
 * @param [options.instances.style] - 样式信息
 * @param [options.instances.attr] - 矢量数据的 属性信息，可以任意附加属性。
 * @param [options.style] - 所有面的公共样式信息
 * @param [options.highlight] - 鼠标移入或单击后的对应高亮的部分样式(仅支持Color纯色材质)
 * @param [options.highlight.type] - 触发高亮的方式，默认鼠标移入，可以指定为type:'click'为单击后高亮
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.depthFailAppearance] - 当深度测试失败时，用于为该图元着色的外观。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class EllipsoidCombine extends BasePointCombine {
    constructor(options: {
        instances?: {
            position: LngLatPoint | Cesium.Cartesian3 | any[] | any;
            style?: EllipsoidPrimitive.StyleOptions | any;
            attr?: any;
        }[];
        style?: EllipsoidPrimitive.StyleOptions | any;
        highlight?: {
            type?: string;
        };
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        depthFailAppearance?: Cesium.Appearance;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

declare namespace FlatBillboard {
    /**
     * 平放的图标 单个数据对象的样式
     * @property image - 图标URL
     * @property [angle = 0] - 图标的角度（角度值，0-360）
     * @property [width = 50] - 图标宽度
     * @property [height] - 图标高度，默认值等于宽度
     */
    type StyleOptions = any | {
        image: string;
        angle?: number;
        width?: number;
        height?: number;
    };
}

/**
 * 平放的图标 数据集合 (多个图标一起合并渲染)
 * @param options - 参数对象，包括以下：
 * @param [options.instances] - 数组，单个对象包括：
 * @param options.instances.position - 坐标位置
 * @param options.instances.style - 样式信息
 * @param [options.instances.attr] - 矢量数据的 属性信息，可以任意附加属性。
 * @param [options.style] - 所有图标的公共样式信息
 * @param [options.scale3d = 1] - 二维和三维模式切换后图标的缩放比例。因为二三维模式使用不同渲染方式，可能存在大小偏差，可以该参数调优。
 * @param [options.distanceDisplayCondition = new Cesium.DistanceDisplayCondition(0, 5000000)] - 指定数据将显示在与摄像机的多大距离
 * @param [options.translucent = false] - 当true时，将启用alpha混合。
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class FlatBillboard extends BaseCombine {
    constructor(options: {
        instances?: {
            position: LngLatPoint | Cesium.Cartesian3 | any[] | any;
            style: FlatBillboard.StyleOptions | any;
            attr?: any;
        }[];
        style?: FlatBillboard.StyleOptions | any;
        scale3d?: number;
        distanceDisplayCondition?: Cesium.DistanceDisplayCondition;
        translucent?: boolean;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 指定数据将显示在与摄像机的多大距离
     */
    distanceDisplayCondition: Cesium.DistanceDisplayCondition;
    /**
     * 清除数据
     * @returns 无
     */
    clear(): void;
    /**
     * 设置透明度
     * @param value - 透明度
     * @returns 无
     */
    setOpacity(value: number): void;
    /**
     * 重新渲染
     * @param [style] - 新的样式信息
     * @returns 当前对象本身
     */
    redraw(style?: any): BasePrimitive;
}

/**
 * 大数据 四棱锥体 集合 (合并渲染) Primitive图元 矢量对象
 * @param options - 参数对象，包括以下：
 * @param [options.instances] - 面信息数组，单个对象包括：
 * @param options.instances.position - 坐标位置
 * @param [options.instances.style] - 样式信息
 * @param [options.instances.attr] - 矢量数据的 属性信息，可以任意附加属性。
 * @param [options.style] - 所有面的公共样式信息
 * @param [options.highlight] - 鼠标移入或单击后的对应高亮的部分样式(仅支持Color纯色材质)
 * @param [options.highlight.type] - 触发高亮的方式，默认鼠标移入，可以指定为type:'click'为单击后高亮
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.depthFailAppearance] - 当深度测试失败时，用于为该图元着色的外观。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class FrustumCombine extends BasePointCombine {
    constructor(options: {
        instances?: {
            position: LngLatPoint | Cesium.Cartesian3 | any[] | any;
            style?: FrustumPrimitive.StyleOptions | any;
            attr?: any;
        }[];
        style?: FrustumPrimitive.StyleOptions | any;
        highlight?: {
            type?: string;
        };
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        depthFailAppearance?: Cesium.Appearance;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

/**
 * 大数据 gltf小模型集合 (合并渲染) Primitive图元 矢量对象 <br />
 * 【注意：该类仅对Cesium 1.97之前版本有效，1.97后Cesium移除了 Cesium.ModelInstanceCollection 】
 * @param options - 参数对象，包括以下：
 * @param [options.url] - glTF模型的URI的字符串或资源属性。
 * @param [options.instances] - 集合信息数组，单个对象包括：
 * @param options.instances.position - 坐标位置
 * @param [options.instances.style] - 样式信息(目前仅支持方向和比例参数)
 * @param [options.instances.attr] - 矢量数据的 属性信息，可以任意附加属性。
 * @param [options.batchTable] - 实例化的3D贴图的Cesium.Cesium3DTileBatchTable批处理表。
 * @param [options.requestType] - 请求类型，用于确定请求的优先级
 * @param [options.gltf] - 一个glTF JSON对象，或者一个二进制的glTF缓冲区。
 * @param [options.basePath = ''] - glTF JSON中路径相对的基本路径。
 * @param [options.dynamic = false] - 提示实例模型矩阵是否会频繁更新。
 * @param [options.allowPicking = true] - 当true时，每个glTF和Primitive都可以用{@link Cesium.Scene#pick}来拾取。
 * @param [options.asynchronous = true] - 确定模型WebGL资源创建是否将分散在几个帧或块上，直到所有glTF文件加载完成。
 * @param [options.incrementallyLoadTextures = true] - 确定模型加载后纹理是否会继续流进来。
 * @param [options.shadows = ShadowMode.ENABLED] - 指定模型是投射还是接收来自光源的阴影。
 * @param [options.imageBasedLightingFactor = new Cartesian2(1.0, 1.0)] - 指定来自基于图像的漫反射和镜面照明的贡献。
 * @param [options.lightColor] - 光的颜色当遮光模型。当undefined场景的浅色被使用代替。
 * @param [options.backFaceCulling = true] - 是否剔除面向背面的几何图形。当为真时，背面剔除由glTF材质的双面属性决定;当为false时，禁用背面剔除。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。查看模型的包围边界球。
 * @param [options.enableDebugWireframe = false] - 仅供调试。查看模型的三角网线框图。
 *
 * //以下是 模型动画相关
 * @param [options.startTime] - 场景时间开始播放动画。当undefined时，动画从下一帧开始。
 * @param [options.delay = 0.0] - 从startTime开始播放的延迟，以秒为单位。
 * @param [options.stopTime] - 场景时间停止播放动画。当这是undefined，动画播放它的整个持续时间。
 * @param [options.removeOnStop = false] - 当true时，动画在停止播放后被删除。
 * @param [options.multiplier = 1.0] - 大于1.0的值增加动画播放的速度相对于场景时钟的速度;小于1.0会降低速度。
 * @param [options.reverse = false] - 当true时，动画会反向播放。
 * @param [options.loop = Cesium.ModelAnimationLoop.REPEAT] - 决定动画是否循环以及如何循环。
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class ModelCombine extends BaseCombine {
    constructor(options: {
        url?: Cesium.Resource | string;
        instances?: {
            position: LngLatPoint | Cesium.Cartesian3 | number[];
            style?: ModelPrimitive.StyleOptions | any;
            attr?: any;
        }[];
        batchTable?: any;
        requestType?: any;
        gltf?: any | ArrayBuffer | Uint8Array;
        basePath?: Cesium.Resource | string;
        dynamic?: boolean;
        allowPicking?: boolean;
        asynchronous?: boolean;
        incrementallyLoadTextures?: boolean;
        shadows?: Cesium.ShadowMode;
        imageBasedLightingFactor?: Cesium.Cartesian2;
        lightColor?: Cesium.Cartesian3;
        backFaceCulling?: boolean;
        debugShowBoundingVolume?: boolean;
        enableDebugWireframe?: boolean;
        startTime?: Cesium.JulianDate;
        delay?: number;
        stopTime?: Cesium.JulianDate;
        removeOnStop?: boolean;
        multiplier?: number;
        reverse?: boolean;
        loop?: Cesium.ModelAnimationLoop;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 是否可以调整透明度
     */
    readonly hasOpacity: boolean;
}

/**
 * 大数据 平面 集合 (合并渲染) Primitive图元 矢量对象
 * @param options - 参数对象，包括以下：
 * @param [options.instances] - 面信息数组，单个对象包括：
 * @param options.instances.position - 坐标位置
 * @param [options.instances.style] - 样式信息
 * @param [options.instances.attr] - 矢量数据的 属性信息，可以任意附加属性。
 * @param [options.style] - 所有面的公共样式信息
 * @param [options.highlight] - 鼠标移入或单击后的对应高亮的部分样式(仅支持Color纯色材质)
 * @param [options.highlight.type] - 触发高亮的方式，默认鼠标移入，可以指定为type:'click'为单击后高亮
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.depthFailAppearance] - 当深度测试失败时，用于为该图元着色的外观。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class PlaneCombine extends BasePointCombine {
    constructor(options: {
        instances?: {
            position: LngLatPoint | Cesium.Cartesian3 | any[] | any;
            style?: PlanePrimitive.StyleOptions | any;
            attr?: any;
        }[];
        style?: PlanePrimitive.StyleOptions | any;
        highlight?: {
            type?: string;
        };
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        depthFailAppearance?: Cesium.Appearance;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

/**
 * 大数据面集合 (合并渲染) Primitive图元 矢量对象
 * @param options - 参数对象，包括以下：
 * @param [options.instances] - 面信息数组，单个对象包括：
 * @param options.instances.positions - 坐标位置
 * @param [options.instances.style] - 样式信息
 * @param [options.instances.attr] - 矢量数据的 属性信息，可以任意附加属性。
 * @param [options.style] - 所有面的公共样式信息
 * @param [options.highlight] - 鼠标移入或单击后的对应高亮的部分样式(仅支持Color纯色材质)
 * //  * @param {String} [options.highlight.type] 触发高亮的方式，默认鼠标移入，可以指定为type:'click'为单击后高亮
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.depthFailAppearance] - 当深度测试失败时，用于为该图元着色的外观。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class PolygonCombine extends BasePolyCombine {
    constructor(options: {
        instances?: {
            positions: LngLatPoint[] | Cesium.Cartesian3[] | any[];
            style?: PolygonPrimitive.StyleOptions | any;
            attr?: any;
        }[];
        style?: PolygonPrimitive.StyleOptions | any;
        highlight?: PolygonPrimitive.StyleOptions | any;
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        depthFailAppearance?: Cesium.Appearance;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

/**
 * 大数据线集合 (合并渲染) Primitive图元 矢量对象
 * @param options - 参数对象，包括以下：
 * @param [options.instances] - 线信息 数组，单个对象包括：
 * @param options.instances.positions - 坐标位置
 * @param [options.instances.style] - 样式信息
 * @param [options.instances.attr] - 矢量数据的 属性信息，可以任意附加属性。
 * @param [options.style] - 所有线的公共样式信息
 * @param [options.highlight] - 鼠标移入或单击后的对应高亮的部分样式(仅支持Color纯色材质)
 * @param [options.highlight.type] - 触发高亮的方式，默认鼠标移入，可以指定为type:'click'为单击后高亮
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.depthFailAppearance] - 当深度测试失败时，用于为该图元着色的外观。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取*
 */
declare class PolylineCombine extends BasePolyCombine {
    constructor(options: {
        instances?: {
            positions: LngLatPoint[] | Cesium.Cartesian3[] | any[];
            style?: PolylinePrimitive.StyleOptions | any;
            attr?: any;
        }[];
        style?: PolylinePrimitive.StyleOptions | any;
        highlight?: {
            type?: string;
        };
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        depthFailAppearance?: Cesium.Appearance;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

/**
 * 大数据线集合 (合并渲染) Primitive图元 矢量对象
 * @param options - 参数对象，包括以下：
 * @param [options.instances] - 线信息 数组，单个对象包括：
 * @param options.instances.positions - 坐标位置
 * @param [options.instances.style] - 样式信息
 * @param [options.instances.attr] - 矢量数据的 属性信息，可以任意附加属性。
 * @param [options.style] - 所有线的公共样式信息
 * @param [options.highlight] - 鼠标移入或单击后的对应高亮的部分样式(仅支持Color纯色材质)
 * @param [options.highlight.type] - 触发高亮的方式，默认鼠标移入，可以指定为type:'click'为单击后高亮
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.depthFailAppearance] - 当深度测试失败时，用于为该图元着色的外观。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取*
 */
declare class PolylineVolumeCombine extends BasePolyCombine {
    constructor(options: {
        instances?: {
            positions: LngLatPoint[] | Cesium.Cartesian3[] | any[];
            style?: PolylineVolumePrimitive.StyleOptions | any;
            attr?: any;
        }[];
        style?: PolylineVolumePrimitive.StyleOptions | any;
        highlight?: {
            type?: string;
        };
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        depthFailAppearance?: Cesium.Appearance;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

/**
 * 大数据矩形集合 (合并渲染) Primitive图元 矢量对象
 * @param options - 参数对象，包括以下：
 * @param [options.instances] - 面信息数组，单个对象包括：
 * @param options.instances.positions - 坐标位置
 * @param [options.instances.style] - 样式信息
 * @param [options.instances.attr] - 矢量数据的 属性信息，可以任意附加属性。
 * @param [options.style] - 所有面的公共样式信息
 * @param [options.highlight] - 鼠标移入或单击后的对应高亮的部分样式(仅支持Color纯色材质)
 * @param [options.highlight.type] - 触发高亮的方式，默认鼠标移入，可以指定为type:'click'为单击后高亮
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.depthFailAppearance] - 当深度测试失败时，用于为该图元着色的外观。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class RectangleCombine extends BasePolyCombine {
    constructor(options: {
        instances?: {
            positions: LngLatPoint[] | Cesium.Cartesian3[] | any[];
            style?: RectanglePrimitive.StyleOptions | any;
            attr?: any;
        }[];
        style?: RectanglePrimitive.StyleOptions | any;
        highlight?: {
            type?: string;
        };
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        depthFailAppearance?: Cesium.Appearance;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

/**
 * 大数据 墙 集合 (合并渲染) Primitive图元 矢量对象
 * @param options - 参数对象，包括以下：
 * @param [options.instances] - 线信息 数组，单个对象包括：
 * @param options.instances.positions - 坐标位置
 * @param [options.instances.style] - 样式信息
 * @param [options.instances.attr] - 矢量数据的 属性信息，可以任意附加属性。
 * @param [options.style] - 所有线的公共样式信息
 * @param [options.highlight] - 鼠标移入或单击后的对应高亮的部分样式(仅支持Color纯色材质)
 * @param [options.highlight.type] - 触发高亮的方式，默认鼠标移入，可以指定为type:'click'为单击后高亮
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.depthFailAppearance] - 当深度测试失败时，用于为该图元着色的外观。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取*
 */
declare class WallCombine extends BasePolyCombine {
    constructor(options: {
        instances?: {
            positions: LngLatPoint[] | Cesium.Cartesian3[] | any[];
            style?: WallPrimitive.StyleOptions | any;
            attr?: any;
        }[];
        style?: WallPrimitive.StyleOptions | any;
        highlight?: {
            type?: string;
        };
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        depthFailAppearance?: Cesium.Appearance;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

/**
 * 大数据 水面集合 (合并渲染) Primitive图元 矢量对象
 * @param options - 参数对象，包括以下：
 * @param [options.instances] - 面信息数组，单个对象包括：
 * @param options.instances.positions - 坐标位置
 * @param [options.instances.style] - 样式信息
 * @param [options.instances.attr] - 矢量数据的 属性信息，可以任意附加属性。
 * @param [options.style] - 所有面的公共样式信息
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.depthFailAppearance] - 当深度测试失败时，用于为该图元着色的外观。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取*
 */
declare class WaterCombine extends PolygonCombine {
    constructor(options: {
        instances?: {
            positions: LngLatPoint[] | Cesium.Cartesian3[] | any[];
            style?: Water.StyleOptions | any;
            attr?: any;
        }[];
        style?: Water.StyleOptions | any;
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        depthFailAppearance?: Cesium.Appearance;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

declare namespace ArcFrustum {
    /**
     * 弧形平截头体 支持的样式信息
     * @property [angle] - 四棱锥体张角（角度值，取值范围 0.01-89.99）
     * @property [angle2 = angle] - 四棱锥体张角2，（角度值，取值范围 0.01-89.99）
     * @property distance - 投射距离，单位：米
     * @property [heading = 0] - 方向角 （度数值，0-360度）
     * @property [pitch = 0] - 俯仰角（度数值，0-360度）
     * @property [roll = 0] - 翻滚角（度数值，0-360度）
     * @property [color = Cesium.Color.WHITE] - 颜色
     */
    type StyleOptions = any | {
        angle?: number;
        angle2?: number;
        distance: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        color?: Cesium.Color;
    };
}

/**
 * 弧形截头体,
 * 目前用于视频投射、可视域分析中
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param [options.modelMatrix] - 将图元(所有几何实例)从模型转换为世界坐标的4x4变换矩阵,可以替代position。
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性。
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 */
declare class ArcFrustum extends BasePointPrimitive {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | number[];
        modelMatrix?: Cesium.Matrix4;
        style: ArcFrustum.StyleOptions | any;
        attr?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 颜色
     */
    color: Cesium.Color;
    /**
     * 夹角，半场角度，取值范围 0.01-89.99
     */
    angle: number;
    /**
     * 夹角2，半场角度，取值范围 0.01-89.99
     */
    angle2: number;
    /**
     * 将图元(所有几何实例)从模型转换为世界坐标的4x4变换矩阵。
     */
    readonly modelMatrix: Cesium.Matrix4;
}

/**
 * 固定轨迹路线/历史轨迹路线，是由多个其他类型Graphic组合而成，方便一起控制和管理。<br />
 * 路线坐标是一次性postions参数或属性传入的，有开始和结束的概念。
 * @param options - 参数对象，包括以下：
 * @param options.positions - 轨迹的 坐标数组
 * @param [options.offsetHeight = 0] - 轨迹偏移增加的高度
 * @param [options.interpolation] - 是否使用插值算法
 * @param [options.interpolationAlgorithm = Cesium.HermitePolynomialApproximation] - 当interpolation为true时，使用的插值算法，如：Cesium.HermitePolynomialApproximation、Cesium.LagrangePolynomialApproximation、Cesium.LinearApproximation
 * @param [options.interpolationDegree = 2] - 当interpolation为true时，使用的插值程度。
 * @param [options.showStop = true] - 是否在start前或stop后显示矢量对象
 * @param options.speed - 轨迹的 速度( 单位：千米/小时)
 * @param [options.timeField] - 当points数组中已有时间值，请传入该值的字段名称，同时speed将失效，已实际传入时间字段为准。
 * @param [options.startTime] - 轨迹的开始时间，默认当前时间
 * @param [options.pauseTime] - 每个点的停留时长（单位：秒）
 * @param [options.autoStop] - 是否自动停止
 * @param [options.clockLoop] - 是否循环播放，与 clockRange: Cesium.ClockRange.LOOP_STOP 效果类似，但不改变全局时钟时间。
 * @param [options.clockRange] - 设定全局时钟播放的模式，可以设置到达终点后停止或循环播放
 * @param [options.attr] - 矢量数据的 属性信息，可以任意附加属性。
 * @param [options.label] - 使用 文本 对象，及其对应的样式
 * @param [options.billboard] - 使用 图标 对象，及其对应的样式
 * @param [options.point] - 使用 图标 对象，及其对应的样式
 * @param [options.model] - 使用 gltf模型 对象，及其对应的样式
 * @param [options.circle] - 使用 圆 对象，及其对应的样式
 * @param [options.coneTrack] - 使用 圆锥体 对象，及其对应的样式
 * @param [options.path] - 使用 path轨迹 对象，及其对应的样式
 * @param [options.polyline] - 使用 polyline路线 对象，及其对应的样式 <br/>
 * //  * @param {number} [options.polyline.maxDistance] 设置保留的轨迹长度值（单位：米），不设置时保留所有的轨迹
 * //  * @param {Boolean} [options.polyline.showAll] 是否一直显示展示所有坐标
 * @param [options.wall] - 使用 墙体 对象，及其对应的样式 <br/>
 * //  * @param {number} [options.wall.maxDistance] 设置保留的轨迹长度值（单位：米），不设置时保留所有的轨迹<br/>
 * //  * @param {number} [options.wall.surface] 设置墙底部高度是否贴地
 * @param [options.frameRate = 1] - 多少帧获取一次数据。用于控制效率，如果卡顿就把该数值调大一些。
 * @param [options.forwardExtrapolationType = Cesium.ExtrapolationType.HOLD] - 在任何可用坐标之后一次请求值时要执行的推断类型，默认为最后一个坐标位置。
 * @param [options.backwardExtrapolationType = Cesium.ExtrapolationType.HOLD] - 在任何可用坐标之前一次请求值时要执行的推断类型，默认为第一个坐标位置。
 * @param [options.fixedFrameTransform = Cesium.Transforms.eastNorthUpToFixedFrame] - 参考系
 * @param [options.orientation] - 自定义实体方向, 默认内部根据轨迹自动的
 * @param [options.clampToTileset] - 是否进行贴模型。
 * @param [options.frameRateHeight = 30] - clampToTileset：true时，多少帧计算一次贴模型高度
 * @param [options.objectsToExclude] - clampToTileset：true时，排除的不进行贴模型计算的模型对象，可以是： primitives, entities, 或 3D Tiles features
 * @param [options.camera] - 视角模式设置，包括：
 * @param [options.camera.type] - 视角模式类型，包括：'':无、'gs':跟随视角、'dy':第一视角、'sd':上帝视角
 * @param [options.camera.radius] - 'gs'跟随视角时的 初始俯仰距离值（单位：米）
 * @param [options.camera.heading] - 'gs'跟随视角时的 初始方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.camera.pitch] - 'gs'跟随视角时的 初始俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.camera.followedX = 50] - 'dy'锁定第一视角时，距离运动点的距离（后方）
 * @param [options.camera.followedZ = 10] - 'dy'锁定第一视角或'sd'上帝视角时，距离运动点的高度（上方）
 * @param [options.camera.offsetX = 0] - 'dy'锁定第一视角时，锁定点的本身的X轴方向（前后）偏移值
 * @param [options.camera.offsetY = 0] - 'dy'锁定第一视角时，锁定点的本身的Y轴方向（横向）偏移值
 * @param [options.camera.offsetZ = 0] - 'dy'锁定第一视角时，锁定点的本身的Z轴方向（高度）偏移值
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class FixedRoute extends Route {
    constructor(options: {
        positions: any[][] | LngLatPoint[];
        offsetHeight?: number;
        interpolation?: boolean;
        interpolationAlgorithm?: number;
        interpolationDegree?: Cesium.InterpolationAlgorithm | number;
        showStop?: boolean;
        speed: any[][] | number;
        timeField?: string;
        startTime?: string | Date | Cesium.JulianDate;
        pauseTime?: number | ((...params: any[]) => any);
        autoStop?: boolean;
        clockLoop?: boolean;
        clockRange?: Cesium.ClockRange;
        attr?: any;
        label?: LabelPrimitive.StyleOptions | any;
        billboard?: BillboardEntity.StyleOptions | any;
        point?: PointPrimitive.StyleOptions | any;
        model?: ModelPrimitive.StyleOptions | any;
        circle?: CircleEntity.StyleOptions | any;
        coneTrack?: ConeTrack.StyleOptions | any;
        path?: PathEntity.StyleOptions | any;
        polyline?: PolylineEntity.StyleOptions | any;
        wall?: WallEntity.StyleOptions | any;
        frameRate?: number;
        forwardExtrapolationType?: Cesium.ExtrapolationType;
        backwardExtrapolationType?: Cesium.ExtrapolationType;
        fixedFrameTransform?: Cesium.Transforms.LocalFrameToFixedFrame;
        orientation?: Cesium.Property | any;
        clampToTileset?: boolean;
        frameRateHeight?: number;
        objectsToExclude?: any;
        camera?: {
            type?: string;
            radius?: number;
            heading?: number;
            pitch?: number;
            followedX?: number;
            followedZ?: number;
            offsetX?: number;
            offsetY?: number;
            offsetZ?: number;
        };
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 开始时间
     */
    readonly startTime: Cesium.JulianDate;
    /**
     * 结束时间
     */
    readonly stopTime: Cesium.JulianDate;
    /**
     * 位置坐标数组
     */
    points: any[][] | LngLatPoint[];
    /**
     * 位置坐标数组, 读取时是Cesium.Cartesian3[]，赋值可以是LngLatPoint[]等
     */
    positions: any[][] | LngLatPoint[] | Cesium.Cartesian3[];
    /**
     * 是否已启动
     */
    readonly isStart: boolean;
    /**
     * 当前实时信息
     */
    readonly info: any;
    /**
     * 开始飞行漫游
     * @returns 无
     */
    start(): void;
    /**
     * 停止飞行漫游
     * @returns 无
     */
    stop(): void;
    /**
     * 计算贴地线
     * @param [options] - 控制参数
     * @param [options.splitNum = 100] - 插值数，等比分割的个数
     * @param [options.minDistance] - 插值最小间隔(单位：米)，优先级高于splitNum
     * @param [options.has3dtiles = auto] - 是否在3dtiles模型上分析（模型分析较慢，按需开启）,默认内部根据点的位置自动判断（但可能不准）
     * @param [options.objectsToExclude] - 贴模型分析时，排除的不进行贴模型计算的模型对象，可以是： primitives, entities, 或 3D Tiles features
     * @param [options.offset = 0] - 可以按需增加偏移高度（单位：米），便于可视
     * @returns 异步计算完成的Promise
     */
    autoSurfaceHeight(options?: {
        splitNum?: number;
        minDistance?: number;
        has3dtiles?: boolean;
        objectsToExclude?: any;
        offset?: number;
    }): Promise<any>;
    /**
     * 获取剖面数据
     * @param [options] - 控制参数
     * @param [options.splitNum = 100] - 插值数，等比分割的个数
     * @param [options.minDistance] - 插值最小间隔(单位：米)，优先级高于splitNum
     * @param [options.has3dtiles = auto] - 是否在3dtiles模型上分析（模型分析较慢，按需开启）,默认内部根据点的位置自动判断（但可能不准）
     * @param [options.objectsToExclude] - 贴模型分析时，排除的不进行贴模型计算的模型对象，可以是： primitives, entities, 或 3D Tiles features
     * @param [options.offset = 0] - 可以按需增加偏移高度（单位：米），便于可视
     * @returns 异步计算完成的Promise
     */
    getTerrainHeight(options?: {
        splitNum?: number;
        minDistance?: number;
        has3dtiles?: boolean;
        objectsToExclude?: any;
        offset?: number;
    }): Promise<any>;
}

declare namespace ParticleSystem {
    /**
     * 粒子效果 支持的样式信息
     * @property [image] - 粒子的图片URL
     * @property [emitter = new Cesium.CircleEmitter(1.0)] - 粒子发射器
     * @property [emissionRate = 100] - 发射速率 （单位：次/秒）
     * @property [heading = 0] - 方向角 （度数值，0-360度）
     * @property [pitch = 0] - 俯仰角（度数值，0-360度）
     * @property [roll = 0] - 翻滚角（度数值，0-360度）
     * @property [gravity] - 重力因子，会修改速度矢量以改变方向或速度（基于物理的效果）
     * @property [transX = 0] - 粒子在X轴方向上的偏离距离（单位：米）
     * @property [transY = 0] - 粒子在Y轴方向上的偏离距离（单位：米）
     * @property [transZ = 0] - 粒子离地高度（单位：米），粒子在Z轴方向上的偏离距离
     * @property [particleSize = 25] - 粒子大小(px)，粒子图片的Size大小（单位：像素）
     * @property [imageSize] - 粒子图片的Size大小,可以设置高宽不同（单位：像素），与particleSize二选一
     * @property [minimumImageSize] - 最小大小，设置最小边界，宽度和高度，在此之上随机缩放粒子图像的像素尺寸
     * @property [maximumImageSize] - 最大大小，设置最大边界，宽度和高度，在其以下随机缩放粒子图像的像素尺寸
     * @property [scale] - 比例，设置在粒子生命周期内应用于粒子图像的比例
     * @property [startScale = 2.0] - 开始比例，粒子在出生时的比例（单位：相对于imageSize大小的倍数）
     * @property [endScale = 4.0] - 结束比例，粒子在死亡时的比例（单位：相对于imageSize大小的倍数）
     * @property [color = Color.WHITE] - 颜色，设置一个粒子在其生命周期内的颜色
     * @property [startColor] - 开始颜色，粒子出生时的颜色
     * @property [endColor] - 结束颜色，当粒子死亡时的颜色
     * @property [speed] - 速度(米/秒)， 如果设置，则使用此值覆盖最小速度和最大速度输入
     * @property [minimumSpeed = 1.0] - 最小速度，设定以每秒米为单位的最小范围，超过这个范围粒子的实际速度将被随机选择
     * @property [maximumSpeed = 2.0] - 最大速度(米/秒)，设定以每秒米为单位的最大范围，低于这个范围粒子的实际速度将被随机选择
     * @property [particleLife = 5.0] - 寿命时间(秒), 如果设置了这个值，将覆盖minimumParticleLife和maximumParticleLife输入
     * @property [minimumParticleLife = 3] - 最小寿命时间, 设定一个粒子生命可能持续时间的最小界限(以秒为单位)，在此之上一个粒子的实际生命将被随机选择
     * @property [maximumParticleLife = 6] - 最大寿命时间, 设置一个粒子生命可能持续时间的最大界限(以秒为单位)，低于这个时间的粒子的实际生命将被随机选择
     * @property [mass = 1.0] - 质量(千克)，设定粒子的最小和最大质量
     * @property [minimumMass] - 最小质量，设定粒子质量的最小边界，一个粒子的实际质量将被选为高于这个值的随机数量
     * @property [maximumMass] - 最大质量，设置粒子的最大质量，一个粒子的实际质量将被选为低于这个值的随机数量
     * @property [loop = true] - 粒子系统完成后是否应该循环爆发
     * @property [bursts] - 周期性发射粒子爆发数组
     * @property [sizeInMeters] - 大小模式，设置粒子的大小是米还是像素。true以米为单位设置粒子的大小;否则，大小以像素为单位。
     * @property [lifetime = number.MAX_VALUE] - 释放粒子的时间(秒)
     * @property [maxHeight] - 最大视角高度（单位：米），超出该高度不显示粒子
     */
    type StyleOptions = any | {
        image?: string;
        emitter?: Cesium.ParticleEmitter;
        emissionRate?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        gravity?: number;
        transX?: number;
        transY?: number;
        transZ?: number;
        particleSize?: number;
        imageSize?: Cesium.Cartesian2;
        minimumImageSize?: Cesium.Cartesian2;
        maximumImageSize?: Cesium.Cartesian2;
        scale?: number;
        startScale?: number;
        endScale?: number;
        color?: Cesium.Color;
        startColor?: Cesium.Color;
        endColor?: Cesium.Color;
        speed?: number;
        minimumSpeed?: number;
        maximumSpeed?: number;
        particleLife?: number;
        minimumParticleLife?: number;
        maximumParticleLife?: number;
        mass?: number;
        minimumMass?: number;
        maximumMass?: number;
        loop?: boolean;
        bursts?: Cesium.ParticleBurst[];
        sizeInMeters?: boolean;
        lifetime?: number;
        maxHeight?: number;
    };
}

/**
 * 粒子效果 对象，该对象暂不支持鼠标交互和拾取
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param [options.modelMatrix] - 粒子系统模型矩阵, 将图元(所有几何实例)从模型转换为世界坐标的4x4变换矩阵,可以替代position。
 * @param [options.emitterModelMatrix] - 发射器矩阵, 用于在粒子系统本地坐标系中转换粒子系统发射器
 * @param [options.updateCallback] - 每一帧调用一个回调函数来更新一个粒子。
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 */
declare class ParticleSystem extends BasePointPrimitive {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | number[];
        modelMatrix?: Cesium.Matrix4 | ((...params: any[]) => any);
        emitterModelMatrix?: Cesium.Matrix4 | ((...params: any[]) => any);
        updateCallback?: (...params: any[]) => any;
        style: ParticleSystem.StyleOptions | any;
        attr?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 最大视角高度（单位：米），超出该高度不显示粒子效果
     */
    maxHeight: number;
    /**
     * 重力因子，会修改速度矢量以改变方向或速度（基于物理的效果）
     */
    gravity: number;
    /**
     * X轴方向上的偏离距离（单位：米）
     */
    transX: number;
    /**
     * Y轴方向上的偏离距离（单位：米）
     */
    transY: number;
    /**
     * 离地高度，Z轴方向上的偏离距离（单位：米）
     */
    transZ: number;
    /**
     * 粒子图片的Size大小（单位：像素）
     */
    particleSize: number;
    /**
     * 是否可以调整透明度
     */
    readonly hasOpacity: boolean;
    /**
     * 动态位置坐标
     */
    property: Cesium.SampledPositionProperty | Cesium.CallbackProperty;
}

declare namespace Route {
    /**
     * 当前类支持的{@link EventType}事件类型
     * @example
     * //绑定监听事件
     * graphic.on(mars3d.EventType.change, function (event) {
     *   console.log('坐标发生了变化', event)
     * })
     * @property change - 变化了
     * @property endItem - 完成了一个传入坐标点的漫游
     * @property end - 完成了当前所有点的漫游
     * @property add - 添加对象
     * @property remove - 移除对象
     * @property show - 显示了对象
     * @property hide - 隐藏了对象
     * @property popupOpen - popup弹窗打开后
     * @property popupClose - popup弹窗关闭
     * @property tooltipOpen - tooltip弹窗打开后
     * @property tooltipClose - tooltip弹窗关闭
     * @property contextMenuOpen - 右键菜单 打开后
     * @property contextMenuClose - 右键菜单 关闭
     * @property contextMenuClick - 右键菜单 单击某一项后
     * @property highlightOpen - highlight高亮后
     * @property highlightClose - highlight关闭后
     * @property click - 左键单击 鼠标事件
     * @property rightClick - 右键单击 鼠标事件
     * @property mouseOver - 鼠标移入 鼠标事件
     * @property mouseOut - 鼠标移出 鼠标事件
     */
    type EventType = {
        change: string;
        endItem: string;
        end: string;
        add: string;
        remove: string;
        show: string;
        hide: string;
        popupOpen: string;
        popupClose: string;
        tooltipOpen: string;
        tooltipClose: string;
        contextMenuOpen: string;
        contextMenuClose: string;
        contextMenuClick: string;
        highlightOpen: string;
        highlightClose: string;
        click: string;
        rightClick: string;
        mouseOver: string;
        mouseOut: string;
    };
}

/**
 * 动态实时轨迹路线，是由多个其他类型Graphic组合而成，方便一起控制和管理。<br />
 * 使用 {@link Route#addDynamicPosition} 方法来添加动画轨迹点位置。
 * 如果只是显示单个模型等对象，建议直接使用对应的矢量对象，效率更高。
 * @param options - 参数对象，包括以下：
 * @param [options.position] - 自定义外部构造好的传入动态坐标位置（含时序的点集合）
 * @param [options.attr] - 矢量数据的 属性信息，可以任意附加属性。
 * @param [options.label] - 使用 文本 对象，及其对应的样式
 * @param [options.billboard] - 使用 图标 对象，及其对应的样式
 * @param [options.point] - 使用 图标 对象，及其对应的样式
 * @param [options.model] - 使用 gltf模型 对象，及其对应的样式
 * @param [options.circle] - 使用 圆 对象，及其对应的样式
 * @param [options.coneTrack] - 使用 圆锥体 对象，及其对应的样式
 * @param [options.path] - 使用 path轨迹 对象，及其对应的样式
 * @param [options.polyline] - 使用 polyline路线 对象，及其对应的样式 <br/>
 * //  * @param {number} [options.polyline.maxDistance] 设置保留的轨迹长度值（单位：米），不设置时保留所有的轨迹
 * @param [options.wall] - 使用 墙体 对象，及其对应的样式 <br/>
 * //  * @param {number} [options.wall.maxDistance] 设置保留的轨迹长度值（单位：米），不设置时保留所有的轨迹<br/>
 * //  * @param {number} [options.wall.surface] 设置墙底部高度是否贴地
 * @param [options.frameRate = 1] - 多少帧获取一次数据。用于控制效率，如果卡顿就把该数值调大一些。
 * @param [options.maxCacheCount = 100] - 保留的坐标点数量, 当为-1时保留所有
 * @param [options.forwardExtrapolationType = Cesium.ExtrapolationType.HOLD] - 在任何可用坐标之后一次请求值时要执行的推断类型，默认为最后一个坐标位置。
 * @param [options.backwardExtrapolationType = Cesium.ExtrapolationType.HOLD] - 在任何可用坐标之前一次请求值时要执行的推断类型，默认为第一个坐标位置。
 * @param [options.fixedFrameTransform = Cesium.Transforms.eastNorthUpToFixedFrame] - 参考系
 * @param [options.orientation] - 自定义实体方向, 默认内部根据轨迹自动的
 * @param [options.clampToTileset] - 是否进行贴模型。
 * @param [options.frameRateHeight = 30] - clampToTileset：true时，多少帧计算一次贴模型高度
 * @param [options.objectsToExclude] - clampToTileset：true时，排除的不进行贴模型计算的模型对象，可以是： primitives, entities, 或 3D Tiles features
 * @param [options.maxHeight] - 限定最高高度，避免计算异常数据
 * @param [options.minHeight] - 限定最低高度，避免计算异常数据
 * @param [options.camera] - 视角模式设置，包括：
 * @param [options.camera.type] - 视角模式类型，包括：'':无、'gs':跟随视角、'dy':第一视角、'sd':上帝视角
 * @param [options.camera.radius] - 'gs'跟随视角时的 初始俯仰距离值（单位：米）
 * @param [options.camera.heading] - 'gs'跟随视角时的 初始方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.camera.pitch] - 'gs'跟随视角时的 初始俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.camera.followedX = 50] - 'dy'锁定第一视角时，距离运动点的距离（后方）
 * @param [options.camera.followedZ = 10] - 'dy'锁定第一视角或'sd'上帝视角时，距离运动点的高度（上方）
 * @param [options.camera.offsetX = 0] - 'dy'锁定第一视角时，锁定点的本身的X轴方向（前后）偏移值
 * @param [options.camera.offsetY = 0] - 'dy'锁定第一视角时，锁定点的本身的Y轴方向（横向）偏移值
 * @param [options.camera.offsetZ = 0] - 'dy'锁定第一视角时，锁定点的本身的Z轴方向（高度）偏移值
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class Route extends BasePointPrimitive {
    constructor(options: {
        position?: Cesium.SampledPositionProperty;
        attr?: any;
        label?: LabelPrimitive.StyleOptions | any;
        billboard?: BillboardEntity.StyleOptions | any;
        point?: PointPrimitive.StyleOptions | any;
        model?: ModelPrimitive.StyleOptions | any;
        circle?: CircleEntity.StyleOptions | any;
        coneTrack?: ConeTrack.StyleOptions | any;
        path?: PathEntity.StyleOptions | any;
        polyline?: PolylineEntity.StyleOptions | any;
        wall?: WallEntity.StyleOptions | any;
        frameRate?: number;
        maxCacheCount?: number;
        forwardExtrapolationType?: Cesium.ExtrapolationType;
        backwardExtrapolationType?: Cesium.ExtrapolationType;
        fixedFrameTransform?: Cesium.Transforms.LocalFrameToFixedFrame;
        orientation?: Cesium.Property | any;
        clampToTileset?: boolean;
        frameRateHeight?: number;
        objectsToExclude?: any;
        maxHeight?: number;
        minHeight?: number;
        camera?: {
            type?: string;
            radius?: number;
            heading?: number;
            pitch?: number;
            followedX?: number;
            followedZ?: number;
            offsetX?: number;
            offsetY?: number;
            offsetZ?: number;
        };
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 时序动态坐标对象
     */
    readonly property: Cesium.SampledPositionProperty;
    /**
     * 文本 子对象
     */
    label: LabelPrimitive | any;
    /**
     * 图标 子对象
     */
    billboard: BillboardPrimitive;
    /**
     * 像素点 子对象
     */
    point: PointPrimitive | any;
    /**
     * 模型 子对象
     */
    model: ModelPrimitive;
    /**
     * 圆 子对象
     */
    circle: CircleEntity;
    /**
     * 圆锥体 子对象
     */
    coneTrack: ConeTrack;
    /**
     * path路径 子对象
     */
    path: PathEntity;
    /**
     * 路线 子对象
     */
    polyline: PolylineEntity;
    /**
     * 墙体 子对象
     */
    wall: WallEntity;
    /**
     * 将图元(所有几何实例)从模型转换为世界坐标的4x4变换矩阵。
     * <br/>提示：父类属性，非所有子类都具备
     */
    readonly modelMatrix: Cesium.Matrix4;
    /**
     * 求当前位置射线与地球相交点
     */
    readonly groundPosition: Cesium.Cartesian3;
    /**
     * 开始时间
     */
    readonly startTime: Cesium.JulianDate;
    /**
     * 结束时间
     */
    readonly stopTime: Cesium.JulianDate;
    /**
     * 当前飞行过的positions轨迹点数组的index顺序
     */
    readonly currIndex: number;
    /**
     * 倍速，构造完成的对象，可以调用此属性调整速度。
     */
    multiplier: number;
    /**
     * 是否暂停状态 【针对全局时钟的，即 map.clock.shouldAnimate】
     */
    isPause: boolean;
    /**
     * 贴模型分析时，排除的不进行贴模型计算的模型对象，默认是当前本身，可以是： primitives, entities 等
     */
    objectsToExclude: any | undefined;
    /**
     * 遍历所有矢量数据并将其作为参数传递给回调函数
     * @param method - 回调方法
     * @param [context] - 侦听器的上下文(this关键字将指向的对象)。
     * @returns 当前对象本身,可以链式调用
     */
    eachChildGraphic(method: (...params: any[]) => any, context?: any): Route;
    /**
     * 获取当前矩阵
     * @param offest - 偏移值
     * @param offest.x - X轴方向偏移值,单位：米
     * @param offest.y - Y轴方向偏移值,单位：米
     * @param offest.z - Z轴方向偏移值,单位：米
     * @returns 当前矩阵
     */
    computeModelMatrix(offest: {
        x: number;
        y: number;
        z: number;
    }): Cesium.Matrix4;
    /**
     * 获取数据的矩形边界
     * @param [options] - 控制参数
     * @param [options.isFormat = false] - 是否格式化，格式化时示例： { xmin: 73.16895, xmax: 134.86816, ymin: 12.2023, ymax: 54.11485 }
     * @returns isFormat：true时，返回格式化对象，isFormat：false时返回Cesium.Rectangle对象
     */
    getRectangle(options?: {
        isFormat?: boolean;
    }): Cesium.Rectangle | any;
    /**
     * 位置坐标(数组对象)，示例 [ [123.123456,32.654321,198.7], [111.123456,22.654321,50.7] ]
     * @param noAlt - true时不导出高度值
     * @returns 位置坐标(数组对象)
     */
    getCoordinates(noAlt: boolean): any[][];
    /**
     * 定位至当前时间所在的位置 (非相机位置)
     * @param [options = {}] - 具有以下属性的对象:
     * @param [options.radius] - 相机距离目标点的距离（单位：米）
     * @param [options.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
     * @param [options.pitch] - 俯仰角度值，绕纬度线旋转角度, 0至360
     * @param [options.roll] - 翻滚角度值，绕经度线旋转角度, 0至360
     * @param [options.duration] - 飞行持续时间（秒）。如果省略，内部会根据飞行距离计算出理想的飞行时间。
     * @param [options.endTransform] - 表示飞行完成后摄像机将位于的参考帧的变换矩阵。
     * @param [options.maximumHeight] - 飞行高峰时的最大高度。
     * @param [options.pitchAdjustHeight] - 如果相机的飞行角度高于该值，请在飞行过程中调整俯仰角度以向下看，并将地球保持在视口中。
     * @param [options.flyOverLongitude] - 地球上2点之间总是有两种方式。此选项会迫使相机选择战斗方向以在该经度上飞行。
     * @param [options.flyOverLongitudeWeight] - 仅在通过flyOverLongitude指定的lon上空飞行，只要该方式的时间不超过flyOverLongitudeWeight的短途时间。
     * @param [options.easingFunction] - 控制在飞行过程中如何插值时间。
     * @returns 无
     */
    flyToPoint(options?: {
        radius?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        duration?: number;
        endTransform?: Cesium.Matrix4;
        maximumHeight?: number;
        pitchAdjustHeight?: number;
        flyOverLongitude?: number;
        flyOverLongitudeWeight?: number;
        easingFunction?: Cesium.EasingFunction.Callback;
    }): void;
    /**
     * 清除最后一次的相机跟踪
     * @returns 无
     */
    static clearLastCamera(): void;
    /**
     * 更新视角模式,传入空值代表取消。
     * @param [cameraOptions] - 参数，包括：
     * @param [cameraOptions.type] - 视角模式类型，包括：'':无、'gs':跟随视角、'dy':第一视角、'sd':上帝视角
     * @param [cameraOptions.radius] - 'gs'跟随视角时的 初始俯仰距离值（单位：米）
     * @param [cameraOptions.heading] - 'gs'跟随视角时的 初始方向角度值，绕垂直于地心的轴旋转角度, 0至360
     * @param [cameraOptions.pitch] - 'gs'跟随视角时的 初始俯仰角度值，绕纬度线旋转角度, 0至360 *
     * @param [cameraOptions.followedX = 50] - 'dy'锁定第一视角时，距离运动点的距离（后方）
     * @param [cameraOptions.followedZ = 10] - 'dy'锁定第一视角或'sd'上帝视角时，距离运动点的高度（上方）
     * @returns 无
     */
    setCameraOptions(cameraOptions?: {
        type?: string;
        radius?: number;
        heading?: number;
        pitch?: number;
        followedX?: number;
        followedZ?: number;
    }): void;
    /**
     * 暂停 【针对全局时钟的，即 map.clock.shouldAnimate】
     * @returns 无
     */
    pause(): void;
    /**
     * 继续 【针对全局时钟的，即 map.clock.shouldAnimate】
     * @returns 无
     */
    proceed(): void;
    /**
     * 异步计算更新坐标高度进行贴地(或贴模型)，内部自动调用{@link PointUtil#getSurfaceHeight}方法处理。
     * @param [options = {}] - 参数对象:
     * @param [options.has3dtiles = auto] - 是否在3dtiles模型上分析（模型分析较慢，按需开启）,默认内部根据点的位置自动判断（但可能不准）
     * @param [options.objectsToExclude] - 贴模型分析时，排除的不进行贴模型计算的模型对象，可以是： primitives, entities, 或 3D Tiles features
     * @returns 异步计算完成的Promise
     */
    autoSurfaceHeight(options?: {
        has3dtiles?: boolean;
        objectsToExclude?: any;
    }): Promise<any>;
}

declare namespace Tetrahedron {
    /**
     * 四面体（顶部正方形+倒立的三角椎体） 支持的样式信息
     * @property [width = 20] - 顶部大小，顶部正方形长宽，单位：米
     * @property [height = 30] - 椎体高度，倒立的三角椎体部分高度，单位：米
     * @property [color = new Cesium.Color(0.8, 0.8, 0, 0.8)] - 颜色
     * @property [animation = true] - 是否动画
     * @property [moveHeight = 30] - 动画时，上下移动的单程总高度，单位：米
     * @property [moveDuration = 2] - 动画时，上下移动的单程总时长，单位：秒
     * @property [rotationAngle = 1] - 动画时，每帧旋转的角度值，单位：度
     * @property [translucent = false] - 当true时，几何图形将显示为半透明，因此{@link Cesium.PerInstanceColorAppearance#renderState}将启用alpha混合。
     * @property [closed = true] - 当true时，几何图形将被关闭，因此{@link Cesium.PerInstanceColorAppearance#renderState}启用了背面剔除。
     */
    type StyleOptions = any | {
        width?: number;
        height?: number;
        color?: string | Cesium.Color;
        animation?: boolean;
        moveHeight?: number;
        moveDuration?: number;
        rotationAngle?: number;
        translucent?: boolean;
        closed?: boolean;
    };
}

/**
 * 四面体（顶部正方形+倒立的三角椎体）
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param [options.modelMatrix] - 将图元(所有几何实例)从模型转换为世界坐标的4x4变换矩阵,可以替代position。
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性。
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 */
declare class Tetrahedron extends BasePointPrimitive {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | number[];
        modelMatrix?: Cesium.Matrix4;
        style: Tetrahedron.StyleOptions | any;
        attr?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 颜色
     */
    color: Cesium.Color;
    /**
     * 将图元(所有几何实例)从模型转换为世界坐标的4x4变换矩阵。
     */
    readonly modelMatrix: Cesium.Matrix4;
    /**
     * 设置透明度
     * @param value - 透明度
     * @returns 无
     */
    setOpacity(value: number): void;
}

declare namespace Video3D {
    /**
     * 视频融合（投射3D，贴物体表面） 支持的样式信息
     * @property [container] - video视频DOM容器
     * @property [url] - 视频的URL路径,与DOM二选一
     * @property [maskImage] - 遮盖融合的图片url地址，可以用于视频的四周羽化效果。
     * @property angle - 水平张角(度数)
     * @property angle2 - 垂直张角(度数)
     * @property [distance] - 投射最远距离，单位：米
     * @property [heading = 0] - 方向角 （度数值，0-360度）
     * @property [pitch = 0] - 俯仰角（度数值，0-360度）
     * @property [roll = 0] - 翻滚角（度数值，0-360度）
     * @property [opacity = 1.0] - 透明度 0.0 - 1.0
     * @property [hiddenAreaColor = new Cesium.Color(0, 0, 0, 0.5)] - 无视频投影区域的颜色
     * @property [showFrustum = false] - 是否显示视椎体框线
     */
    type StyleOptions = any | {
        container?: HTMLVideoElement;
        url?: string;
        maskImage?: string;
        angle: number;
        angle2: number;
        distance?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        opacity?: number;
        hiddenAreaColor?: Cesium.Color | string;
        showFrustum?: boolean;
    };
}

/**
 * 视频融合（投射3D，贴物体表面），该对象暂不支持鼠标交互和拾取
 * @param options - 参数对象，包括以下：
 * @param options.position - 相机位置
 * @param [options.targetPosition] - 目标视点位置,可以替代style中的相机heading\pitch\roll方向和distance距离参数
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 */
declare class Video3D extends ViewShed {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | number[];
        targetPosition?: LngLatPoint | Cesium.Cartesian3 | number[];
        style: Video3D.StyleOptions | any;
        attr?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 对应的视频DOM元素
     */
    readonly container: HTMLVideoElement;
    /**
     * 最远投射距离，单位：米
     */
    distance: number;
    /**
     * 暂停或播放 视频
     */
    play: boolean;
}

declare namespace ViewShed {
    /**
     * 可视域矢量对象 支持的样式信息
     * @property [angle = 60] - 水平张角(度数)，取值范围 0-60
     * @property [angle2 = 45] - 垂直张角(度数)，取值范围 0-45
     * @property [distance] - 投射最远距离，单位：米
     * @property [heading = 0] - 方向角 （度数值，0-360度）
     * @property [pitch = 0] - 俯仰角（度数值，0-360度）
     * @property [roll = 0] - 翻滚角（度数值，0-360度）
     * @property [opacity = 0.6] - 透明度 0.0 - 1.0
     * @property [visibleAreaColor = new Cesium.Color(0, 1, 0)] - 可视区域颜色
     * @property [hiddenAreaColor = new Cesium.Color(1, 0, 0)] - 不可视区域颜色
     * @property [addHeight] - 在坐标点增加的高度值，规避遮挡，效果更友好
     * @property [showFrustum = false] - 是否显示视椎体框线
     */
    type StyleOptions = any | {
        angle?: number;
        angle2?: number;
        distance?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        opacity?: number;
        visibleAreaColor?: Cesium.Color | string;
        hiddenAreaColor?: Cesium.Color | string;
        addHeight?: number;
        showFrustum?: boolean;
    };
}

/**
 * 可视域 矢量对象，该对象暂不支持鼠标交互和拾取
 * @param options - 参数对象，包括以下：
 * @param options.position - 相机位置
 * @param [options.targetPosition] - 目标视点位置,可以替代style中的相机heading\pitch\roll方向和distance距离参数
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.terrain = true] - 是否启用地形的阴影效果，在平原地区或无地形时可以关闭
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 */
declare class ViewShed extends BasePointPrimitive {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | number[];
        targetPosition?: LngLatPoint | Cesium.Cartesian3 | number[];
        style: ViewShed.StyleOptions | any;
        attr?: any;
        terrain?: boolean;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 水平张角，半场角度
     */
    angle: number;
    /**
     * 垂直张角，半场角度
     */
    angle2: number;
    /**
     * 可视区域颜色
     */
    visibleAreaColor: Cesium.Color;
    /**
     * 不可视区域颜色
     */
    hiddenAreaColor: Cesium.Color;
    /**
     * 混合系数0-1
     */
    opacity: number;
    /**
     * 是否显示视椎体框线
     */
    showFrustum: boolean;
    /**
     * 距离，单位：米
     */
    distance: number;
    /**
     * 场景的ShadowMap阴影图
     */
    readonly shadowMap: Cesium.ShadowMap;
    /**
     * 相机对象
     */
    readonly camera: Cesium.Camera;
    /**
     * 目标点位置(笛卡尔坐标)
     */
    targetPosition: Cesium.Cartesian3 | LngLatPoint;
    /**
     * 定位至相机的第一视角
     * @returns 无
     */
    setView(): void;
    /**
     * 设置透明度
     * @param value - 透明度
     * @returns 无
     */
    setOpacity(value: number): void;
    /**
     * 开始绘制矢量数据，绘制的数据会加载在layer图层。
     * @param layer - 图层
     * @returns 无
     */
    startDraw(layer: GraphicLayer): void;
    /**
     * 停止绘制
     * @returns 无
     */
    stopDraw(): void;
    /**
     * 位置坐标 （笛卡尔坐标）, 赋值时可以传入LatLngPoint对象
     */
    position: Cesium.Cartesian3 | LngLatPoint;
}

declare namespace DivBoderLabel {
    /**
     * 动态边框文本 支持的样式信息
     * @property text - 文本内容
     * @property [font_size = 15] - 字体大小
     * @property [font_family = "楷体"] - 字体 ,可选项：微软雅黑,宋体,楷体,隶书,黑体 等
     * @property [color = "#ccc"] - 文本CSS颜色
     * @property [boderColor = "rgb(21, 209, 242)"] - 边框CSS颜色
     * @property [width] - 面板宽度（px像素值），默认根据文本内容和字体大小自动计算
     * @property [height] - 面板高度（px像素值），默认根据文本内容和字体大小自动计算
     * @property [horizontalOrigin] - 横向方向的定位
     * @property [verticalOrigin] - 垂直方向的定位
     * @property [offsetX] - 用于非规则div时，横向偏移的px像素值
     * @property [offsetY] - 用于非规则div时，垂直方向偏移的px像素值
     * @property [scaleByDistance = false] - 是否按视距缩放
     * @property [scaleByDistance_far = 1000000] - 上限
     * @property [scaleByDistance_farValue = 0.1] - 比例值
     * @property [scaleByDistance_near = 1000] - 下限
     * @property [scaleByDistance_nearValue = 1] - 比例值
     * @property [distanceDisplayCondition = false] - 是否按视距显示
     * @property [distanceDisplayCondition_far = 10000] - 最大距离
     * @property [distanceDisplayCondition_near = 0] - 最小距离
     * @property [clampToGround = false] - 是否贴地
     * @property [heightReference = Cesium.HeightReference.NONE] - 指定高度相对于什么的属性。
     * @property [css_transform_origin = 'left bottom 0'] - DIV的 transform-origin css值
     * @property [timeRender] - 是否实时刷新全部HTML，此时需要绑定html需传入回调方法。
     * @property [setHeight] - 指定坐标高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [addHeight] - 在现有坐标基础上增加的高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [templateEmptyStr = ""] - 当text存在模版字符串配置时，空值时显示的内容
     */
    type StyleOptions = any | {
        text: string;
        font_size?: number;
        font_family?: string;
        color?: string;
        boderColor?: string;
        width?: number;
        height?: number;
        horizontalOrigin?: Cesium.HorizontalOrigin;
        verticalOrigin?: Cesium.VerticalOrigin;
        offsetX?: number;
        offsetY?: number;
        scaleByDistance?: boolean;
        scaleByDistance_far?: number;
        scaleByDistance_farValue?: number;
        scaleByDistance_near?: number;
        scaleByDistance_nearValue?: number;
        distanceDisplayCondition?: boolean;
        distanceDisplayCondition_far?: number;
        distanceDisplayCondition_near?: number;
        clampToGround?: boolean;
        heightReference?: Cesium.HeightReference;
        css_transform_origin?: string;
        timeRender?: boolean;
        setHeight?: number | string;
        addHeight?: number | string;
        templateEmptyStr?: string;
    };
}

/**
 * 动态边框文本 DIV点
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.testPoint] - 测试点 的对应样式 ，可以进行用于比较测试div的位置，方便调试CSS。
 * @param [options.pointerEvents = true] - DIV是否可以鼠标交互，为false时可以穿透操作及缩放地图，但无法进行鼠标交互及触发相关事件。
 * @param [options.hasZIndex = false] - 是否自动调整DIV的层级顺序。
 * @param [options.zIndex = "auto"] - 指定固定的zIndex层级属性(当hasZIndex为true时无效)
 * @param [options.depthTest = true] - 是否打开深度判断（true时判断是否在球背面）
 * @param [options.hasCache = true] - 是否启用缓存机制，如为true，在视角未变化时不重新渲染。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 */
declare class DivBoderLabel extends DivGraphic {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | number[];
        style: DivBoderLabel.StyleOptions | any;
        attr?: any;
        hasEdit?: boolean;
        testPoint?: PointEntity.StyleOptions | any;
        pointerEvents?: boolean;
        hasZIndex?: boolean;
        zIndex?: number | string;
        depthTest?: boolean;
        hasCache?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 设置或获取当前对象对应的Html
     */
    html: string | HTMLDivElement;
}

declare namespace DivGraphic {
    /**
     * DIV点 支持的样式信息
     * @property html - Html文本
     * @property [horizontalOrigin] - 横向方向的定位
     * @property [verticalOrigin] - 垂直方向的定位
     * @property [offsetX] - 用于非规则div时，横向偏移的px像素值
     * @property [offsetY] - 用于非规则div时，垂直方向偏移的px像素值
     * @property [className] - 自定义的样式名
     * @property [editClassName = "mars3d-divGraphic-edit"] - 编辑状态下的的样式名
     * @property [scaleByDistance = false] - 是否按视距缩放
     * @property [scaleByDistance_far = 1000000] - 上限
     * @property [scaleByDistance_farValue = 0.1] - 比例值
     * @property [scaleByDistance_near = 1000] - 下限
     * @property [scaleByDistance_nearValue = 1] - 比例值
     * @property [distanceDisplayCondition = false] - 是否按视距显示
     * @property [distanceDisplayCondition_far = 10000] - 最大距离
     * @property [distanceDisplayCondition_near = 0] - 最小距离
     * @property [clampToGround = false] - 是否贴地
     * @property [heightReference = Cesium.HeightReference.NONE] - 指定高度相对于什么的属性。
     * @property [css_transform_origin = 'left bottom 0'] - DIV的 transform-origin css值
     * @property [timeRender] - 是否实时刷新全部HTML，此时需要绑定html需传入回调方法。
     * @property [templateEmptyStr = ''] - html中如果存在模版时，空值时显示的内容
     * @property [setHeight] - 指定坐标高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [addHeight] - 在现有坐标基础上增加的高度值（常用于图层中配置）,也支持字符串模版配置
     */
    type StyleOptions = any | {
        html: string | HTMLDivElement | ((...params: any[]) => any);
        horizontalOrigin?: Cesium.HorizontalOrigin;
        verticalOrigin?: Cesium.VerticalOrigin;
        offsetX?: number;
        offsetY?: number;
        className?: string;
        editClassName?: string;
        scaleByDistance?: boolean;
        scaleByDistance_far?: number;
        scaleByDistance_farValue?: number;
        scaleByDistance_near?: number;
        scaleByDistance_nearValue?: number;
        distanceDisplayCondition?: boolean;
        distanceDisplayCondition_far?: number;
        distanceDisplayCondition_near?: number;
        clampToGround?: boolean;
        heightReference?: Cesium.HeightReference;
        css_transform_origin?: string;
        timeRender?: boolean;
        templateEmptyStr?: string;
        setHeight?: number | string;
        addHeight?: number | string;
    };
}

/**
 * DIV点
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.testPoint] - 测试点 的对应样式 ，可以进行用于比较测试div的位置，方便调试CSS。
 * @param [options.pointerEvents = true] - DIV是否可以鼠标交互，为false时可以穿透操作及缩放地图，但无法进行鼠标交互及触发相关事件。
 * @param [options.hasZIndex = false] - 是否自动调整DIV的层级顺序。
 * @param [options.zIndex = "auto"] - 指定固定的zIndex层级属性(当hasZIndex为true时无效)
 * @param [options.depthTest = true] - 是否打开深度判断（true时判断是否在球背面）
 * @param [options.hasCache = true] - 是否启用缓存机制，如为true，在视角未变化时不重新渲染。
 * @param [options.parentContainer] - 控件加入的父容器，默认为当前图层所在的DOM layer.container
 * @param [options.frameRate = 1] - 多少帧获取更新一次DIV像素位置。用于控制效率，如果卡顿就把该数值调大一些。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 */
declare class DivGraphic extends BaseGraphic {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | number[];
        style: DivGraphic.StyleOptions | any;
        attr?: any;
        hasEdit?: boolean;
        testPoint?: PointEntity.StyleOptions | any;
        pointerEvents?: boolean;
        hasZIndex?: boolean;
        zIndex?: number | string;
        depthTest?: boolean;
        hasCache?: boolean;
        parentContainer?: HTMLElement;
        frameRate?: number;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 位置坐标 （笛卡尔坐标）, 赋值时可以传入LatLngPoint对象
     */
    position: Cesium.Cartesian3 | LngLatPoint;
    /**
     * 位置坐标 （笛卡尔坐标）
     */
    readonly point: LngLatPoint;
    /**
     * 位置坐标(数组对象)，示例[113.123456,31.123456,30.1]
     */
    readonly coordinate: any[];
    /**
     * 当前实时位置坐标（笛卡尔坐标）
     */
    readonly positionShow: Cesium.Cartesian3;
    /**
     * 是否显示测试点，可以进行用于比较测试div的位置，方便调试CSS。
     */
    testPoint: boolean;
    /**
     * DIV是否可以鼠标交互，为false时可以穿透操作及缩放地图，但无法进行鼠标交互及触发相关事件。
     */
    pointerEvents: boolean;
    /**
     * 是否正在编辑状态
     */
    readonly isEditing: boolean;
    /**
     * 编辑处理类
     */
    readonly EditClass: EditDivGraphic;
    /**
     * 是否打开深度判断（true时判断是否在球背面）
     */
    depthTest: boolean;
    /**
     * 是否贴地
     */
    clampToGround: boolean;
    /**
     * 父容器DOM对象
     */
    readonly parentContainer: HTMLElement;
    /**
     * 父容器DOM对象的ID
     */
    readonly parentContainerId: string;
    /**
     * 对应的DOM元素
     */
    readonly container: HTMLDivElement;
    /**
     * 对应的DOM元素的id
     */
    readonly containerId: string;
    /**
     * 设置或获取当前对象对应的Html
     */
    html: string | HTMLDivElement;
    /**
     * 设置透明度
     * @param value - 透明度
     * @returns 无
     */
    setOpacity(value: number): void;
    /**
     * 更新刷新下DIV的位置，可以外部主动驱动来更新。
     * @returns 当前对象本身，可以链式调用
     */
    updateDivPosition(): DivGraphic;
    /**
     * 隐藏当前对象
     * @returns 无
     */
    hide(): void;
    /**
     * 设置并添加动画轨迹位置，按“指定时间”运动到达“指定位置”。
     * @param point - 指定位置坐标
     * @param [currTime] - 指定时间, 默认为当前时间。当为String时，可以传入'2021-01-01 12:13:00'; 当为number时，可以传入当前时间延迟的秒数。
     * @returns 当前对象本身，可以链式调用
     */
    addDynamicPosition(point: LngLatPoint | Cesium.Cartesian3 | number[], currTime?: Cesium.JulianDate | Date | string | number): DivGraphic;
    /**
     * 位置坐标(数组对象)，示例[113.123456,31.123456,30.1]
     * @param noAlt - true时不导出高度值
     * @returns 位置坐标(数组对象)
     */
    getCoordinate(noAlt: boolean): any[];
    /**
     * 高亮对象。
     * @param [highlightStyle] - 高亮的样式，具体见各{@link GraphicType}矢量数据的style参数。
     * @param [closeLast = true] - 是否清除地图上上一次的高亮对象
     * @returns 无
     */
    openHighlight(highlightStyle?: any, closeLast?: boolean): void;
    /**
     * 清除已选中的高亮，原有style的配置项需要与highlightStyle配置有一一对应关系，否则无法清除
     * @returns 无
     */
    closeHighlight(): void;
    /**
     * 异步计算更新坐标高度进行贴地(或贴模型)，内部自动调用{@link PointUtil#getSurfaceHeight}方法处理。
     * @param [options = {}] - 参数对象:
     * @param [options.has3dtiles = auto] - 是否在3dtiles模型上分析（模型分析较慢，按需开启）,默认内部根据点的位置自动判断（但可能不准）
     * @param [options.objectsToExclude] - 贴模型分析时，排除的不进行贴模型计算的模型对象，可以是： primitives, entities, 或 3D Tiles features
     * @returns 异步计算完成的Promise
     */
    autoSurfaceHeight(options?: {
        has3dtiles?: boolean;
        objectsToExclude?: any;
    }): Promise<any>;
    /**
     * 获取数据的矩形边界
     * @param [options] - 控制参数
     * @param [options.isFormat = false] - 是否格式化，格式化时示例： { xmin: 73.16895, xmax: 134.86816, ymin: 12.2023, ymax: 54.11485 }
     * @returns isFormat：true时，返回格式化对象，isFormat：false时返回Cesium.Rectangle对象
     */
    getRectangle(options?: {
        isFormat?: boolean;
    }): Cesium.Rectangle | any;
    /**
     * 开始绘制创建矢量数据，绘制的数据会加载在layer图层。
     * @param layer - 图层
     * @returns 无
     */
    startDraw(layer: GraphicLayer): void;
    /**
     * 停止绘制，如有未完成的绘制会自动删除
     * @returns 无
     */
    stopDraw(): void;
    /**
     * 完成绘制和编辑，如有未完成的绘制会自动完成。
     * 在移动端需要调用此方法来类似PC端双击结束。
     * @returns 无
     */
    endDraw(): void;
    /**
     * 启用或禁用popup、tooltip、contextmenu内部控件，
     * 主要用于标绘时来关闭避免交互冲突。
     * @param value - 是否启用
     * @returns 无
     */
    enableControl(value: boolean): void;
    /**
     * 开始编辑对象
     * @returns 无
     */
    startEditing(): void;
    /**
     * 停止编辑，释放正在编辑的对象。
     * @returns 无
     */
    stopEditing(): void;
    /**
     * 中心点坐标（笛卡尔坐标）
     */
    readonly center: Cesium.Cartesian3 | Cesium.SampledPositionProperty;
}

declare namespace DivLightPoint {
    /**
     * 动画的扩散div点 支持的样式信息
     * @property [color = '#f33349'] - 点的颜色
     * @property [size = 10] - 高宽大小，单位:像素
     * @property [label] - 文本
     * @property [label.text] - 文本内容
     * @property [label.color] - 文本颜色
     * @property [label.templateEmptyStr = ""] - 当text存在模版字符串配置时，空值时显示的内容
     * @property [offsetX] - 用于非规则div时，横向偏移的px像素值
     * @property [offsetY] - 用于非规则div时，垂直方向偏移的px像素值
     * @property [scaleByDistance = false] - 是否按视距缩放
     * @property [scaleByDistance_far = 1000000] - 上限
     * @property [scaleByDistance_farValue = 0.1] - 比例值
     * @property [scaleByDistance_near = 1000] - 下限
     * @property [scaleByDistance_nearValue = 1] - 比例值
     * @property [distanceDisplayCondition = false] - 是否按视距显示
     * @property [distanceDisplayCondition_far = 10000] - 最大距离
     * @property [distanceDisplayCondition_near = 0] - 最小距离
     * @property [clampToGround = false] - 是否贴地
     * @property [heightReference = Cesium.HeightReference.NONE] - 指定高度相对于什么的属性。
     * @property [css_transform_origin = 'left bottom 0'] - DIV的 transform-origin css值
     * @property [timeRender] - 是否实时刷新全部HTML，此时需要绑定html需传入回调方法。
     * @property [setHeight] - 指定坐标高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [addHeight] - 在现有坐标基础上增加的高度值（常用于图层中配置）,也支持字符串模版配置
     */
    type StyleOptions = any | {
        color?: string;
        size?: number;
        label?: {
            text?: string;
            color?: string;
            templateEmptyStr?: string;
        };
        offsetX?: number;
        offsetY?: number;
        scaleByDistance?: boolean;
        scaleByDistance_far?: number;
        scaleByDistance_farValue?: number;
        scaleByDistance_near?: number;
        scaleByDistance_nearValue?: number;
        distanceDisplayCondition?: boolean;
        distanceDisplayCondition_far?: number;
        distanceDisplayCondition_near?: number;
        clampToGround?: boolean;
        heightReference?: Cesium.HeightReference;
        css_transform_origin?: string;
        timeRender?: boolean;
        setHeight?: number | string;
        addHeight?: number | string;
    };
}

/**
 * 动画的扩散div点
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.testPoint] - 测试点 的对应样式 ，可以进行用于比较测试div的位置，方便调试CSS。
 * @param [options.pointerEvents = true] - DIV是否可以鼠标交互，为false时可以穿透操作及缩放地图，但无法进行鼠标交互及触发相关事件。
 * @param [options.hasZIndex = false] - 是否自动调整DIV的层级顺序。
 * @param [options.zIndex = "auto"] - 指定固定的zIndex层级属性(当hasZIndex为true时无效)
 * @param [options.depthTest = true] - 是否打开深度判断（true时判断是否在球背面）
 * @param [options.hasCache = true] - 是否启用缓存机制，如为true，在视角未变化时不重新渲染。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 */
declare class DivLightPoint extends DivGraphic {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | number[];
        style: DivLightPoint.StyleOptions | any;
        attr?: any;
        hasEdit?: boolean;
        testPoint?: PointEntity.StyleOptions | any;
        pointerEvents?: boolean;
        hasZIndex?: boolean;
        zIndex?: number | string;
        depthTest?: boolean;
        hasCache?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 设置或获取当前对象对应的Html
     */
    html: string | HTMLDivElement;
}

declare namespace DivUpLabel {
    /**
     * 竖立的文本 支持的样式信息
     * @property text - 文本内容
     * @property [color = "white"] - 文本CSS颜色
     * @property [font_size = 15] - 字体大小
     * @property [font_family = "楷体"] - 字体 ,可选项：微软雅黑,宋体,楷体,隶书,黑体 等
     * @property [lineHeight = 100] - 底部线的高度值（单位：px像素）
     * @property [circleSize = 10] - 底部圆圈的大小（单位：px像素）
     * @property [horizontalOrigin] - 横向方向的定位
     * @property [verticalOrigin] - 垂直方向的定位
     * @property [offsetX] - 用于非规则div时，横向偏移的px像素值
     * @property [offsetY] - 用于非规则div时，垂直方向偏移的px像素值
     * @property [scaleByDistance = false] - 是否按视距缩放
     * @property [scaleByDistance_far = 1000000] - 上限
     * @property [scaleByDistance_farValue = 0.1] - 比例值
     * @property [scaleByDistance_near = 1000] - 下限
     * @property [scaleByDistance_nearValue = 1] - 比例值
     * @property [distanceDisplayCondition = false] - 是否按视距显示
     * @property [distanceDisplayCondition_far = 10000] - 最大距离
     * @property [distanceDisplayCondition_near = 0] - 最小距离
     * @property [clampToGround = false] - 是否贴地
     * @property [heightReference = Cesium.HeightReference.NONE] - 指定高度相对于什么的属性。
     * @property [css_transform_origin = 'left bottom 0'] - DIV的 transform-origin css值
     * @property [timeRender] - 是否实时刷新全部HTML，此时需要绑定html需传入回调方法。
     * @property [setHeight] - 指定坐标高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [addHeight] - 在现有坐标基础上增加的高度值（常用于图层中配置）,也支持字符串模版配置
     */
    type StyleOptions = any | {
        text: string;
        color?: string;
        font_size?: number;
        font_family?: string;
        lineHeight?: number;
        circleSize?: number;
        horizontalOrigin?: Cesium.HorizontalOrigin;
        verticalOrigin?: Cesium.VerticalOrigin;
        offsetX?: number;
        offsetY?: number;
        scaleByDistance?: boolean;
        scaleByDistance_far?: number;
        scaleByDistance_farValue?: number;
        scaleByDistance_near?: number;
        scaleByDistance_nearValue?: number;
        distanceDisplayCondition?: boolean;
        distanceDisplayCondition_far?: number;
        distanceDisplayCondition_near?: number;
        clampToGround?: boolean;
        heightReference?: Cesium.HeightReference;
        css_transform_origin?: string;
        timeRender?: boolean;
        setHeight?: number | string;
        addHeight?: number | string;
    };
}

/**
 * 竖立的文本 DIV点
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.testPoint] - 测试点 的对应样式 ，可以进行用于比较测试div的位置，方便调试CSS。
 * @param [options.pointerEvents = true] - DIV是否可以鼠标交互，为false时可以穿透操作及缩放地图，但无法进行鼠标交互及触发相关事件。
 * @param [options.hasZIndex = false] - 是否自动调整DIV的层级顺序。
 * @param [options.zIndex = "auto"] - 指定固定的zIndex层级属性(当hasZIndex为true时无效)
 * @param [options.depthTest = true] - 是否打开深度判断（true时判断是否在球背面）
 * @param [options.hasCache = true] - 是否启用缓存机制，如为true，在视角未变化时不重新渲染。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 */
declare class DivUpLabel extends DivGraphic {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | number[];
        style: DivUpLabel.StyleOptions | any;
        attr?: any;
        hasEdit?: boolean;
        testPoint?: PointEntity.StyleOptions | any;
        pointerEvents?: boolean;
        hasZIndex?: boolean;
        zIndex?: number | string;
        depthTest?: boolean;
        hasCache?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 设置或获取当前对象对应的Html
     */
    html: string | HTMLDivElement;
}

/**
 * DivGraphic对象，标绘处理对应的编辑类
 */
declare class EditDivGraphic extends EditBase {
    /**
     * 对应的DOM元素
     */
    readonly container: Element;
    /**
     * 激活绘制
     * @returns 当前对象本身，可以链式调用
     */
    activate(): EditBase;
    /**
     * 释放绘制
     * @returns 当前对象本身，可以链式调用
     */
    disable(): EditBase;
}

declare namespace Popup {
    /**
     * Popup对象 支持的配置信息
     * @property [html] - Html文本({content}部分，整体展示的DOM由template和html属性共同组成)
     * @property [template] - 公共部分外框部分html内容，需要加2处：
     * (1)用于填充html的地方写上{content}标识；
     * (2)关闭按钮加class样式：closeButton。
     * 传空字符串或false时，不用内置模版。
     * @property [closeButton = true] - 是否显示关闭按钮
     * @property [horizontalOrigin] - 横向方向的定位
     * @property [verticalOrigin] - 垂直方向的定位
     * @property [offsetX] - 用于非规则div时，横向偏移的px像素值
     * @property [offsetY] - 用于非规则div时，垂直方向偏移的px像素值
     * @property [className] - 自定义的样式名
     * @property [scaleByDistance = false] - 是否按视距缩放
     * @property [scaleByDistance_far = 1000000] - 上限
     * @property [scaleByDistance_farValue = 0.1] - 比例值
     * @property [scaleByDistance_near = 1000] - 下限
     * @property [scaleByDistance_nearValue = 1] - 比例值
     * @property [distanceDisplayCondition = false] - 是否按视距显示
     * @property [distanceDisplayCondition_far = 10000] - 最大距离
     * @property [distanceDisplayCondition_near = 0] - 最小距离
     * @property [clampToGround = false] - 是否贴地
     * @property [css_transform_origin = 'left bottom 0'] - DIV的 transform-origin css值
     * @property [timeRender] - 是否实时刷新全部HTML，此时需要绑定html需传入回调方法。
     * @property [autoCenter] - 当气泡窗口有部分在地图之外时是否自动进行居中 （目前仅俯视时准确定位）
     * @property [maxWidth = 700] - 弹窗的最大宽度，单位为像素
     * @property [minWidth = 50] - 弹窗的最小宽度，单位为像素
     * @property [maxHeight = 550] - 如果设置，如果内容超过此高度时，则在弹出窗口中显示滚动条。
     *
     * //以下是构造参数，但也兼容style中传入
     * @property [closeOnClick = true] - 是否在单击Map地图时，自动关闭当前弹窗
     * @property [autoClose = true] - 在打开弹窗时，是否自动关闭之前的弹窗
     * @property [animation = true] - 是否执行打开时的动画效果
     * @property [testPoint] - 测试点 的对应样式 ，可以进行用于比较测试div的位置，方便调试CSS。
     * @property [pointerEvents = true] - DIV是否可以鼠标交互，为false时可以穿透操作及缩放地图，但无法进行鼠标交互及触发相关事件。
     * @property [hasZIndex = false] - 是否自动调整DIV的层级顺序。
     * @property [zIndex = "10000000"] - 指定固定的zIndex层级属性(当hasZIndex为true时无效)
     * @property [depthTest = false] - 是否打开深度判断（true时判断是否在球背面）
     * @property [hasCache = true] - 是否启用缓存机制，如为true，在视角未变化时不重新渲染。
     * @property [checkData] - 在多个Popup时，校验是否相同Popup进行判断关闭
     */
    type StyleOptions = any | {
        html?: string;
        template?: string;
        closeButton?: boolean;
        horizontalOrigin?: Cesium.HorizontalOrigin;
        verticalOrigin?: Cesium.VerticalOrigin;
        offsetX?: number;
        offsetY?: number;
        className?: string;
        scaleByDistance?: boolean;
        scaleByDistance_far?: number;
        scaleByDistance_farValue?: number;
        scaleByDistance_near?: number;
        scaleByDistance_nearValue?: number;
        distanceDisplayCondition?: boolean;
        distanceDisplayCondition_far?: number;
        distanceDisplayCondition_near?: number;
        clampToGround?: boolean;
        css_transform_origin?: string;
        timeRender?: boolean;
        autoCenter?: boolean;
        maxWidth?: number;
        minWidth?: number;
        maxHeight?: number;
        closeOnClick?: boolean;
        autoClose?: boolean;
        animation?: boolean;
        testPoint?: PointEntity.StyleOptions | any;
        pointerEvents?: boolean;
        hasZIndex?: boolean;
        zIndex?: number | string;
        depthTest?: boolean;
        hasCache?: boolean;
        checkData?: (...params: any[]) => any;
    };
}

/**
 * Popup对象div点
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.closeOnClick = true] - 是否在单击Map地图时，自动关闭当前弹窗
 * @param [options.autoClose = true] - 在打开弹窗时，是否自动关闭之前的弹窗
 * @param [options.animation = true] - 是否执行打开时的动画效果
 * @param [options.testPoint] - 测试点 的对应样式 ，可以进行用于比较测试div的位置，方便调试CSS。
 * @param [options.pointerEvents = true] - DIV是否可以鼠标交互，为false时可以穿透操作及缩放地图，但无法进行鼠标交互及触发相关事件。
 * @param [options.hasZIndex = false] - 是否自动调整DIV的层级顺序。
 * @param [options.zIndex = "10000000"] - 指定固定的zIndex层级属性(当hasZIndex为true时无效)
 * @param [options.depthTest = false] - 是否打开深度判断（true时判断是否在球背面）
 * @param [options.hasCache = true] - 是否启用缓存机制，如为true，在视角未变化时不重新渲染。
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 */
declare class Popup extends DivGraphic {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | number[];
        style: Popup.StyleOptions | any;
        attr?: any;
        closeOnClick?: boolean;
        autoClose?: boolean;
        animation?: boolean;
        testPoint?: PointEntity.StyleOptions | any;
        pointerEvents?: boolean;
        hasZIndex?: boolean;
        zIndex?: number | string;
        depthTest?: boolean;
        hasCache?: boolean;
        id?: string | number;
        name?: string;
        show?: boolean;
    });
    /**
     * 关联的触发对象
     */
    readonly target: BaseGraphic | BaseLayer | Map;
    /**
     * 位置坐标 （笛卡尔坐标）, 赋值时可以传入LatLngPoint对象
     */
    position: Cesium.Cartesian3 | LngLatPoint;
}

declare namespace Tooltip {
    /**
     * Tooltip对象 支持的配置信息
     * @property [html] - Html文本({content}部分，整体展示的DOM由template和html属性共同组成)
     * @property [template] - 公共部分外框部分html内容，需要加：用于填充html的地方写上{content}标识。 传空字符串或false时，不用内置模版。
     * @property [direction = "top"] - 显示的方向，可选值： top、bottom、center、right、left
     * @property [horizontalOrigin] - 横向方向的定位
     * @property [verticalOrigin] - 垂直方向的定位
     * @property [offsetX] - 用于非规则div时，横向偏移的px像素值
     * @property [offsetY] - 用于非规则div时，垂直方向偏移的px像素值
     * @property [className] - 自定义的样式名
     * @property [scaleByDistance = false] - 是否按视距缩放
     * @property [scaleByDistance_far = 1000000] - 上限
     * @property [scaleByDistance_farValue = 0.1] - 比例值
     * @property [scaleByDistance_near = 1000] - 下限
     * @property [scaleByDistance_nearValue = 1] - 比例值
     * @property [distanceDisplayCondition = false] - 是否按视距显示
     * @property [distanceDisplayCondition_far = 10000] - 最大距离
     * @property [distanceDisplayCondition_near = 0] - 最小距离
     * @property [clampToGround = false] - 是否贴地
     * @property [css_transform_origin = 'left bottom 0'] - DIV的 transform-origin css值
     * @property [timeRender] - 是否实时刷新全部HTML，此时需要绑定html需传入回调方法。
     *
     * //以下是构造参数，但也兼容style中传入
     * @property [testPoint] - 测试点 的对应样式 ，可以进行用于比较测试div的位置，方便调试CSS。
     * @property [pointerEvents = true] - DIV是否可以鼠标交互，为false时可以穿透操作及缩放地图，但无法进行鼠标交互及触发相关事件。
     * @property [hasZIndex = false] - 是否自动调整DIV的层级顺序。
     * @property [zIndex = "10000000"] - 指定固定的zIndex层级属性(当hasZIndex为true时无效)
     * @property [depthTest = false] - 是否打开深度判断（true时判断是否在球背面）
     * @property [hasCache = true] - 是否启用缓存机制，如为true，在视角未变化时不重新渲染。
     */
    type StyleOptions = any | {
        html?: string;
        template?: string | boolean;
        direction?: string;
        horizontalOrigin?: Cesium.HorizontalOrigin;
        verticalOrigin?: Cesium.VerticalOrigin;
        offsetX?: number;
        offsetY?: number;
        className?: string;
        scaleByDistance?: boolean;
        scaleByDistance_far?: number;
        scaleByDistance_farValue?: number;
        scaleByDistance_near?: number;
        scaleByDistance_nearValue?: number;
        distanceDisplayCondition?: boolean;
        distanceDisplayCondition_far?: number;
        distanceDisplayCondition_near?: number;
        clampToGround?: boolean;
        css_transform_origin?: string;
        timeRender?: boolean;
        testPoint?: PointEntity.StyleOptions | any;
        pointerEvents?: boolean;
        hasZIndex?: boolean;
        zIndex?: number | string;
        depthTest?: boolean;
        hasCache?: boolean;
    };
}

/**
 * Tooltip对象div点
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.testPoint] - 测试点 的对应样式 ，可以进行用于比较测试div的位置，方便调试CSS。
 * @param [options.pointerEvents = true] - DIV是否可以鼠标交互，为false时可以穿透操作及缩放地图，但无法进行鼠标交互及触发相关事件。
 * @param [options.hasZIndex = false] - 是否自动调整DIV的层级顺序。
 * @param [options.zIndex = "10000000"] - 指定固定的zIndex层级属性(当hasZIndex为true时无效)
 * @param [options.depthTest = false] - 是否打开深度判断（true时判断是否在球背面）
 * @param [options.hasCache = true] - 是否启用缓存机制，如为true，在视角未变化时不重新渲染。
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 */
declare class Tooltip extends Popup {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | number[];
        style: Tooltip.StyleOptions | any;
        attr?: any;
        testPoint?: PointEntity.StyleOptions | any;
        pointerEvents?: boolean;
        hasZIndex?: boolean;
        zIndex?: number | string;
        depthTest?: boolean;
        hasCache?: boolean;
        id?: string | number;
        name?: string;
        show?: boolean;
    });
}

/**
 * Entity实体 矢量对象 基类
 * @param options - 参数对象，包括以下：
 * @param options.position - 【点状】矢量数据时的坐标位置，具体看子类实现
 * @param options.positions - 【线面状（多点）】矢量数据时的坐标位置，具体看子类实现
 * @param options.style - 矢量数据的 样式信息，具体见各类数据的说明
 * @param [options.attr] - 矢量数据的 属性信息，可以任意附加属性
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class BaseEntity extends BaseGraphic {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | number[];
        positions: LngLatPoint[] | Cesium.Cartesian3[] | any[];
        style: any;
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 加载Entity数据的内部Cesium容器
     */
    readonly dataSource: Cesium.CustomDataSource;
    /**
     * 矢量数据对应的 Cesium内部对象
     */
    readonly entity: Cesium.Entity;
    /**
     * 矢量数据对应的 Cesium内部对象的具体类型对象
     */
    readonly entityGraphic: any;
    /**
     * 附加的label文本对象
     */
    readonly label: Cesium.Label | Cesium.LabelGraphics;
    /**
     * 是否正在编辑状态
     */
    readonly isEditing: boolean;
    /**
     * 重新渲染对象
     * @returns 无
     */
    reload(): void;
    /**
     * 高亮对象。
     * @param [highlightStyle] - 高亮的样式，具体见各{@link GraphicType}矢量数据的style参数。
     * @param [closeLast = true] - 是否清除地图上上一次的高亮对象
     * @returns 无
     */
    openHighlight(highlightStyle?: any, closeLast?: boolean): void;
    /**
     * 清除已选中的高亮，原有style的配置项需要与highlightStyle配置有一一对应关系，否则无法清除
     * @returns 无
     */
    closeHighlight(): void;
    /**
     * 设置透明度
     * @param value - 透明度
     * @returns 无
     */
    setOpacity(value: number): void;
    /**
     * 高亮闪烁 Enity实体对象
     * @param options - 参数
     * @param [options.time] - 闪烁的时长(秒)，未设置时不自动停止。
     * @param [options.color = Cesium.Color.YELLOW] - 高亮的颜色
     * @param [options.maxAlpha = 0.3] - 闪烁的最大透明度，从 0 到 maxAlpha 渐变
     * @param [options.onEnd] - 播放完成后的回调方法
     * @returns 高亮闪烁控制 对象
     */
    startFlicker(options: {
        time?: number;
        color?: Cesium.Color;
        maxAlpha?: number;
        onEnd?: (...params: any[]) => any;
    }): FlickerEntity;
    /**
     * 停止高亮闪烁
     * @returns 无
     */
    stopFlicker(): void;
    /**
     * 开始绘制矢量数据，绘制的数据会加载在layer图层。
     * @param layer - 图层
     * @returns 无
     */
    startDraw(layer: GraphicLayer): void;
    /**
     * 停止绘制
     * @returns 无
     */
    stopDraw(): void;
    /**
     * 移除绘制的坐标中的重复点，比如快速单击或双击产生的冗余坐标。
     * @returns 无
     */
    removeNearPoint(): void;
    /**
     * 完成绘制和编辑，如有未完成的绘制会自动完成。
     * 在移动端需要调用此方法来类似PC端双击结束。
     * @returns 是否正常结束了矢量对象绘制
     */
    endDraw(): boolean;
    /**
     * 开始编辑对象
     * @returns 无
     */
    startEditing(): void;
    /**
     * 停止编辑，释放正在编辑的对象。
     * @returns 无
     */
    stopEditing(): void;
    /**
     * 矢量数据对应的 Cesium内部对象 (不同子类中实现)
     */
    readonly czmObject: Cesium.Entity | Cesium.Primitive | Cesium.GroundPrimitive | Cesium.ClassificationPrimitive | any;
    /**
     * 设置事件的启用和禁用状态
     */
    enabledEvent: boolean;
}

/**
 * 单个坐标的点状Entity矢量数据 基类
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param [options.orientation] - 指定实体方向的属性。
 * @param options.style - 矢量数据的 样式信息，具体见各类数据的说明
 * @param [options.attr] - 矢量数据的 属性信息，可以任意附加属性。
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.drawShow = true] - 绘制时，是否自动隐藏entity，可避免拾取坐标存在问题。
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.maxCacheCount = 50] - 当使用addDynamicPosition设置为动画轨迹位置时，保留的坐标点数量，传-1时不限制
 * @param [options.forwardExtrapolationType = Cesium.ExtrapolationType.HOLD] - 当使用addDynamicPosition设置为动画轨迹位置时，在任何可用坐标之后一次请求值时要执行的推断类型，默认为最后一个坐标位置。
 * @param [options.backwardExtrapolationType = Cesium.ExtrapolationType.HOLD] - 当使用addDynamicPosition设置为动画轨迹位置时， 在任何可用坐标之前一次请求值时要执行的推断类型，默认为第一个坐标位置。
 * @param [options.clampToTileset] - 当使用addDynamicPosition设置为动画轨迹位置时，是否进行贴模型。
 * @param [options.frameRateClamp = 30] - 当使用addDynamicPosition设置为动画轨迹位置时，并clampToTileset：true时，多少帧计算一次贴模型高度
 * @param [options.objectsToExclude] - 当使用addDynamicPosition设置为动画轨迹位置时，并clampToTileset：true时，排除的不进行贴模型计算的模型对象，可以是： primitives, entities, 或 3D Tiles features
 * @param [options.referenceFrame = Cesium.ReferenceFrame.FIXED] - 当使用addDynamicPosition设置为动画轨迹位置时，position位置被定义的参考系。
 * @param [options.numberOfDerivatives = 0] - 当使用addDynamicPosition设置为动画轨迹位置时，每个位置的导数的数量;即速度、加速度等。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class BasePointEntity extends BaseEntity {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | Cesium.PositionProperty | number[] | string;
        orientation?: Cesium.Property;
        style: any;
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        drawShow?: boolean;
        hasEdit?: boolean;
        maxCacheCount?: number;
        forwardExtrapolationType?: Cesium.ExtrapolationType;
        backwardExtrapolationType?: Cesium.ExtrapolationType;
        clampToTileset?: boolean;
        frameRateClamp?: number;
        objectsToExclude?: any;
        referenceFrame?: Cesium.ReferenceFrame;
        numberOfDerivatives?: number;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 编辑处理类
     */
    readonly EditClass: EditPoint;
    /**
     * 位置坐标 （笛卡尔坐标）, 赋值时可以传入LatLngPoint对象
     */
    position: Cesium.Cartesian3 | LngLatPoint;
    /**
     * 当前实时位置坐标（笛卡尔坐标）
     */
    readonly positionShow: Cesium.Cartesian3;
    /**
     * 位置坐标
     */
    readonly point: LngLatPoint;
    /**
     * 位置坐标(数组对象)，示例[113.123456,31.123456,30.1]
     */
    readonly coordinate: any[];
    /**
     * 中心点坐标 （笛卡尔坐标）
     */
    readonly center: Cesium.Cartesian3;
    /**
     * 中心点坐标
     */
    readonly centerPoint: LngLatPoint;
    /**
     * 三维空间中的旋转。
     */
    readonly orientation: Cesium.Quaternion;
    /**
     * 四周方向角，0-360度角度值
     */
    heading: number;
    /**
     * 俯仰角，上下摇摆的角度，0-360度角度值
     */
    pitch: number;
    /**
     * 滚转角，左右摆动的角度，0-360度角度值
     */
    roll: number;
    /**
     * 坐标对应的高度值（单位：米）
     */
    height: number;
    /**
     * 获取当前转换计算模型矩阵。如果方向或位置未定义，则返回undefined。
     */
    readonly modelMatrix: Cesium.Matrix4;
    /**
     * 是否显示3个方向轴，用于对比测试
     */
    debugAxis: boolean;
    /**
     * 显示3个方向轴时的对应轴长度，用于对比测试
     */
    debugAxisLength: number;
    /**
     * 贴模型分析时，排除的不进行贴模型计算的模型对象，默认是当前本身，可以是： primitives, entities 等
     */
    objectsToExclude: any | undefined;
    /**
     * 更新 三维空间中的Quaternion旋转对象。
     * @returns 更新后的Quaternion旋转对象
     */
    updateOrientation(): Cesium.Quaternion;
    /**
     * 清除addDynamicPosition添加的动态轨迹
     * @returns 当前对象本身，可以链式调用
     */
    clearDynamicPosition(): BasePointEntity;
    /**
     * 设置并添加动画轨迹位置，按“指定时间”运动到达“指定位置”。
     * @param point - 指定位置坐标
     * @param [currTime] - 指定时间, 默认为当前时间。当为String时，可以传入'2021-01-01 12:13:00'; 当为number时，可以传入当前时间延迟的秒数。
     * @returns 当前对象本身，可以链式调用
     */
    addDynamicPosition(point: LngLatPoint | Cesium.Cartesian3 | number[], currTime?: Cesium.JulianDate | Date | string | number): BasePointEntity;
    /**
     * 异步计算更新坐标高度进行贴地(或贴模型)，内部自动调用{@link PointUtil#getSurfaceHeight}方法处理。
     * @param [options = {}] - 参数对象:
     * @param [options.has3dtiles = auto] - 是否在3dtiles模型上分析（模型分析较慢，按需开启）,默认内部根据点的位置自动判断（但可能不准）
     * @param [options.objectsToExclude] - 贴模型分析时，排除的不进行贴模型计算的模型对象，可以是： primitives, entities, 或 3D Tiles features
     * @returns 异步计算完成的Promise
     */
    autoSurfaceHeight(options?: {
        has3dtiles?: boolean;
        objectsToExclude?: any;
    }): Promise<any>;
    /**
     * 位置坐标(数组对象)，示例[113.123456,31.123456,30.1]
     * @param noAlt - true时不导出高度值
     * @returns 位置坐标(数组对象)
     */
    getCoordinate(noAlt: boolean): any[];
    /**
     * 按Cesium.CallbackProperty的方式 更新坐标（更加平滑）
     * @param [position] - 坐标
     * @returns 当前坐标
     */
    setCallbackPosition(position?: string | any[] | any | Cesium.Cartesian3 | any): Cesium.Cartesian3;
    /**
     * 显示隐藏状态
     */
    show: boolean;
}

/**
 * 多个坐标的线面状  Entity矢量数据 基类
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 矢量数据的 样式信息，具体见各类数据的说明
 * @param [options.attr] - 矢量数据的 属性信息，可以任意附加属性。
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.minPointNum = 2] - 绘制时，至少需要点的个数
 * @param [options.maxPointNum = 9999] - 绘制时，最多允许点的个数
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.hasMoveEdit = true] - 编辑时，是否可以整体平移
 * @param [options.hasHeightEdit = true] - 编辑时，当有diffHeight时，是否可以编辑高度
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class BasePolyEntity extends BaseEntity {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[];
        style: any;
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        minPointNum?: number;
        maxPointNum?: number;
        hasEdit?: boolean;
        hasMoveEdit?: boolean;
        hasHeightEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 编辑时，是否可以整体平移
     */
    readonly hasMoveEdit: boolean;
    /**
     * 编辑时，当有diffHeight时，是否可以编辑高度
     */
    readonly hasHeightEdit: boolean;
    /**
     * 编辑处理类
     */
    readonly EditClass: EditPoly;
    /**
     * 中心点坐标 （笛卡尔坐标）
     */
    readonly center: Cesium.Cartesian3;
    /**
     * 围合面的内部中心点坐标
     */
    readonly centerOfMass: Cesium.Cartesian3;
    /**
     * 边线的中心点坐标
     */
    readonly centerOfLine: Cesium.Cartesian3;
    /**
     * 距离（单位：米）
     */
    readonly distance: number;
    /**
     * 面积（单位：平方米）
     */
    readonly area: number;
    /**
     * 位置坐标数组 （笛卡尔坐标）, 赋值时可以传入LatLngPoint数组对象
     */
    positions: Cesium.Cartesian3[];
    /**
     * 实际显示的坐标数组 （笛卡尔坐标），
     * 如标绘中时positions对应的可能只是控制点坐标或CallbackProperty属性
     */
    readonly positionsShow: Cesium.Cartesian3[];
    /**
     * 位置坐标数组
     */
    readonly points: LngLatPoint[] | Cesium.Cartesian3[] | any[];
    /**
     * 位置坐标(数组对象)，示例 [ [123.123456,32.654321,198.7], [111.123456,22.654321,50.7] ]
     */
    readonly coordinates: any[][];
    /**
     * 坐标数据对应的矩形边界
     */
    readonly rectangle: Cesium.Rectangle;
    /**
     * 位置坐标(数组对象)，示例 [ [123.123456,32.654321,198.7], [111.123456,22.654321,50.7] ]
     * @param noAlt - true时不导出高度值
     * @returns 位置坐标(数组对象)
     */
    getCoordinates(noAlt: boolean): any[][];
    /**
     * 判断点是否在当前对象的坐标点围成的多边形内
     * @param position - 需要判断的点
     * @returns 是否在多边形内
     */
    isInPoly(position: Cesium.Cartesian3 | LngLatPoint): boolean;
    /**
     * 异步计算更新坐标高度进行贴地(或贴模型)，内部自动调用{@link PolyUtil#computeSurfacePoints}方法处理。
     * @param [options = {}] - 参数对象:
     * @param [options.has3dtiles = auto] - 是否在3dtiles模型上分析（模型分析较慢，按需开启）,默认内部根据点的位置自动判断（但可能不准）
     * @param [options.objectsToExclude] - 贴模型分析时，排除的不进行贴模型计算的模型对象，可以是： primitives, entities, 或 3D Tiles features
     * @param [options.offset = 0] - 可以按需增加偏移高度（单位：米），便于可视
     * @returns 异步计算完成的Promise
     */
    autoSurfaceHeight(options?: {
        has3dtiles?: boolean;
        objectsToExclude?: any;
        offset?: number;
    }): Promise<any>;
    /**
     * 按Cesium.CallbackProperty的方式 更新坐标集合（更加平滑）
     * @param [positions] - 坐标数组
     * @returns 当前坐标集合
     */
    setCallbackPositions(positions?: string[] | any[][] | LngLatPoint[]): Cesium.Cartesian3[];
}

declare namespace BillboardEntity {
    /**
     * 图标点 支持的样式信息
     * @property [image] - 用于矢量对象的 图像、URI或Canvas
     * @property [opacity = 1.0] - 透明度，取值范围：0.0-1.0
     * @property [scale = 1] - 图像大小的比例
     * @property [rotation = 0] - 旋转角度（弧度值），正北为0，逆时针旋转
     * @property [rotationDegree = 0] - 旋转角度（度数值，0-360度），与rotation二选一
     * @property [horizontalOrigin] - 横向方向的定位
     * @property [verticalOrigin] - 垂直方向的定位
     * @property [width] - 指定广告牌的宽度(以像素为单位)，覆盖图片本身大小。
     * @property [height] - 指定广告牌的高度(以像素为单位)，覆盖图片本身大小。
     * @property [hasPixelOffset = false] - 是否存在偏移量
     * @property [pixelOffsetX = 0] - 横向偏移像素
     * @property [pixelOffsetY = 0] - 纵向偏移像素
     * @property [pixelOffset = Cartesian2.ZERO] - 指定像素偏移量。
     * @property [scaleByDistance = false] - 是否按视距缩放 或 设置基于与相机的距离缩放点
     * @property [scaleByDistance_far = 1000000] - 上限
     * @property [scaleByDistance_farValue = 0.1] - 比例值
     * @property [scaleByDistance_near = 1000] - 下限
     * @property [scaleByDistance_nearValue = 1] - 比例值
     * @property [distanceDisplayCondition = false] - 是否按视距显示 或 指定该广告牌将显示在与摄像机的多大距离
     * @property [distanceDisplayCondition_far = 10000] - 最大距离
     * @property [distanceDisplayCondition_near = 0] - 最小距离
     * @property [clampToGround = false] - 是否贴地
     * @property [heightReference = Cesium.HeightReference.NONE] - 指定高度相对于什么的属性。
     * @property [visibleDepth = true] - 是否被遮挡
     * @property [disableDepthTestDistance] - 指定从相机到禁用深度测试的距离。
     * @property [color = Color.WHITE] - 附加的颜色
     * @property [eyeOffset = Cartesian3.ZERO] - 眼偏移量
     * @property [alignedAxis = Cartesian3.ZERO] - 指定单位旋转向量轴。
     * @property [sizeInMeters] - 指定该广告牌的大小是否应该以米来度量。
     * @property [translucencyByDistance] - 用于基于与相机的距离设置半透明度。
     * @property [pixelOffsetScaleByDistance] - 用于基于与相机的距离设置pixelOffset。
     * @property [imageSubRegion] - 定义用于广告牌的图像的子区域，而不是从左下角开始以像素为单位的整个图像。
     * @property [setHeight] - 指定坐标高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [addHeight] - 在现有坐标基础上增加的高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [highlight] - 鼠标移入或单击(type:'click')后的对应高亮的部分样式，创建Graphic后也可以openHighlight、closeHighlight方法来手动调用
     * @property [label] - 支持附带文字的显示
     */
    type StyleOptions = any | {
        image?: string | HTMLCanvasElement;
        opacity?: number;
        scale?: number;
        rotation?: number;
        rotationDegree?: number;
        horizontalOrigin?: Cesium.HorizontalOrigin;
        verticalOrigin?: Cesium.VerticalOrigin;
        width?: number;
        height?: number;
        hasPixelOffset?: boolean;
        pixelOffsetX?: number;
        pixelOffsetY?: number;
        pixelOffset?: Cesium.Cartesian2 | number[];
        scaleByDistance?: boolean | Cesium.NearFarScalar;
        scaleByDistance_far?: number;
        scaleByDistance_farValue?: number;
        scaleByDistance_near?: number;
        scaleByDistance_nearValue?: number;
        distanceDisplayCondition?: boolean | Cesium.DistanceDisplayCondition;
        distanceDisplayCondition_far?: number;
        distanceDisplayCondition_near?: number;
        clampToGround?: boolean;
        heightReference?: Cesium.HeightReference;
        visibleDepth?: boolean;
        disableDepthTestDistance?: number;
        color?: Cesium.Color;
        eyeOffset?: Cesium.Cartesian3;
        alignedAxis?: Cesium.Cartesian3;
        sizeInMeters?: boolean;
        translucencyByDistance?: Cesium.NearFarScalar;
        pixelOffsetScaleByDistance?: Cesium.NearFarScalar;
        imageSubRegion?: Cesium.BoundingRectangle;
        setHeight?: number | string;
        addHeight?: number | string;
        highlight?: BillboardEntity.StyleOptions | any;
        label?: LabelEntity.StyleOptions | any;
    };
}

/**
 * 图标点  Entity对象
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.maxCacheCount = 50] - 当使用addDynamicPosition设置为动画轨迹位置时，保留的坐标点数量，传-1时不限制
 * @param [options.forwardExtrapolationType = Cesium.ExtrapolationType.HOLD] - 当使用addDynamicPosition设置为动画轨迹位置时，在任何可用坐标之后一次请求值时要执行的推断类型，默认为最后一个坐标位置。
 * @param [options.backwardExtrapolationType = Cesium.ExtrapolationType.HOLD] - 当使用addDynamicPosition设置为动画轨迹位置时， 在任何可用坐标之前一次请求值时要执行的推断类型，默认为第一个坐标位置。
 * @param [options.clampToTileset] - 当使用addDynamicPosition设置为动画轨迹位置时，是否进行贴模型。
 * @param [options.frameRateHeight = 30] - 当使用addDynamicPosition设置为动画轨迹位置时，并clampToTileset：true时，多少帧计算一次贴模型高度
 * @param [options.objectsToExclude] - 当使用addDynamicPosition设置为动画轨迹位置时，并clampToTileset：true时，排除的不进行贴模型计算的模型对象，可以是： primitives, entities, 或 3D Tiles features
 * @param [options.drawShow = true] - 绘制时，是否自动隐藏entity，可避免拾取坐标存在问题。
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.model] - 设置附加的 gltf模型 和对应的样式
 * @param [options.point] - 设置附加的 像素点 和对应的样式
 * @param [options.circle] - 设置附加的 圆 和对应的样式
 * @param [options.path] - 设置附加的 轨迹路线 和对应的样式
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class BillboardEntity extends BasePointEntity {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | Cesium.PositionProperty | number[] | string;
        style: BillboardEntity.StyleOptions | any;
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        maxCacheCount?: number;
        forwardExtrapolationType?: Cesium.ExtrapolationType;
        backwardExtrapolationType?: Cesium.ExtrapolationType;
        clampToTileset?: boolean;
        frameRateHeight?: number;
        objectsToExclude?: any;
        drawShow?: boolean;
        hasEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        model?: ModelEntity.StyleOptions | any | any;
        point?: PointEntity.StyleOptions | any | any;
        circle?: CircleEntity.StyleOptions | any | any;
        path?: PathEntity.StyleOptions | any | any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 矢量数据对应的 Cesium内部对象的具体类型对象
     */
    readonly entityGraphic: Cesium.BillboardGraphics;
    /**
     * 图像、URI或Canvas
     */
    image: string | HTMLCanvasElement;
    /**
     * 设置透明度
     * @param value - 透明度
     * @returns 无
     */
    setOpacity(value: number): void;
    /**
     * 开始执行弹跳动画
     * @param [options] - 参数，包括
     * @param [options.maxHeight = 50] - 弹跳的最大高度, 单位：像素
     * @param [options.step = 1] - 弹跳增量, 控制速度，单位：像素
     * @param [options.autoStop] - 是否自动停止，true时：会逐渐减弱至停止状态
     * @returns 无
     */
    startBounce(options?: {
        maxHeight?: number;
        step?: number;
        autoStop?: boolean;
    }): void;
    /**
     * 停止弹跳动画
     * @returns 无
     */
    stopBounce(): void;
}

declare namespace BoxEntity {
    /**
     * 盒子 支持的样式信息
     * @property [dimensions] - 指定盒子的长度、宽度和高度。
     * @property [dimensions_x = 100] - 盒子长度
     * @property [dimensions_y = 100] - 盒子宽度
     * @property [dimensions_z = 100] - 盒子高度
     * @property [heading = 0] - 方向角 （度数值，0-360度）
     * @property [pitch = 0] - 俯仰角（度数值，0-360度）
     * @property [roll = 0] - 翻滚角（度数值，0-360度）
     * @property [fill = true] - 是否填充
     * @property [materialType = "Color"] - 填充类型 ,可选项：{@link MaterialType}
     * @property [materialOptions] - materialType对应的{@link MaterialType}中材质参数
     * @property [material = Cesium.Color.WHITE] - 指定用于填充的材质，指定material后`materialType`和`material材质参数`将被覆盖。
     * @property [color = "#00FF00"] - 颜色
     * @property [opacity = 1.0] - 透明度, 取值范围：0.0-1.0
     * @property [outline = false] - 是否边框
     * @property [outlineWidth = 1.0] - 边框宽度
     * @property [outlineColor = "#ffffff"] - 边框颜色
     * @property [outlineOpacity = 0.6] - 边框透明度
     * @property [distanceDisplayCondition = false] - 是否按视距显示 或 指定此框将显示在与摄像机的多大距离。
     * @property [distanceDisplayCondition_far = 100000] - 最大距离
     * @property [distanceDisplayCondition_near = 0] - 最小距离
     * @property [hasShadows = false] - 是否投射阴影
     * @property [shadows = Cesium.ShadowMode.DISABLED] - 是投射还是接收来自光源的阴影。
     * @property [clampToGround = false] - 是否贴地
     * @property [heightReference = Cesium.HeightReference.NONE] - 指定从实体位置到它的相对高度。
     * @property [setHeight] - 指定坐标高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [addHeight] - 在现有坐标基础上增加的高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [highlight] - 鼠标移入或单击(type:'click')后的对应高亮的部分样式，创建Graphic后也可以openHighlight、closeHighlight方法来手动调用
     * @property [label] - 支持附带文字的显示
     */
    type StyleOptions = any | {
        dimensions?: Cesium.Cartesian3 | Cesium.Property;
        dimensions_x?: number;
        dimensions_y?: number;
        dimensions_z?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        fill?: boolean;
        materialType?: string;
        materialOptions?: any;
        material?: Cesium.MaterialProperty | BaseMaterialProperty | Cesium.Color;
        color?: string | Cesium.Color;
        opacity?: number;
        outline?: boolean;
        outlineWidth?: string;
        outlineColor?: string | Cesium.Color;
        outlineOpacity?: number;
        distanceDisplayCondition?: boolean | Cesium.DistanceDisplayCondition;
        distanceDisplayCondition_far?: number;
        distanceDisplayCondition_near?: number;
        hasShadows?: boolean;
        shadows?: Cesium.ShadowMode;
        clampToGround?: boolean;
        heightReference?: Cesium.HeightReference;
        setHeight?: number | string;
        addHeight?: number | string;
        highlight?: BoxEntity.StyleOptions | any;
        label?: LabelEntity.StyleOptions | any;
    };
}

/**
 * 盒子  Entity对象
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.orientation] - 实体方向
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.drawShow = true] - 绘制时，是否自动隐藏entity，可避免拾取坐标存在问题。
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class BoxEntity extends BasePointEntity {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | Cesium.PositionProperty | number[] | string;
        style: BoxEntity.StyleOptions | any;
        attr?: any;
        orientation?: Cesium.Property;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        drawShow?: boolean;
        hasEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 矢量数据对应的 Cesium内部对象的具体类型对象
     */
    readonly entityGraphic: Cesium.BoxGraphics;
    /**
     * 编辑处理类
     */
    readonly EditClass: EditBox;
}

declare namespace CanvasLabelEntity {
    /**
     * Canvas 文本点（label转图片） 支持的样式信息
     * @property [text = "文字"] - 文本内容  (提示：暂不支持换行)
     * @property [scale = 1.0] - 指定缩放比例。
     * @property [horizontalOrigin] - 横向方向的定位
     * @property [verticalOrigin] - 垂直方向的定位
     * @property [font_family = "楷体"] - 字体 ,可选项：微软雅黑,宋体,楷体,隶书,黑体 等
     * @property [font_size = 30] - 字体大小
     * @property [font_weight = "normal"] - 是否加粗 ,可选项：bold (解释：是),normal (解释：否),
     * @property [font_style = "normal"] - 是否斜体 ,可选项：italic (解释：是),normal (解释：否),
     * @property [font = '30px normal normal 楷体'] - 上叙4个属性的一次性指定CSS字体的属性。
     * @property [textBaseline = 'bottom'] - 文本的基线。
     * @property [fill = true] - 是否填充
     * @property [color = "#ffffff"] - 文本颜色
     * @property [opacity = 1.0] - 透明度，取值范围：0.0-1.0
     * @property [stroke = false] - 是否衬色
     * @property [strokeColor = "#000000"] - 衬色颜色
     * @property [strokeWidth = 2] - 衬色宽度
     * @property [outline = false] - 是否矩形边框
     * @property [outlineColor = "#000000"] - 矩形边框的颜色。
     * @property [outlineWidth = 4] - 边框的宽度
     * @property [background = false] - 是否背景
     * @property [backgroundColor = "#000000"] - 背景颜色
     * @property [backgroundPadding = 0] - 背景内边距，指定文字与填充边界内容之间的空间(以像素为单位)。
     * @property [hasPixelOffset = false] - 是否存在偏移量
     * @property [pixelOffsetX = 0] - 横向偏移像素
     * @property [pixelOffsetY = 0] - 纵向偏移像素
     * @property [pixelOffset = Cartesian2.ZERO] - 指定像素偏移量。
     * @property [scaleByDistance = false] - 是否按视距缩放 或 设定基于与相机的距离设置比例。
     * @property [scaleByDistance_far = 1000000] - 上限
     * @property [scaleByDistance_farValue = 0.1] - 比例值
     * @property [scaleByDistance_near = 1000] - 下限
     * @property [scaleByDistance_nearValue = 1] - 比例值
     * @property [distanceDisplayCondition = false] - 是否按视距显示 或 指定此框将显示在与摄像机的多大距离。
     * @property [distanceDisplayCondition_far = 100000] - 最大距离
     * @property [distanceDisplayCondition_near = 0] - 最小距离
     * @property [clampToGround = false] - 是否贴地
     * @property [heightReference = Cesium.HeightReference.NONE] - 指定高度相对于什么的属性。
     * @property [visibleDepth = true] - 是否被遮挡
     * @property [disableDepthTestDistance] - 指定从相机到禁用深度测试的距离。
     * @property [translucencyByDistance] - 用于基于与相机的距离设置半透明度。
     * @property [setHeight] - 指定坐标高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [addHeight] - 在现有坐标基础上增加的高度值（常用于图层中配置）,也支持字符串模版配置
     */
    type StyleOptions = any | {
        text?: string;
        scale?: number;
        horizontalOrigin?: Cesium.HorizontalOrigin;
        verticalOrigin?: Cesium.VerticalOrigin;
        font_family?: string;
        font_size?: number;
        font_weight?: string;
        font_style?: string;
        font?: string;
        textBaseline?: string;
        fill?: boolean;
        color?: string | Cesium.Color;
        opacity?: number;
        stroke?: boolean;
        strokeColor?: string | Cesium.Color;
        strokeWidth?: number;
        outline?: boolean;
        outlineColor?: string | Cesium.Color;
        outlineWidth?: number;
        background?: boolean;
        backgroundColor?: string | Cesium.Color;
        backgroundPadding?: number;
        hasPixelOffset?: boolean;
        pixelOffsetX?: number;
        pixelOffsetY?: number;
        pixelOffset?: Cesium.Cartesian2 | number[];
        scaleByDistance?: boolean | Cesium.NearFarScalar;
        scaleByDistance_far?: number;
        scaleByDistance_farValue?: number;
        scaleByDistance_near?: number;
        scaleByDistance_nearValue?: number;
        distanceDisplayCondition?: boolean | Cesium.DistanceDisplayCondition;
        distanceDisplayCondition_far?: number;
        distanceDisplayCondition_near?: number;
        clampToGround?: boolean;
        heightReference?: Cesium.HeightReference;
        visibleDepth?: boolean;
        disableDepthTestDistance?: number;
        translucencyByDistance?: Cesium.NearFarScalar;
        setHeight?: number | string;
        addHeight?: number | string;
    };
}

/**
 * Canvas 文本点（label转图片）
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.drawShow = true] - 绘制时，是否自动隐藏entity，可避免拾取坐标存在问题。
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class CanvasLabelEntity extends BasePointEntity {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | Cesium.PositionProperty | number[] | string;
        style: CanvasLabelEntity.StyleOptions | any;
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        drawShow?: boolean;
        hasEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

declare namespace CircleEntity {
    /**
     * 圆、圆柱 支持的样式信息
     * @property [radius = 100] - 半径
     * @property [height = 0] - 高程，圆相对于椭球面的高度。
     * @property [heightReference = Cesium.HeightReference.NONE] - 指定高度相对于什么的属性。
     * @property [diffHeight = 100] - 高度差（圆柱本身的高度），与extrudedHeight二选一。
     * @property [extrudedHeight] - 指定椭圆的挤压面相对于椭球面的高度。
     * @property [extrudedHeightReference = Cesium.HeightReference.NONE] - 指定挤压高度相对于什么的属性。
     * @property [fill = true] - 是否填充
     * @property [materialType = "Color"] - 填充类型 ,可选项：{@link MaterialType}
     * @property [materialOptions] - materialType对应的{@link MaterialType}中材质参数
     * @property [material = Cesium.Color.WHITE] - 指定用于填充的材质，指定material后`materialType`和`material材质参数`将被覆盖。
     * @property [color = "#3388ff"] - 填充颜色
     * @property [opacity = 1.0] - 透明度, 取值范围：0.0-1.0
     * @property [outline = false] - 是否边框
     * @property [outlineWidth = 1] - 边框宽度
     * @property [outlineColor = "#ffffff"] - 边框颜色
     * @property [outlineOpacity = 0.6] - 边框透明度
     * @property [outlineStyle] - 边框的完整自定义样式，会覆盖outlineWidth、outlineColor等参数。
     * @property [rotation = 0] - 旋转角度（弧度值），正北为0，逆时针旋转
     * @property [rotationDegree = 0] - 旋转角度（度数值，0-360度），与rotation二选一
     * @property [stRotation = 0] - 椭圆纹理的角度（弧度值），正北为0，逆时针旋转
     * @property [stRotationDegree = 0] - 椭圆纹理的角度（度数值，0-360度），与stRotation二选一
     * @property [distanceDisplayCondition = false] - 是否按视距显示 或 指定此框将显示在与摄像机的多大距离。
     * @property [distanceDisplayCondition_far = 100000] - 最大距离
     * @property [distanceDisplayCondition_near = 0] - 最小距离
     * @property [granularity = Cesium.Math.RADIANS_PER_DEGREE] - 指定椭圆上各点之间的角距离。
     * @property [numberOfVerticalLines = 16] - 指定沿轮廓的周长绘制的垂直线的数量。
     * @property [hasShadows = false] - 是否投射阴影
     * @property [shadows = Cesium.ShadowMode.DISABLED] - 指定椭圆是投射还是接收来自光源的阴影。
     * @property [clampToGround = false] - 是否贴地
     * @property [classificationType = Cesium.ClassificationType.BOTH] - 指定贴地时的覆盖类型，是只对地形、3dtiles 或 两者同时。
     * @property [zIndex = 0] - 层级顺序。用于排序地面几何。只有在椭圆为常量且没有指定height或exturdedHeight时才有效果。
     * @property [addHeight] - 在现有坐标基础上增加的高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [highlight] - 鼠标移入或单击(type:'click')后的对应高亮的部分样式，创建Graphic后也可以openHighlight、closeHighlight方法来手动调用
     * @property [label] - 支持附带文字的显示
     */
    type StyleOptions = any | {
        radius?: number;
        height?: number;
        heightReference?: Cesium.HeightReference;
        diffHeight?: number;
        extrudedHeight?: number;
        extrudedHeightReference?: Cesium.HeightReference;
        fill?: boolean;
        materialType?: string;
        materialOptions?: any;
        material?: Cesium.MaterialProperty | BaseMaterialProperty | Cesium.Color;
        color?: string | Cesium.Color;
        opacity?: number;
        outline?: boolean;
        outlineWidth?: number;
        outlineColor?: string | Cesium.Color;
        outlineOpacity?: number;
        outlineStyle?: PolylineEntity.StyleOptions | any;
        rotation?: number | Cesium.Property;
        rotationDegree?: number;
        stRotation?: number | Cesium.Property;
        stRotationDegree?: number;
        distanceDisplayCondition?: boolean | Cesium.DistanceDisplayCondition;
        distanceDisplayCondition_far?: number;
        distanceDisplayCondition_near?: number;
        granularity?: number;
        numberOfVerticalLines?: number;
        hasShadows?: boolean;
        shadows?: Cesium.ShadowMode;
        clampToGround?: boolean;
        classificationType?: Cesium.ClassificationType;
        zIndex?: number;
        addHeight?: number | string;
        highlight?: CircleEntity.StyleOptions | any;
        label?: LabelEntity.StyleOptions | any;
    };
}

/**
 * 圆、圆柱  Entity对象
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.drawShowRadius = true] - 绘制时，是否显示圆的半径。
 * @param [options.drawShow = true] - 绘制时，是否自动隐藏entity，可避免拾取坐标存在问题。
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.hasMoveEdit = true] - 编辑时，是否可以整体平移
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class CircleEntity extends BasePointEntity {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | Cesium.PositionProperty | number[] | string;
        style: CircleEntity.StyleOptions | any;
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        drawShowRadius?: boolean;
        drawShow?: boolean;
        hasEdit?: boolean;
        hasMoveEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 矢量数据对应的 Cesium内部对象的具体类型对象
     */
    readonly entityGraphic: Cesium.EllipseGraphics;
    /**
     * 编辑处理类
     */
    readonly EditClass: EditCircle;
    /**
     * 圆的边线坐标集合（笛卡尔坐标）
     */
    outlinePositions: Cesium.Cartesian3[];
    /**
     * 圆的边线坐标集合（经纬度二维数组），示例 [ [123.123456,32.654321,198.7], [111.123456,22.654321,50.7], …… ]
     */
    readonly outlineCoordinates: any[][];
    /**
     * 圆的半径（单位：米）
     */
    radius: number;
    /**
     * 高度（单位：米）
     */
    height: number;
    /**
     * 将矢量数据导出为GeoJSON格式规范对象。
     * @param [options] - 参数对象:
     * @param [options.outline] - 是否导出边线的坐标
     * @param [options.closure] - 导出outline时，是否闭合，true时会添加第0个点进行闭合。
     * @param [options.count] - 导出outline时，点的数量，返回的总数为 count*4
     * @param [options.noAlt] - 不导出高度值
     * @returns GeoJSON格式规范对象
     */
    toGeoJSON(options?: {
        outline?: boolean;
        closure?: boolean;
        count?: boolean;
        noAlt?: boolean;
    }): any;
    /**
     * 获取圆的边线坐标集合（笛卡尔坐标）
     * @param [closure = true] - 是否闭合，true时会添加第0个点进行闭合。
     * @param [count] - 象限内点的数量，返回的总数为 count*4
     * @returns 边线坐标数组
     */
    getOutlinePositions(closure?: boolean, count?: number): Cesium.Cartesian3[];
    /**
     * 获取圆的边线坐标集合（经纬度二维数组）
     * @param [closure = true] - 是否闭合，true时会添加第0个点进行闭合。
     * @param [count = 90] - 象限内点的数量，返回的总数为 count*4
     * @param [noAlt] - 是否包含高度值
     * @returns 边线坐标数组（经纬度二维数组）
     */
    getOutlineCoordinates(closure?: boolean, count?: number, noAlt?: boolean): any[][];
    /**
     * 获取数据的矩形边界
     * @param [options] - 控制参数
     * @param [options.isFormat = false] - 是否格式化，格式化时示例： { xmin: 73.16895, xmax: 134.86816, ymin: 12.2023, ymax: 54.11485 }
     * @returns isFormat：true时，返回格式化对象，isFormat：false时返回Cesium.Rectangle对象
     */
    getRectangle(options?: {
        isFormat?: boolean;
    }): Cesium.Rectangle | any;
    /**
     * 判断点是否在圆内
     * @param position - 需要判断的点
     * @returns 是否在圆内
     */
    isInPoly(position: Cesium.Cartesian3 | LngLatPoint): boolean;
    /**
     * 位置坐标 （笛卡尔坐标）, 赋值时可以传入LatLngPoint对象
     */
    position: Cesium.Cartesian3 | LngLatPoint;
    /**
     * 飞行定位至 数据所在的视角
     * @param [options = {}] - 参数对象:
     * @param [options.radius] - 点状数据时，相机距离目标点的距离（单位：米）
     * @param [options.scale = 1.2] - 线面数据时，缩放比例，可以控制视角比矩形略大一些，这样效果更友好。
     * @param [options.minHeight] - 定位时相机的最小高度值，用于控制避免异常数据
     * @param [options.maxHeight] - 定位时相机的最大高度值，用于控制避免异常数据
     * @param [options.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
     * @param [options.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
     * @param [options.roll] - 翻滚角度值，绕经度线旋转角度,-90至90
     * @param [options.duration] - 飞行时间（单位：秒）。如果省略，SDK内部会根据飞行距离计算出理想的飞行时间。
     * @param [options.complete] - 飞行完成后要执行的函数。
     * @param [options.cancel] - 飞行取消时要执行的函数。
     * @param [options.endTransform] - 变换矩阵表示飞行结束时相机所处的参照系。
     * @param [options.maximumHeight] - 飞行高峰时的最大高度。
     * @param [options.pitchAdjustHeight] - 如果相机飞得比这个值高，在飞行过程中调整俯仰以向下看，并保持地球在视口。
     * @param [options.flyOverLongitude] - 地球上的两点之间总有两条路。这个选项迫使相机选择战斗方向飞过那个经度。
     * @param [options.flyOverLongitudeWeight] - 仅在通过flyOverLongitude指定的lon上空飞行，只要该方式的时间不超过flyOverLongitudeWeight的短途时间。
     * @param [options.convert = true] - 是否将目的地从世界坐标转换为场景坐标（仅在不使用3D时相关）。
     * @param [options.easingFunction] - 控制在飞行过程中如何插值时间。
     * @returns 如果飞行成功则解析为true的承诺，如果当前未在场景中可视化目标或取消飞行，则为false的Promise
     */
    flyTo(options?: {
        radius?: number;
        scale?: number;
        minHeight?: number;
        maxHeight?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        duration?: number;
        complete?: Cesium.Camera.FlightCompleteCallback;
        cancel?: Cesium.Camera.FlightCancelledCallback;
        endTransform?: Cesium.Matrix4;
        maximumHeight?: number;
        pitchAdjustHeight?: number;
        flyOverLongitude?: number;
        flyOverLongitudeWeight?: number;
        convert?: boolean;
        easingFunction?: Cesium.EasingFunction.Callback;
    }): Promise<boolean>;
}

declare namespace ConeTrack {
    /**
     * 圆锥追踪体 支持的样式信息
     * @property [angle] - 圆锥追踪体张角（角度值，取值范围 0.01-89.99）
     * @property [bottomRadius = 100] - 不指定angle时，也可以直接指定圆锥底部半径（单位：米）
     * @property [length = 100] - 圆锥追踪体长度值（单位：米），没有指定targetPosition时有效
     * @property [heading = 0] - 方向角 （度数值，0-360度），没有指定targetPosition时有效
     * @property [pitch = 0] - 俯仰角（度数值，0-360度），没有指定targetPosition时有效
     * @property [roll = 0] - 翻滚角（度数值，0-360度），没有指定targetPosition时有效
     * @property [fill = true] - 是否填充
     * @property [materialType = "Color"] - 填充类型 ,可选项：{@link MaterialType}
     * @property [materialOptions] - materialType对应的{@link MaterialType}中材质参数
     * @property [material = Cesium.Color.WHITE] - 指定用于填充的材质，指定material后`materialType`和`materialOptions`将被覆盖。
     * @property [color = "#00FF00"] - 填充颜色
     * @property [opacity = 1.0] - 透明度, 取值范围：0.0-1.0
     * @property [outline = false] - 是否边框
     * @property [outlineWidth = 1] - 边框宽度
     * @property [outlineColor = "#ffffff"] - 边框颜色
     * @property [outlineOpacity = 0.6] - 边框透明度
     * @property [numberOfVerticalLines = 16] - 指定沿轮廓的周长绘制的垂直线的数量。
     * @property [slices = 128] - 圆柱体周长周围的边数。
     * @property [distanceDisplayCondition = false] - 是否按视距显示 或 指定此框将显示在与摄像机的多大距离。
     * @property [distanceDisplayCondition_far = 100000] - 最大距离
     * @property [distanceDisplayCondition_near = 0] - 最小距离
     * @property [hasShadows = false] - 是否阴影
     * @property [shadows = Cesium.ShadowMode.DISABLED] - 指定圆柱是投射还是接收来自光源的阴影。
     * @property [heightReference = Cesium.HeightReference.NONE] - 指定从实体位置到它的相对高度。
     * @property [setHeight] - 指定坐标高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [addHeight] - 在现有坐标基础上增加的高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [highlight] - 鼠标移入或单击(type:'click')后的对应高亮的部分样式，创建Graphic后也可以openHighlight、closeHighlight方法来手动调用
     * @property [label] - 支持附带文字的显示
     */
    type StyleOptions = any | {
        angle?: number;
        bottomRadius?: number;
        length?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        fill?: boolean;
        materialType?: string;
        materialOptions?: any;
        material?: Cesium.MaterialProperty | BaseMaterialProperty | Cesium.Color;
        color?: string | Cesium.Color;
        opacity?: number;
        outline?: boolean;
        outlineWidth?: string;
        outlineColor?: string | Cesium.Color;
        outlineOpacity?: number;
        numberOfVerticalLines?: number;
        slices?: number;
        distanceDisplayCondition?: boolean | Cesium.DistanceDisplayCondition;
        distanceDisplayCondition_far?: number;
        distanceDisplayCondition_near?: number;
        hasShadows?: boolean;
        shadows?: Cesium.ShadowMode;
        heightReference?: Cesium.HeightReference;
        setHeight?: number | string;
        addHeight?: number | string;
        highlight?: CylinderEntity.StyleOptions | any;
        label?: LabelEntity.StyleOptions | any;
    };
}

/**
 * 圆锥追踪体
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param [options.targetPosition] - 追踪的目标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class ConeTrack extends CylinderEntity {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | Cesium.PositionProperty | number[] | string;
        targetPosition?: LngLatPoint | Cesium.Cartesian3 | Cesium.PositionProperty | number[] | string;
        style: ConeTrack.StyleOptions | any;
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 追踪的目标位置(确定了方向和距离)
     */
    targetPosition: Cesium.Cartesian3 | LngLatPoint;
    /**
     * 追踪的目标位置
     */
    readonly targetPoint: LngLatPoint;
    /**
     * 夹角，半场角度，取值范围 0.01-89.99
     */
    angle: number;
    /**
     * 编辑处理类
     */
    readonly EditClass: EditCylinder;
}

/**
 * 定时闪烁高亮Entity（点、线、面）
 */
declare class FlickerEntity {
    /**
     * 高亮闪烁 Enity实体对象
     * @param entitys - entity对象或对象数组
     * @param [opts = {}] - 控制参数
     * @param [opts.time] - 闪烁的时长(秒)，未设置时不自动停止。
     * @param [opts.color = Cesium.Color.YELLOW] - 高亮的颜色
     * @param [opts.maxAlpha = 0.3] - 闪烁的最大透明度，从 0 到 maxAlpha 渐变
     * @param [opts.onEnd] - 播放完成后的回调方法
     * @returns 高亮闪烁控制 对象
     */
    startFlicker(entitys: Cesium.Entity | Cesium.Entity[], opts?: {
        time?: number;
        color?: Cesium.Color;
        maxAlpha?: number;
        onEnd?: (...params: any[]) => any;
    }): FlickerEntity;
    /**
     * 停止高亮闪烁
     * @returns 高亮闪烁控制 对象
     */
    stopFlicker(): FlickerEntity;
}

declare namespace CorridorEntity {
    /**
     * 走廊 支持的样式信息
     * @property [width = 100] - 走廊宽度，指定走廊边缘之间的距离。
     * @property [cornerType] - 指定边角的样式。
     * @property [height = 0] - 高程，圆相对于椭球面的高度。
     * @property [heightReference = Cesium.HeightReference.NONE] - 指定高度相对于什么的属性。
     * @property [diffHeight = 100] - 高度差（走廊本身的高度），与extrudedHeight二选一。
     * @property [extrudedHeight] - 指定走廊挤压面相对于椭球面的高度。
     * @property [extrudedHeightReference = Cesium.HeightReference.NONE] - 指定挤压高度相对于什么的属性。
     * @property [fill = true] - 是否填充。
     * @property [materialType = "Color"] - 填充类型 ,可选项：{@link MaterialType}
     * @property [materialOptions] - materialType对应的{@link MaterialType}中材质参数
     * @property [material = Cesium.Color.WHITE] - 指定用于填充的材质，指定material后`materialType`和`materialOptions`将被覆盖。
     * @property [color = "#3388ff"] - 颜色
     * @property [opacity = 1.0] - 透明度, 取值范围：0.0-1.0
     * @property [outline = false] - 是否边框
     * @property [outlineWidth = 1] - 边框宽度
     * @property [outlineColor = "#ffffff"] - 边框颜色
     * @property [outlineOpacity = 0.6] - 边框透明度
     * @property [distanceDisplayCondition = false] - 是否按视距显示 或 指定此框将显示在与摄像机的多大距离。
     * @property [distanceDisplayCondition_far = 100000] - 最大距离
     * @property [distanceDisplayCondition_near = 0] - 最小距离
     * @property [granularity = Cesium.Math.RADIANS_PER_DEGREE] - 指定每个纬度和经度之间的距离。
     * @property [hasShadows = false] - 是否投射阴影
     * @property [shadows = Cesium.ShadowMode.DISABLED] - 指定走廊是投射还是接收来自光源的阴影。
     * @property [clampToGround = false] - 是否贴地
     * @property [classificationType = Cesium.ClassificationType.BOTH] - 指定贴地时的覆盖类型，是只对地形、3dtiles 或 两者同时。
     * @property [zIndex = 0] - 层级顺序，用于排序。只有在高度和挤压高度未定义，并且走廊是静态的情况下才有效果。
     * @property [setHeight] - 指定坐标高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [addHeight] - 在现有坐标基础上增加的高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [highlight] - 鼠标移入或单击(type:'click')后的对应高亮的部分样式，创建Graphic后也可以openHighlight、closeHighlight方法来手动调用
     * @property [label] - 支持附带文字的显示
     */
    type StyleOptions = any | {
        width?: number;
        cornerType?: string | Cesium.CornerType;
        height?: number | Cesium.Property;
        heightReference?: Cesium.HeightReference;
        diffHeight?: number;
        extrudedHeight?: number;
        extrudedHeightReference?: Cesium.HeightReference;
        fill?: boolean;
        materialType?: string;
        materialOptions?: any;
        material?: Cesium.MaterialProperty | BaseMaterialProperty | Cesium.Color;
        color?: string | Cesium.Color;
        opacity?: number;
        outline?: boolean;
        outlineWidth?: number;
        outlineColor?: string | Cesium.Color;
        outlineOpacity?: number;
        distanceDisplayCondition?: boolean | Cesium.DistanceDisplayCondition;
        distanceDisplayCondition_far?: number;
        distanceDisplayCondition_near?: number;
        granularity?: number;
        hasShadows?: boolean;
        shadows?: Cesium.ShadowMode;
        clampToGround?: boolean;
        classificationType?: Cesium.ClassificationType;
        zIndex?: number;
        setHeight?: number | string;
        addHeight?: number | string;
        highlight?: CorridorEntity.StyleOptions | any;
        label?: LabelEntity.StyleOptions | any;
    };
}

/**
 * 走廊  Entity矢量数据
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.minPointNum = 2] - 绘制时，至少需要点的个数
 * @param [options.maxPointNum = 9999] - 绘制时，最多允许点的个数
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.hasMoveEdit = true] - 编辑时，是否可以整体平移
 * @param [options.hasHeightEdit = true] - 编辑时，当有diffHeight时，是否可以编辑高度
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class CorridorEntity extends BasePolyEntity {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[];
        style: CorridorEntity.StyleOptions | any;
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        minPointNum?: number;
        maxPointNum?: number;
        hasEdit?: boolean;
        hasMoveEdit?: boolean;
        hasHeightEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 矢量数据对应的 Cesium内部对象的具体类型对象
     */
    readonly entityGraphic: Cesium.CorridorGraphics;
    /**
     * 编辑处理类
     */
    readonly EditClass: EditCorridor;
}

/**
 * 曲线
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.minPointNum = 2] - 绘制时，至少需要点的个数
 * @param [options.maxPointNum = 9999] - 绘制时，最多允许点的个数
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.hasMoveEdit = true] - 编辑时，是否可以整体平移
 * @param [options.hasHeightEdit = true] - 编辑时，当有diffHeight时，是否可以编辑高度
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class CurveEntity extends PolylineEntity {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[];
        style: PolylineEntity.StyleOptions | any;
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        minPointNum?: number;
        maxPointNum?: number;
        hasEdit?: boolean;
        hasMoveEdit?: boolean;
        hasHeightEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

declare namespace CylinderEntity {
    /**
     * 圆锥 支持的样式信息
     * @property [topRadius = 0] - 顶部半径，指定圆柱体顶部的半径，当为0时即为圆锥。
     * @property [bottomRadius = 100] - 底部半径，指定圆柱体底部半径。
     * @property [length = 100] - 高度，柱面长度。
     * @property [heading = 0] - 方向角 （度数值，0-360度）
     * @property [pitch = 0] - 俯仰角（度数值，0-360度）
     * @property [roll = 0] - 翻滚角（度数值，0-360度）
     * @property [fill = true] - 是否填充
     * @property [materialType = "Color"] - 填充类型 ,可选项：{@link MaterialType}
     * @property [materialOptions] - materialType对应的{@link MaterialType}中材质参数
     * @property [material = Cesium.Color.WHITE] - 指定用于填充的材质，指定material后`materialType`和`materialOptions`将被覆盖。
     * @property [color = "#00FF00"] - 填充颜色
     * @property [opacity = 1.0] - 透明度, 取值范围：0.0-1.0
     * @property [outline = false] - 是否边框
     * @property [outlineWidth = 1] - 边框宽度
     * @property [outlineColor = "#ffffff"] - 边框颜色
     * @property [outlineOpacity = 0.6] - 边框透明度
     * @property [numberOfVerticalLines = 16] - 指定沿轮廓的周长绘制的垂直线的数量。
     * @property [slices = 128] - 圆柱体周长周围的边数。
     * @property [distanceDisplayCondition = false] - 是否按视距显示 或 指定此框将显示在与摄像机的多大距离。
     * @property [distanceDisplayCondition_far = 100000] - 最大距离
     * @property [distanceDisplayCondition_near = 0] - 最小距离
     * @property [hasShadows = false] - 是否阴影
     * @property [shadows = Cesium.ShadowMode.DISABLED] - 指定圆柱是投射还是接收来自光源的阴影。
     * @property [heightReference = Cesium.HeightReference.NONE] - 指定从实体位置到它的相对高度。
     * @property [setHeight] - 指定坐标高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [addHeight] - 在现有坐标基础上增加的高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [highlight] - 鼠标移入或单击(type:'click')后的对应高亮的部分样式，创建Graphic后也可以openHighlight、closeHighlight方法来手动调用
     * @property [label] - 支持附带文字的显示
     */
    type StyleOptions = any | {
        topRadius?: number;
        bottomRadius?: number;
        length?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        fill?: boolean;
        materialType?: string;
        materialOptions?: any;
        material?: Cesium.MaterialProperty | BaseMaterialProperty | Cesium.Color;
        color?: string | Cesium.Color;
        opacity?: number;
        outline?: boolean;
        outlineWidth?: string;
        outlineColor?: string | Cesium.Color;
        outlineOpacity?: number;
        numberOfVerticalLines?: number;
        slices?: number;
        distanceDisplayCondition?: boolean | Cesium.DistanceDisplayCondition;
        distanceDisplayCondition_far?: number;
        distanceDisplayCondition_near?: number;
        hasShadows?: boolean;
        shadows?: Cesium.ShadowMode;
        heightReference?: Cesium.HeightReference;
        setHeight?: number | string;
        addHeight?: number | string;
        highlight?: CylinderEntity.StyleOptions | any;
        label?: LabelEntity.StyleOptions | any;
    };
}

/**
 * 圆锥  Entity对象
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.orientation] - 实体方向
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.drawShow = true] - 绘制时，是否自动隐藏entity，可避免拾取坐标存在问题。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class CylinderEntity extends BasePointEntity {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | Cesium.PositionProperty | number[] | string;
        style: CylinderEntity.StyleOptions | any;
        attr?: any;
        orientation?: Cesium.Property;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        drawShow?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 矢量数据对应的 Cesium内部对象的具体类型对象
     */
    readonly entityGraphic: Cesium.CylinderGraphics;
    /**
     * 编辑处理类
     */
    readonly EditClass: EditCylinder;
    /**
     * 位置坐标 （笛卡尔坐标）, 赋值时可以传入LatLngPoint对象
     */
    position: Cesium.Cartesian3 | LngLatPoint;
}

declare namespace DivBillboardEntity {
    /**
     * HTML转图片后的图标点Entity 支持的样式信息
     * @property html - Html内容
     * @property [opacity = 1.0] - 透明度，取值范围：0.0-1.0
     * @property [scale = 1] - 图像大小的比例
     * @property [rotation = 0] - 旋转角度（弧度值），正北为0，逆时针旋转
     * @property [rotationDegree = 0] - 旋转角度（度数值，0-360度），与rotation二选一
     * @property [horizontalOrigin] - 横向方向的定位
     * @property [verticalOrigin] - 垂直方向的定位
     * @property [width] - 指定广告牌的宽度(以像素为单位)，覆盖图片本身大小。
     * @property [height] - 指定广告牌的高度(以像素为单位)，覆盖图片本身大小。
     * @property [hasPixelOffset = false] - 是否存在偏移量
     * @property [pixelOffsetX = 0] - 横向偏移像素
     * @property [pixelOffsetY = 0] - 纵向偏移像素
     * @property [pixelOffset = Cartesian2.ZERO] - 指定像素偏移量。
     * @property [scaleByDistance = false] - 是否按视距缩放 或 设置基于与相机的距离缩放点
     * @property [scaleByDistance_far = 1000000] - 上限
     * @property [scaleByDistance_farValue = 0.1] - 比例值
     * @property [scaleByDistance_near = 1000] - 下限
     * @property [scaleByDistance_nearValue = 1] - 比例值
     * @property [distanceDisplayCondition = false] - 是否按视距显示 或 指定该广告牌将显示在与摄像机的多大距离
     * @property [distanceDisplayCondition_far = 10000] - 最大距离
     * @property [distanceDisplayCondition_near = 0] - 最小距离
     * @property [clampToGround = false] - 是否贴地
     * @property [heightReference = Cesium.HeightReference.NONE] - 指定高度相对于什么的属性。
     * @property [visibleDepth = true] - 是否被遮挡
     * @property [disableDepthTestDistance] - 指定从相机到禁用深度测试的距离。
     * @property [color = Color.WHITE] - 附加的颜色
     * @property [eyeOffset = Cartesian3.ZERO] - 眼偏移量
     * @property [alignedAxis = Cartesian3.ZERO] - 指定单位旋转向量轴。
     * @property [sizeInMeters] - 指定该广告牌的大小是否应该以米来度量。
     * @property [translucencyByDistance] - 用于基于与相机的距离设置半透明度。
     * @property [pixelOffsetScaleByDistance] - 用于基于与相机的距离设置pixelOffset。
     * @property [imageSubRegion] - 定义用于广告牌的图像的子区域，而不是从左下角开始以像素为单位的整个图像。
     * @property [setHeight] - 指定坐标高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [addHeight] - 在现有坐标基础上增加的高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [highlight] - 鼠标移入或单击(type:'click')后的对应高亮的部分样式，创建Graphic后也可以openHighlight、closeHighlight方法来手动调用
     * @property [label] - 支持附带文字的显示
     */
    type StyleOptions = any | {
        html: string;
        opacity?: number;
        scale?: number;
        rotation?: number;
        rotationDegree?: number;
        horizontalOrigin?: Cesium.HorizontalOrigin;
        verticalOrigin?: Cesium.VerticalOrigin;
        width?: number;
        height?: number;
        hasPixelOffset?: boolean;
        pixelOffsetX?: number;
        pixelOffsetY?: number;
        pixelOffset?: Cesium.Cartesian2 | number[];
        scaleByDistance?: boolean | Cesium.NearFarScalar;
        scaleByDistance_far?: number;
        scaleByDistance_farValue?: number;
        scaleByDistance_near?: number;
        scaleByDistance_nearValue?: number;
        distanceDisplayCondition?: boolean | Cesium.DistanceDisplayCondition;
        distanceDisplayCondition_far?: number;
        distanceDisplayCondition_near?: number;
        clampToGround?: boolean;
        heightReference?: Cesium.HeightReference;
        visibleDepth?: boolean;
        disableDepthTestDistance?: number;
        color?: Cesium.Color;
        eyeOffset?: Cesium.Cartesian3;
        alignedAxis?: Cesium.Cartesian3;
        sizeInMeters?: boolean;
        translucencyByDistance?: Cesium.NearFarScalar;
        pixelOffsetScaleByDistance?: Cesium.NearFarScalar;
        imageSubRegion?: Cesium.BoundingRectangle;
        setHeight?: number | string;
        addHeight?: number | string;
        highlight?: BillboardEntity.StyleOptions | any;
        label?: LabelEntity.StyleOptions | any;
    };
}

/**
 * HTML转图片后的 图标点Entity，
 * 需要引入html2canvas或domtoimage插件进行DOM转图片
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.drawShow = true] - 绘制时，是否自动隐藏entity，可避免拾取坐标存在问题。
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class DivBillboardEntity extends BillboardEntity {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | Cesium.PositionProperty | number[] | string;
        style: DivBillboardEntity.StyleOptions | any;
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        drawShow?: boolean;
        hasEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

/**
 * 标绘处理对应的编辑基类
 */
declare class EditBase {
    /**
     * 矢量数据对应的 Cesium内部对象的具体类型对象
     */
    readonly entityGraphic: any;
    /**
     * 是否已经开启 旋转矩阵
     */
    readonly hasRotateMatrix: boolean;
    /**
     * 是否已经开启 平移矩阵
     */
    readonly hasMoveMatrix: boolean;
    /**
     * 激活绘制
     * @returns 当前对象本身，可以链式调用
     */
    activate(): EditBase;
    /**
     * 释放绘制
     * @returns 当前对象本身，可以链式调用
     */
    disable(): EditBase;
    /**
     * 开启 平移矩阵
     * @param [graphic] - 矢量对象
     * @param [eventRM] - 事件对象，仅用于传递
     */
    startMoveMatrix(graphic?: BaseGraphic, eventRM?: any): void;
    /**
     * 停止 平移矩阵
     */
    stopMoveMatrix(): void;
    /**
     * 开启 旋转矩阵
     * @param [graphic] - 矢量对象
     */
    startRotateMatrix(graphic?: BaseGraphic): void;
    /**
     * 停止 旋转矩阵
     */
    stopRotateMatrix(): void;
}

/**
 * BoxEntity对象，标绘处理对应的编辑类
 */
declare class EditBox extends EditBase {
    /**
     * 位置坐标 （笛卡尔坐标）
     */
    position: Cesium.Cartesian3;
}

/**
 * Circle对象 标绘处理对应的编辑类
 */
declare class EditCircle extends EditPoly {
}

/**
 * Corridor对象 标绘处理对应的编辑类
 */
declare class EditCorridor extends EditPoly {
}

/**
 * Cylinder对象 标绘处理对应的编辑类
 */
declare class EditCylinder extends EditPoly {
}

/**
 * Ellipsoid对象 标绘处理对应的编辑类
 */
declare class EditEllipsoid extends EditBase {
}

/**
 * Model对象 标绘处理对应的编辑类
 */
declare class EditModel extends EditBase {
}

/**
 * Plane对象 标绘处理对应的编辑类
 */
declare class EditPlane extends EditBase {
}

/**
 * Point 对象 标绘处理对应的编辑类
 */
declare class EditPoint extends EditBase {
}

/**
 * 线面状对象 标绘处理对应的编辑类基类
 */
declare class EditPoly extends EditBase {
}

/**
 * Polygon对象 标绘处理对应的编辑类
 */
declare class EditPolygon extends EditPoly {
}

/**
 * Polygon对象 标绘处理对应的编辑类，
 * 用于外部扩展使用，绘制的点与显示的点不一致的标号
 */
declare class EditPolygonEx extends EditPolygon {
}

/**
 * PolylineVolume对象 标绘处理对应的编辑类
 */
declare class EditPolylineVolume extends EditPoly {
}

/**
 * Rectangle对象 标绘处理对应的编辑类，
 */
declare class EditRectangle extends EditPoly {
}

/**
 * 3dtiles对象 标绘处理对应的编辑类
 */
declare class EditTileset extends EditBase {
    /**
     * 开启 旋转矩阵
     * @param [graphic] - 矢量对象
     */
    startRotateMatrix(graphic?: BaseGraphic): void;
}

/**
 * Wall对象 标绘处理对应的编辑类，
 */
declare class EditWall extends EditPoly {
}

declare namespace EllipseEntity {
    /**
     * 椭圆、椭圆柱 支持的样式信息
     * @property [semiMinorAxis = 100] - 椭圆时的 短半径
     * @property [semiMajorAxis = 100] - 椭圆时的 长半径
     * @property [height = 0] - 高程，圆相对于椭球面的高度。
     * @property [heightReference = Cesium.HeightReference.NONE] - 指定高度相对于什么的属性。
     * @property [diffHeight = 100] - 高度差（圆柱本身的高度），与extrudedHeight二选一。
     * @property [extrudedHeight] - 指定椭圆的挤压面相对于椭球面的高度。
     * @property [extrudedHeightReference = Cesium.HeightReference.NONE] - 指定挤压高度相对于什么的属性。
     * @property [fill = true] - 是否填充
     * @property [materialType = "Color"] - 填充类型 ,可选项：{@link MaterialType}
     * @property [materialOptions] - materialType对应的{@link MaterialType}中材质参数
     * @property [material = Cesium.Color.WHITE] - 指定用于填充的材质，指定material后`materialType`和`materialOptions`将被覆盖。
     * @property [color = "#3388ff"] - 填充颜色
     * @property [opacity = 1.0] - 透明度, 取值范围：0.0-1.0
     * @property [outline = false] - 是否边框
     * @property [outlineWidth = 1] - 边框宽度
     * @property [outlineColor = "#ffffff"] - 边框颜色
     * @property [outlineOpacity = 0.6] - 边框透明度
     * @property [outlineStyle] - 边框的完整自定义样式，会覆盖outlineWidth、outlineColor等参数。
     * @property [rotation = 0] - 旋转角度（弧度值），正北为0，逆时针旋转
     * @property [rotationDegree = 0] - 旋转角度（度数值，0-360度），与rotation二选一
     * @property [stRotation = 0] - 椭圆纹理的角度（弧度值），正北为0，逆时针旋转
     * @property [stRotationDegree = 0] - 椭圆纹理的角度（度数值，0-360度），与stRotation二选一
     * @property [distanceDisplayCondition = false] - 是否按视距显示 或 指定此框将显示在与摄像机的多大距离。
     * @property [distanceDisplayCondition_far = 100000] - 最大距离
     * @property [distanceDisplayCondition_near = 0] - 最小距离
     * @property [granularity = Cesium.Math.RADIANS_PER_DEGREE] - 指定椭圆上各点之间的角距离。
     * @property [numberOfVerticalLines = 16] - 指定沿轮廓的周长绘制的垂直线的数量。
     * @property [hasShadows = false] - 是否投射阴影
     * @property [shadows = Cesium.ShadowMode.DISABLED] - 指定椭圆是投射还是接收来自光源的阴影。
     * @property [clampToGround = false] - 是否贴地
     * @property [classificationType = Cesium.ClassificationType.BOTH] - 指定贴地时的覆盖类型，是只对地形、3dtiles 或 两者同时。
     * @property [zIndex = 0] - 层级顺序。用于排序地面几何。只有在椭圆为常量且没有指定height或exturdedHeight时才有效果。
     * @property [addHeight] - 在现有坐标基础上增加的高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [highlight] - 鼠标移入或单击(type:'click')后的对应高亮的部分样式，创建Graphic后也可以openHighlight、closeHighlight方法来手动调用
     * @property [label] - 支持附带文字的显示
     */
    type StyleOptions = any | {
        semiMinorAxis?: number | Cesium.Property;
        semiMajorAxis?: number | Cesium.Property;
        height?: number;
        heightReference?: Cesium.HeightReference;
        diffHeight?: number;
        extrudedHeight?: number;
        extrudedHeightReference?: Cesium.HeightReference;
        fill?: boolean;
        materialType?: string;
        materialOptions?: any;
        material?: Cesium.MaterialProperty | BaseMaterialProperty | Cesium.Color;
        color?: string | Cesium.Color;
        opacity?: number;
        outline?: boolean;
        outlineWidth?: number;
        outlineColor?: string | Cesium.Color;
        outlineOpacity?: number;
        outlineStyle?: PolylineEntity.StyleOptions | any;
        rotation?: number;
        rotationDegree?: number;
        stRotation?: number;
        stRotationDegree?: number;
        distanceDisplayCondition?: boolean | Cesium.DistanceDisplayCondition;
        distanceDisplayCondition_far?: number;
        distanceDisplayCondition_near?: number;
        granularity?: number;
        numberOfVerticalLines?: number;
        hasShadows?: boolean;
        shadows?: Cesium.ShadowMode;
        clampToGround?: boolean;
        classificationType?: Cesium.ClassificationType;
        zIndex?: number;
        addHeight?: number | string;
        highlight?: CircleEntity.StyleOptions | any;
        label?: LabelEntity.StyleOptions | any;
    };
}

/**
 * 椭圆、椭圆柱  Entity对象
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.drawShow = true] - 绘制时，是否自动隐藏entity，可避免拾取坐标存在问题。
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class EllipseEntity extends CircleEntity {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | Cesium.PositionProperty | number[] | string;
        style: EllipseEntity.StyleOptions | any;
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        drawShow?: boolean;
        hasEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

declare namespace EllipsoidEntity {
    /**
     * 球、半球、椭球 支持的 样式信息
     * @property [radii] - 指定椭球半径。
     * @property [radii_x = 100] - X半径
     * @property [radii_y = 100] - Y半径
     * @property [radii_z = 100] - Z半径
     * @property [innerRadii] - 指定椭球的内半径。
     * @property [innerRadii_x = 0] - 内部X半径
     * @property [innerRadii_y = 0] - 内部Y半径
     * @property [innerRadii_z = 0] - 内部Z半径
     * @property [minimumClock = 0] - 最小时钟角度（弧度值）
     * @property [minimumClockDegree = 0] - 最小时钟角度（度数值，0-360度），与minimumClock二选一
     * @property [maximumClock = 360] - 最大时钟角度（弧度值）
     * @property [maximumClockDegree = 360] - 最大时钟角度（度数值，0-360度），与maximumClock二选一
     * @property [minimumCone = 0] - 最小锥角（弧度值）
     * @property [minimumConeDegree = 0] - 最小锥角（度数值，0-360度），与minimumCone二选一
     * @property [maximumCone = 180] - 最大圆锥角（弧度值）
     * @property [maximumConeDegree = 180] - 最大圆锥角（度数值，0-360度），与maximumCone二选一
     * @property [heading = 0] - 方向角 （度数值，0-360度）
     * @property [pitch = 0] - 俯仰角（度数值，0-360度）
     * @property [roll = 0] - 翻滚角（度数值，0-360度）
     * @property [fill = true] - 是否填充
     * @property [materialType = "Color"] - 填充类型 ,可选项：{@link MaterialType}
     * @property [materialOptions] - materialType对应的{@link MaterialType}中材质参数
     * @property [material = Cesium.Color.WHITE] - 指定用于填充的材质，指定material后`materialType`和`materialOptions`将被覆盖。
     * @property [color = "#00FF00"] - 颜色
     * @property [opacity = 1.0] - 透明度, 取值范围：0.0-1.0
     * @property [outline = false] - 是否边框
     * @property [outlineWidth = 1] - 边框宽度
     * @property [outlineColor = "#ffffff"] - 边框颜色
     * @property [outlineOpacity = 0.6] - 边框透明度
     * @property [stackPartitions = 64] - 指定竖向划分数量
     * @property [slicePartitions = 64] - 指定横向划分数量
     * @property [subdivisions = 128] - 指定每个轮廓环的样本数量，确定曲率的粒度。
     * @property [heightReference = Cesium.HeightReference.NONE] - 指定从实体位置到它的相对高度。
     * @property [distanceDisplayCondition = false] - 是否按视距显示 或 指定此框将显示在与摄像机的多大距离。
     * @property [distanceDisplayCondition_far = 100000] - 最大距离
     * @property [distanceDisplayCondition_near = 0] - 最小距离
     * @property [hasShadows = false] - 是否投射阴影
     * @property [shadows = Cesium.ShadowMode.DISABLED] - 指定椭球是否投射或接收来自光源的阴影。
     * @property [setHeight] - 指定坐标高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [addHeight] - 在现有坐标基础上增加的高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [highlight] - 鼠标移入或单击(type:'click')后的对应高亮的部分样式，创建Graphic后也可以openHighlight、closeHighlight方法来手动调用
     * @property [label] - 支持附带文字的显示
     */
    type StyleOptions = any | {
        radii?: Cesium.Cartesian3;
        radii_x?: number;
        radii_y?: number;
        radii_z?: number;
        innerRadii?: Cesium.Cartesian3;
        innerRadii_x?: number;
        innerRadii_y?: number;
        innerRadii_z?: number;
        minimumClock?: number;
        minimumClockDegree?: number;
        maximumClock?: number;
        maximumClockDegree?: number;
        minimumCone?: number;
        minimumConeDegree?: number;
        maximumCone?: number;
        maximumConeDegree?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        fill?: boolean;
        materialType?: string;
        materialOptions?: any;
        material?: Cesium.MaterialProperty | BaseMaterialProperty | Cesium.Color;
        color?: string | Cesium.Color;
        opacity?: number;
        outline?: boolean;
        outlineWidth?: string;
        outlineColor?: string | Cesium.Color;
        outlineOpacity?: number;
        stackPartitions?: number;
        slicePartitions?: number;
        subdivisions?: number;
        heightReference?: Cesium.HeightReference;
        distanceDisplayCondition?: boolean | Cesium.DistanceDisplayCondition;
        distanceDisplayCondition_far?: number;
        distanceDisplayCondition_near?: number;
        hasShadows?: boolean;
        shadows?: Cesium.ShadowMode;
        setHeight?: number | string;
        addHeight?: number | string;
        highlight?: EllipsoidEntity.StyleOptions | any;
        label?: LabelEntity.StyleOptions | any;
    };
    /**
     * 动态扫描面 参数
     * @property planeOptions - 扫描面构造参数
     * @property [planeOptions.type = 'heading'] - 扫描旋转的方向，可选值：'heading'，'pitch'，'roll'
     * @property [planeOptions.step = 0.5] - 旋转的步长（角度），控制速度
     * @property [planeOptions.style] - 样式信息
     */
    type ScanPlaneOptions = {
        planeOptions: {
            type?: string;
            step?: number;
            style?: EllipsoidEntity.StyleOptions | any;
        };
    };
}

/**
 * 球、半球、椭球  Entity对象
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.orientation] - 实体方向
 * @param [options.scanPlane] - 动态扫描面
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.drawShow = true] - 绘制时，是否自动隐藏entity，可避免拾取坐标存在问题。
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.hasEditRadii = true] - 编辑时，是否可以编辑半径
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class EllipsoidEntity extends BasePointEntity {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | Cesium.PositionProperty | number[] | string;
        style: EllipsoidEntity.StyleOptions | any;
        attr?: any;
        orientation?: Cesium.Property;
        scanPlane?: EllipsoidEntity.ScanPlaneOptions | EllipsoidEntity.ScanPlaneOptions[];
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        drawShow?: boolean;
        hasEdit?: boolean;
        hasEditRadii?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 矢量数据对应的 Cesium内部对象的具体类型对象
     */
    readonly entityGraphic: Cesium.EllipsoidGraphics;
    /**
     * 编辑处理类
     */
    readonly EditClass: EditEllipsoid;
    /**
     * 添加 动态扫描面
     * @param planeOptions - 扫描面构造参数
     * @returns 矢量对象
     */
    addScanPlane(planeOptions: EllipsoidEntity.ScanPlaneOptions): Cesium.Entity;
    /**
     * 移除单个指定的扫描面
     * @param entity - addScanPlane返回的矢量对象
     * @returns 无
     */
    removeScanPlan(entity: Cesium.Entity): void;
    /**
     * 清除所有扫描面
     * @returns 无
     */
    removeAllScanPlan(): void;
    /**
     * 位置坐标 （笛卡尔坐标）, 赋值时可以传入LatLngPoint对象
     */
    position: Cesium.Cartesian3 | LngLatPoint;
}

declare namespace FontBillboardEntity {
    /**
     * Font CSS字体点转图片后的图标点  Entity 支持的样式信息
     * @property [iconClass = ""] - 字体css样式
     * @property [color = '#ff0000'] - 字体颜色
     * @property [iconSize = 50] - 字体大小，单位：像素
     * @property [iconPadding = 10] - 字体DIV生成时div内的padding值
     * @property [opacity = 1.0] - 透明度，取值范围：0.0-1.0
     * @property [scale = 1] - 图像大小的比例
     * @property [rotation = 0] - 旋转角度（弧度值），正北为0，逆时针旋转
     * @property [rotationDegree = 0] - 旋转角度（度数值，0-360度），与rotation二选一
     * @property [horizontalOrigin] - 横向方向的定位
     * @property [verticalOrigin] - 垂直方向的定位
     * @property [width] - 指定广告牌的宽度(以像素为单位)，覆盖图片本身大小。
     * @property [height] - 指定广告牌的高度(以像素为单位)，覆盖图片本身大小。
     * @property [hasPixelOffset = false] - 是否存在偏移量
     * @property [pixelOffsetX = 0] - 横向偏移像素
     * @property [pixelOffsetY = 0] - 纵向偏移像素
     * @property [pixelOffset = Cartesian2.ZERO] - 指定像素偏移量。
     * @property [scaleByDistance = false] - 是否按视距缩放 或 设置基于与相机的距离缩放点
     * @property [scaleByDistance_far = 1000000] - 上限
     * @property [scaleByDistance_farValue = 0.1] - 比例值
     * @property [scaleByDistance_near = 1000] - 下限
     * @property [scaleByDistance_nearValue = 1] - 比例值
     * @property [distanceDisplayCondition = false] - 是否按视距显示 或 指定该广告牌将显示在与摄像机的多大距离
     * @property [distanceDisplayCondition_far = 10000] - 最大距离
     * @property [distanceDisplayCondition_near = 0] - 最小距离
     * @property [clampToGround = false] - 是否贴地
     * @property [heightReference = Cesium.HeightReference.NONE] - 指定高度相对于什么的属性。
     * @property [visibleDepth = true] - 是否被遮挡
     * @property [disableDepthTestDistance] - 指定从相机到禁用深度测试的距离。
     * @property [eyeOffset = Cartesian3.ZERO] - 眼偏移量
     * @property [alignedAxis = Cartesian3.ZERO] - 指定单位旋转向量轴。
     * @property [sizeInMeters] - 指定该广告牌的大小是否应该以米来度量。
     * @property [translucencyByDistance] - 用于基于与相机的距离设置半透明度。
     * @property [pixelOffsetScaleByDistance] - 用于基于与相机的距离设置pixelOffset。
     * @property [imageSubRegion] - 定义用于广告牌的图像的子区域，而不是从左下角开始以像素为单位的整个图像。
     * @property [setHeight] - 指定坐标高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [addHeight] - 在现有坐标基础上增加的高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [highlight] - 鼠标移入或单击(type:'click')后的对应高亮的部分样式，创建Graphic后也可以openHighlight、closeHighlight方法来手动调用
     * @property [label] - 支持附带文字的显示
     */
    type StyleOptions = any | {
        iconClass?: string;
        color?: string;
        iconSize?: number;
        iconPadding?: number;
        opacity?: number;
        scale?: number;
        rotation?: number;
        rotationDegree?: number;
        horizontalOrigin?: Cesium.HorizontalOrigin;
        verticalOrigin?: Cesium.VerticalOrigin;
        width?: number;
        height?: number;
        hasPixelOffset?: boolean;
        pixelOffsetX?: number;
        pixelOffsetY?: number;
        pixelOffset?: Cesium.Cartesian2 | number[];
        scaleByDistance?: boolean | Cesium.NearFarScalar;
        scaleByDistance_far?: number;
        scaleByDistance_farValue?: number;
        scaleByDistance_near?: number;
        scaleByDistance_nearValue?: number;
        distanceDisplayCondition?: boolean | Cesium.DistanceDisplayCondition;
        distanceDisplayCondition_far?: number;
        distanceDisplayCondition_near?: number;
        clampToGround?: boolean;
        heightReference?: Cesium.HeightReference;
        visibleDepth?: boolean;
        disableDepthTestDistance?: number;
        eyeOffset?: Cesium.Cartesian3;
        alignedAxis?: Cesium.Cartesian3;
        sizeInMeters?: boolean;
        translucencyByDistance?: Cesium.NearFarScalar;
        pixelOffsetScaleByDistance?: Cesium.NearFarScalar;
        imageSubRegion?: Cesium.BoundingRectangle;
        setHeight?: number | string;
        addHeight?: number | string;
        highlight?: BillboardEntity.StyleOptions | any;
        label?: LabelEntity.StyleOptions | any;
    };
}

/**
 * Font CSS字体点转图片后的图标点  Entity,
 * 需要引入html2canvas或domtoimage插件进行DOM转图片
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.drawShow = true] - 绘制时，是否自动隐藏entity，可避免拾取坐标存在问题。
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class FontBillboardEntity extends BasePointEntity {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | Cesium.PositionProperty | number[] | string;
        style: FontBillboardEntity.StyleOptions | any;
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        drawShow?: boolean;
        hasEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

declare namespace LabelEntity {
    /**
     * 文本点 支持的样式信息
     * @property [text = "文字"] - 文本内容，换行可以用换行符'\n'。
     * @property [scale = 1.0] - 指定缩放比例。
     * @property [horizontalOrigin] - 横向方向的定位
     * @property [verticalOrigin] - 垂直方向的定位
     * @property [font_family = "楷体"] - 字体 ,可选项：微软雅黑,宋体,楷体,隶书,黑体 等
     * @property [font_size = 30] - 字体大小
     * @property [font_weight = "normal"] - 是否加粗 ,可选项：bold (解释：是),normal (解释：否),
     * @property [font_style = "normal"] - 是否斜体 ,可选项：italic (解释：是),normal (解释：否),
     * @property [font = '30px normal normal 楷体'] - 上叙4个属性的一次性指定CSS字体的属性。
     * @property [fill = true] - 是否填充
     * @property [color = "#ffffff"] - 文本颜色
     * @property [opacity = 1.0] - 透明度，取值范围：0.0-1.0
     * @property [outline = false] - 是否衬色
     * @property [outlineColor = "#000000"] - 衬色颜色
     * @property [outlineOpacity = 0.6] - 衬色透明度
     * @property [outlineWidth = 2.0] - 衬色宽度
     * @property [background = false] - 是否背景
     * @property [backgroundColor = "#000000"] - 背景颜色
     * @property [backgroundOpacity = 0.5] - 背景透明度
     * @property [backgroundPadding = new Cesium.Cartesian2(7, 5)] - 背景内边距，指定文字与填充边界内容之间的空间(以像素为单位)。
     * @property [hasPixelOffset = false] - 是否存在偏移量
     * @property [pixelOffsetX = 0] - 横向偏移像素
     * @property [pixelOffsetY = 0] - 纵向偏移像素
     * @property [pixelOffset = Cartesian2.ZERO] - A {@link Cartesian2} Property specifying the pixel offset.
     * @property [pixelOffsetScaleByDistance] - A {@link NearFarScalar} Property used to set pixelOffset based on distance from the camera.
     * @property [eyeOffset = Cartesian3.ZERO] - A {@link Cartesian3} Property specifying the eye offset.
     * @property [scaleByDistance = false] - 是否按视距缩放 或 设定基于与相机的距离设置比例。
     * @property [scaleByDistance_far = 1000000] - 上限
     * @property [scaleByDistance_farValue = 0.1] - 比例值
     * @property [scaleByDistance_near = 1000] - 下限
     * @property [scaleByDistance_nearValue = 1] - 比例值
     * @property [distanceDisplayCondition = false] - 是否按视距显示 或 指定此框将显示在与摄像机的多大距离。
     * @property [distanceDisplayCondition_far = 100000] - 最大距离
     * @property [distanceDisplayCondition_near = 0] - 最小距离
     * @property [clampToGround = false] - 是否贴地
     * @property [heightReference = Cesium.HeightReference.NONE] - 指定高度相对于什么的属性。
     * @property [visibleDepth = true] - 是否被遮挡
     * @property [disableDepthTestDistance] - 指定从相机到禁用深度测试的距离。
     * @property [translucencyByDistance] - 用于基于与相机的距离设置半透明度。
     * @property [setHeight] - 指定坐标高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [addHeight] - 在现有坐标基础上增加的高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [templateEmptyStr = ""] - 当text存在模版字符串配置时，空值时显示的内容
     */
    type StyleOptions = any | {
        text?: string;
        scale?: number;
        horizontalOrigin?: Cesium.HorizontalOrigin;
        verticalOrigin?: Cesium.VerticalOrigin;
        font_family?: string;
        font_size?: number;
        font_weight?: string;
        font_style?: string;
        font?: string;
        fill?: boolean;
        color?: string | Cesium.Color;
        opacity?: number;
        outline?: boolean;
        outlineColor?: string | Cesium.Color;
        outlineOpacity?: number;
        outlineWidth?: number;
        background?: boolean;
        backgroundColor?: string | Cesium.Color;
        backgroundOpacity?: number;
        backgroundPadding?: number | Cesium.Cartesian2;
        hasPixelOffset?: boolean;
        pixelOffsetX?: number;
        pixelOffsetY?: number;
        pixelOffset?: Cesium.Cartesian2 | number[];
        pixelOffsetScaleByDistance?: Cesium.NearFarScalar;
        eyeOffset?: Cesium.Cartesian3;
        scaleByDistance?: boolean | Cesium.NearFarScalar;
        scaleByDistance_far?: number;
        scaleByDistance_farValue?: number;
        scaleByDistance_near?: number;
        scaleByDistance_nearValue?: number;
        distanceDisplayCondition?: boolean | Cesium.DistanceDisplayCondition;
        distanceDisplayCondition_far?: number;
        distanceDisplayCondition_near?: number;
        clampToGround?: boolean;
        heightReference?: Cesium.HeightReference;
        visibleDepth?: boolean;
        disableDepthTestDistance?: number;
        translucencyByDistance?: Cesium.NearFarScalar;
        setHeight?: number | string;
        addHeight?: number | string;
        templateEmptyStr?: string;
    };
}

/**
 * 文字  Entity对象
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.drawShow = true] - 绘制时，是否自动隐藏entity，可避免拾取坐标存在问题。
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class LabelEntity extends BasePointEntity {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | Cesium.PositionProperty | number[] | string;
        style: LabelEntity.StyleOptions | any;
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        drawShow?: boolean;
        hasEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 矢量数据对应的 Cesium内部对象的具体类型对象
     */
    readonly entityGraphic: Cesium.LabelGraphics;
    /**
     * 文本内容
     */
    readonly text: string;
    /**
     * 开始执行弹跳动画
     * @param [options] - 参数，包括
     * @param [options.maxHeight = 50] - 弹跳的最大高度, 单位：像素
     * @param [options.step = 1] - 弹跳增量, 控制速度，单位：像素
     * @param [options.autoStop] - 是否自动停止，true时：会逐渐减弱至停止状态
     * @returns 无
     */
    startBounce(options?: {
        maxHeight?: number;
        step?: number;
        autoStop?: boolean;
    }): void;
    /**
     * 停止弹跳动画
     * @returns 无
     */
    stopBounce(): void;
    /**
     * 设置透明度
     * @param value - 透明度
     * @returns 无
     */
    setOpacity(value: number): void;
    /**
     * 附加的label文本对象
     */
    readonly label: Cesium.Label | Cesium.LabelGraphics;
}

declare namespace ModelEntity {
    /**
     * gltf小模型 支持的样式信息
     * @property [url] - glTF模型的URI的字符串或资源属性。
     * @property [scale = 1] - 比例
     * @property [heading = 0] - 方向角 （度数值，0-360度），优先级高于orientation
     * @property [pitch = 0] - 俯仰角（度数值，0-360度），优先级高于orientation
     * @property [roll = 0] - 翻滚角（度数值，0-360度），优先级高于orientation
     * @property [mergeOrientation = false] - 当存在orientation时（如addDynamicPosition等），设置为true时，是在orientation基础的方式值上加上设置是heading、pitch、roll值，比如用于设置模型不是标准的方向时的纠偏处理
     * @property [radius] - 编辑时，半径圆圈的半径，默认自动
     * @property [minimumPixelSize = 0.0] - 指定模型的近似最小像素大小，而不考虑缩放。
     * @property [maximumScale] - 模型的最大比例尺寸。minimumPixelSize的上限。
     * @property [fill = false] - 是否填充，指定与模型渲染颜色混合
     * @property [color = "#3388ff"] - 颜色
     * @property [opacity = 1.0] - 透明度，取值范围：0.0-1.0
     * @property [colorBlendMode = ColorBlendMode.HIGHLIGHT] - 指定颜色如何与模型混合。
     * @property [colorBlendAmount = 0.5] - 当colorBlendMode为MIX时指定颜色强度的数字属性。0.0的值表示模型渲染的颜色，1.0的值表示纯色，任何介于两者之间的值表示两者的混合。
     * @property [silhouette = false] - 是否轮廓
     * @property [silhouetteColor = "#ff0000"] - 轮廓颜色
     * @property [silhouetteSize = 2] - 轮廓宽度
     * @property [silhouetteAlpha = 0.8] - 轮廓透明度
     * @property [distanceDisplayCondition = false] - 是否按视距显示 或 指定此框将显示在与摄像机的多大距离。
     * @property [distanceDisplayCondition_near = 0] - 最小距离
     * @property [distanceDisplayCondition_far = 100000] - 最大距离
     * @property [distanceDisplayPoint] - 当视角距离超过一定距离后(distanceDisplayCondition_far定义的) 后显示为 像素点 对象的样式，仅在distanceDisplayCondition设置时有效。
     * @property [distanceDisplayBillboard] - 当视角距离超过一定距离后(distanceDisplayCondition_far定义的) 后显示为 图标 对象的样式，仅在distanceDisplayCondition设置时有效。
     * @property [hasShadows = true] - 是否阴影
     * @property [shadows = ShadowMode.ENABLED] - 指定模型是投射还是接收来自光源的阴影。
     * @property [clampToGround = false] - 是否贴地
     * @property [heightReference = Cesium.HeightReference.NONE] - 指定高度相对于什么的属性。
     * @property [incrementallyLoadTextures = true] - 确定模型加载后纹理是否会继续流进来。
     * @property [runAnimations = true] - 指定模型中指定的glTF动画是否应该启动。
     * @property [clampAnimations = true] - 指定在没有关键帧的情况下，glTF动画是否应该保持最后一个姿势。
     * @property [lightColor] - 在为模型着色时指定光的颜色的属性。当undefined场景的浅色被使用代替。
     * @property [nodeTransformations] - 一个对象，其中键是节点的名称，值是{@link TranslationRotationScale}属性，描述要应用到该节点的转换。该转换是在节点的现有转换之后(如glTF中指定的那样)应用的，并且不会替换节点的现有转换。
     * @property [articulations] - An object, where keys are composed of an articulation name, a single space, and a stage name, and the values are numeric properties.
     * @property [clippingPlanes] - 用于裁剪模型的Plane平面集合
     * @property [setHeight] - 指定坐标高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [addHeight] - 在现有坐标基础上增加的高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [highlight] - 鼠标移入或单击(type:'click')后的对应高亮的部分样式，创建Graphic后也可以openHighlight、closeHighlight方法来手动调用
     * @property [label] - 支持附带文字的显示
     */
    type StyleOptions = any | {
        url?: string | Cesium.Resource;
        scale?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        mergeOrientation?: boolean;
        radius?: number;
        minimumPixelSize?: number;
        maximumScale?: number;
        fill?: boolean;
        color?: string | Cesium.Color;
        opacity?: number;
        colorBlendMode?: Cesium.ColorBlendMode;
        colorBlendAmount?: number;
        silhouette?: boolean;
        silhouetteColor?: string | Cesium.Color;
        silhouetteSize?: number;
        silhouetteAlpha?: number;
        distanceDisplayCondition?: boolean | Cesium.DistanceDisplayCondition;
        distanceDisplayCondition_near?: number;
        distanceDisplayCondition_far?: number;
        distanceDisplayPoint?: PointEntity.StyleOptions | any;
        distanceDisplayBillboard?: BillboardEntity.StyleOptions | any;
        hasShadows?: boolean;
        shadows?: Cesium.ShadowMode;
        clampToGround?: boolean;
        heightReference?: Cesium.HeightReference;
        incrementallyLoadTextures?: boolean;
        runAnimations?: boolean;
        clampAnimations?: boolean;
        lightColor?: Cesium.Color;
        nodeTransformations?: Cesium.PropertyBag | {
            [key: string]: Cesium.TranslationRotationScale;
        };
        articulations?: Cesium.PropertyBag | {
            [key: string]: number;
        };
        clippingPlanes?: Cesium.ClippingPlaneCollection;
        setHeight?: number | string;
        addHeight?: number | string;
        highlight?: ModelEntity.StyleOptions | any;
        label?: LabelEntity.StyleOptions | any;
    };
}

/**
 * gltf小模型  Entity对象
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.orientation] - 实体方向
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.maxCacheCount = 50] - 当使用addDynamicPosition设置为动画轨迹位置时，保留的坐标点数量，传-1时不限制
 * @param [options.forwardExtrapolationType = Cesium.ExtrapolationType.HOLD] - 当使用addDynamicPosition设置为动画轨迹位置时，在任何可用坐标之后一次请求值时要执行的推断类型，默认为最后一个坐标位置。
 * @param [options.backwardExtrapolationType = Cesium.ExtrapolationType.HOLD] - 当使用addDynamicPosition设置为动画轨迹位置时， 在任何可用坐标之前一次请求值时要执行的推断类型，默认为第一个坐标位置。
 * @param [options.clampToTileset] - 当使用addDynamicPosition设置为动画轨迹位置时，是否进行贴模型。
 * @param [options.frameRateHeight = 30] - 当使用addDynamicPosition设置为动画轨迹位置时，并clampToTileset：true时，多少帧计算一次贴模型高度
 * @param [options.objectsToExclude] - 当使用addDynamicPosition设置为动画轨迹位置时，并clampToTileset：true时，排除的不进行贴模型计算的模型对象，可以是： primitives, entities, 或 3D Tiles features
 * @param [options.referenceFrame = Cesium.ReferenceFrame.FIXED] - 当使用addDynamicPosition设置为动画轨迹位置时，position位置被定义的参考系。
 * @param [options.numberOfDerivatives = 0] - 当使用addDynamicPosition设置为动画轨迹位置时，每个位置的导数的数量;即速度、加速度等。
 * @param [options.drawShow = true] - 绘制时，是否自动隐藏entity，可避免拾取坐标存在问题。
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.hasMoveEdit = true] - 编辑时，是否可以整体平移
 * @param [options.hasEditScale = false] - 编辑时，是否自动启用调整缩放比例
 * @param [options.hasEditRotate = false] - 编辑时，是否自动启用调整方向
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.billboard] - 设置附加的 图标 和对应的样式。
 * @param [options.point] - 设置附加的 像素点 和对应的样式
 * @param [options.circle] - 设置附加的 圆 和对应的样式
 * @param [options.path] - 设置附加的 轨迹路线 和对应的样式
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class ModelEntity extends BasePointEntity {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | Cesium.PositionProperty | number[] | string;
        style: ModelEntity.StyleOptions | any;
        attr?: any;
        orientation?: Cesium.Property;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        maxCacheCount?: number;
        forwardExtrapolationType?: Cesium.ExtrapolationType;
        backwardExtrapolationType?: Cesium.ExtrapolationType;
        clampToTileset?: boolean;
        frameRateHeight?: number;
        objectsToExclude?: any;
        referenceFrame?: Cesium.ReferenceFrame;
        numberOfDerivatives?: number;
        drawShow?: boolean;
        hasEdit?: boolean;
        hasMoveEdit?: boolean;
        hasEditScale?: number;
        hasEditRotate?: number;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        billboard?: BillboardEntity.StyleOptions | any | any;
        point?: PointEntity.StyleOptions | any | any;
        circle?: CircleEntity.StyleOptions | any | any;
        path?: PathEntity.StyleOptions | any | any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 矢量数据对应的 Cesium内部对象的具体类型对象
     */
    readonly entityGraphic: Cesium.ModelGraphics;
    /**
     * 编辑处理类
     */
    readonly EditClass: EditModel;
    /**
     * 模型整体的缩放比例
     */
    scale: number;
    /**
     * 获取模型完成解析加载完成的Promise承诺, 等价于load事件(区别在于load事件必须在load完成前绑定才能监听)。
     * @example
     * model.readyPromise.then(function(layer) {
     *     console.log("load完成", layer)
     *   })
     */
    readonly readyPromise: Promise<ModelEntity | any>;
    /**
     * 获取模型的当前时间的实际hpr角度(如动态模型)
     * @returns Heading Pitch Roll方向
     */
    getHeadingPitchRoll(): Cesium.HeadingPitchRoll;
    /**
     * 开始运行 自旋转动画效果
     * @param [options = {}] - 参数包括：
     * @param [options.direction = false] - 旋转方向, true逆时针，false顺时针
     * @param [options.time = 60] - 飞行一周所需时间(单位 秒)，控制速度
     * @param [options.autoStopAngle] - 自动停止的角度值（0-360度），未设置时不自动停止
     * @returns 无
     */
    rotateStart(options?: {
        direction?: boolean;
        time?: number;
        autoStopAngle?: number;
    }): void;
    /**
     * 停止运行 自旋转动画效果
     * @returns 无
     */
    rotateStop(): void;
    /**
     * 动画移动到指定目标位置
     * @param [options = {}] - 参数包括：
     * @param options.position - 指定目标位置的坐标
     * @param [options.time = 5] - 移动的时长(单位 秒)，控制速度
     * @param [options.onEnd] - 移动完成的回调方法
     * @returns 绘制创建完成的Promise,等价于onEnd参数
     */
    moveTo(options?: {
        position: LngLatPoint | Cesium.Cartesian3 | number[];
        time?: number;
        onEnd?: (...params: any[]) => any;
    }): Promise<ModelEntity | any>;
    /**
     * 飞行定位至数据所在的视角
     * @param [options = {}] - 参数对象:
     * @param [options.scale = 1.2] - 缩放比例，可以根据控制视角比模型大小略大一些，这样效果更友好。
     * @param options.radius - 相机距离目标点的距离（单位：米），与scale二选一
     * @param [options.minHeight] - 定位时相机的最小高度值，用于控制避免异常数据
     * @param [options.maxHeight] - 定位时相机的最大高度值，用于控制避免异常数据
     * @param [options.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
     * @param [options.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
     * @param [options.roll] - 翻滚角度值，绕经度线旋转角度,-90至90
     * @param [options.duration] - 飞行时间（单位：秒）。如果省略，SDK内部会根据飞行距离计算出理想的飞行时间。
     * @param [options.complete] - 飞行完成后要执行的函数。
     * @param [options.cancel] - 飞行取消时要执行的函数。
     * @param [options.endTransform] - 变换矩阵表示飞行结束时相机所处的参照系。
     * @param [options.maximumHeight] - 飞行高峰时的最大高度。
     * @param [options.pitchAdjustHeight] - 如果相机飞得比这个值高，在飞行过程中调整俯仰以向下看，并保持地球在视口。
     * @param [options.flyOverLongitude] - 地球上的两点之间总有两条路。这个选项迫使相机选择战斗方向飞过那个经度。
     * @param [options.flyOverLongitudeWeight] - 仅在通过flyOverLongitude指定的lon上空飞行，只要该方式的时间不超过flyOverLongitudeWeight的短途时间。
     * @param [options.convert = true] - 是否将目的地从世界坐标转换为场景坐标（仅在不使用3D时相关）。
     * @param [options.easingFunction] - 控制在飞行过程中如何插值时间。
     * @returns 如果飞行成功则解析为true的承诺，如果当前未在场景中可视化目标或取消飞行，则为false的Promise
     */
    flyTo(options?: {
        scale?: number;
        radius: number;
        minHeight?: number;
        maxHeight?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        duration?: number;
        complete?: Cesium.Camera.FlightCompleteCallback;
        cancel?: Cesium.Camera.FlightCancelledCallback;
        endTransform?: Cesium.Matrix4;
        maximumHeight?: number;
        pitchAdjustHeight?: number;
        flyOverLongitude?: number;
        flyOverLongitudeWeight?: number;
        convert?: boolean;
        easingFunction?: Cesium.EasingFunction.Callback;
    }): Promise<boolean>;
    /**
     * 设置透明度
     * @param value - 透明度
     * @returns 无
     */
    setOpacity(value: number): void;
    /**
     * 位置坐标 （笛卡尔坐标）, 赋值时可以传入LatLngPoint对象
     */
    position: Cesium.Cartesian3 | LngLatPoint;
    /**
     * 四周方向角，0-360度角度值
     */
    heading: number;
}

declare namespace PathEntity {
    /**
     * path路径 支持的样式信息
     * @property [width = 1.0] - 以像素为单位指定宽度的数字属性。
     * @property [color = "#FFFF00"] - 颜色
     * @property [opacity = 1.0] - 透明度，取值范围：0.0-1.0
     * @property [material = Cesium.Color.WHITE] - 指定用于填充的材质，指定material后fillType和color属性将被覆盖。
     * @property [leadTime] - 提前显示轨迹的时间长度（单位：秒），比如不显示前方路线，可以设置为0
     * @property [trailTime] - 保留历史轨迹的时间长度（单位：秒）
     * @property [resolution = 60] - 指定在对位置进行采样时步进的最大秒数。
     * @property [distanceDisplayCondition = false] - 是否按视距显示 或 指定此框将显示在与摄像机的多大距离。
     * @property [distanceDisplayCondition_far = 100000] - 最大距离
     * @property [distanceDisplayCondition_near = 0] - 最小距离
     * @property [setHeight] - 指定坐标高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [addHeight] - 在现有坐标基础上增加的高度值（常用于图层中配置）,也支持字符串模版配置
     */
    type StyleOptions = any | {
        width?: number;
        color?: string | Cesium.Color;
        opacity?: number;
        material?: Cesium.MaterialProperty | BaseMaterialProperty | Cesium.Color;
        leadTime?: number;
        trailTime?: number;
        resolution?: number;
        distanceDisplayCondition?: boolean | Cesium.DistanceDisplayCondition;
        distanceDisplayCondition_far?: number;
        distanceDisplayCondition_near?: number;
        setHeight?: number | string;
        addHeight?: number | string;
    };
}

/**
 * path路径  Entity矢量数据
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置（含时序的点集合）
 * @param [options.orientation] - 实体方向
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.label] - 设置是否显示 文本 和对应的样式
 * @param [options.model] - 设置附加的 gltf模型 和对应的样式
 * @param [options.billboard] - 设置附加的 图标 和对应的样式。
 * @param [options.point] - 设置附加的 像素点 和对应的样式
 * @param [options.circle] - 设置附加的 圆 和对应的样式
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class PathEntity extends BasePointEntity {
    constructor(options: {
        position: Cesium.SampledPositionProperty;
        orientation?: Cesium.Property;
        style: PathEntity.StyleOptions | any;
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        label?: LabelEntity.StyleOptions | any;
        model?: ModelEntity.StyleOptions | any | any;
        billboard?: BillboardEntity.StyleOptions | any | any;
        point?: PointEntity.StyleOptions | any | any;
        circle?: CircleEntity.StyleOptions | any | any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 矢量数据对应的 Cesium内部对象的具体类型对象
     */
    readonly entityGraphic: Cesium.PathGraphics;
    /**
     * 获取当前时间的三维空间中的旋转。
     */
    readonly orientationShow: Cesium.Quaternion;
    /**
     * 获取当前时间的方向角
     */
    readonly hpr: Cesium.HeadingPitchRoll;
    /**
     * 俯仰角，上下摇摆的角度，0-360度角度值
     */
    pitch: number;
    /**
     * 滚转角，左右摆动的角度，0-360度角度值
     */
    roll: number;
    /**
     * 位置坐标数组 （笛卡尔坐标）, 赋值时可以传入LatLngPoint数组对象
     */
    positions: any[][] | LngLatPoint[];
    /**
     * 位置坐标(数组对象)，示例 [ [123.123456,32.654321,198.7,time], [111.123456,22.654321,50.7,time] ]
     */
    readonly coordinates: any[][];
    /**
     * 当前飞行过的positions轨迹点 数组的index
     * @param [currentTime] - 指定的时间，默认为map当前时间
     * @returns 数组的顺序
     */
    getIndex(currentTime?: Cesium.JulianDate): number;
    /**
     * 获取数据的矩形边界
     * @param [options] - 控制参数
     * @param [options.isFormat = false] - 是否格式化，格式化时示例： { xmin: 73.16895, xmax: 134.86816, ymin: 12.2023, ymax: 54.11485 }
     * @returns isFormat：true时，返回格式化对象，isFormat：false时返回Cesium.Rectangle对象
     */
    getRectangle(options?: {
        isFormat?: boolean;
    }): Cesium.Rectangle | any;
    /**
     * 位置坐标(数组对象)，示例 [ [123.123456,32.654321,198.7], [111.123456,22.654321,50.7] ]
     * @param noAlt - true时不导出高度值
     * @returns 位置坐标(数组对象)
     */
    getCoordinates(noAlt: boolean): any[][];
    /**
     * 定位至当前时间所在的位置 (非相机位置)
     * @param [options = {}] - 具有以下属性的对象:
     * @param [options.radius] - 相机距离目标点的距离（单位：米）
     * @param [options.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
     * @param [options.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
     * @param [options.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
     * @param [options.duration] - 飞行持续时间（秒）。如果省略，内部会根据飞行距离计算出理想的飞行时间。
     * @param [options.endTransform] - 表示飞行完成后摄像机将位于的参考帧的变换矩阵。
     * @param [options.maximumHeight] - 飞行高峰时的最大高度。
     * @param [options.pitchAdjustHeight] - 如果相机的飞行角度高于该值，请在飞行过程中调整俯仰角度以向下看，并将地球保持在视口中。
     * @param [options.flyOverLongitude] - 地球上2点之间总是有两种方式。此选项会迫使相机选择战斗方向以在该经度上飞行。
     * @param [options.flyOverLongitudeWeight] - 仅在通过flyOverLongitude指定的lon上空飞行，只要该方式的时间不超过flyOverLongitudeWeight的短途时间。
     * @param [options.easingFunction] - 控制在飞行过程中如何插值时间。
     * @returns 如果飞行成功则解析为true的承诺，如果当前未在场景中可视化目标或取消飞行，则为false的Promise
     */
    flyToPoint(options?: {
        radius?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        duration?: number;
        endTransform?: Cesium.Matrix4;
        maximumHeight?: number;
        pitchAdjustHeight?: number;
        flyOverLongitude?: number;
        flyOverLongitudeWeight?: number;
        easingFunction?: Cesium.EasingFunction.Callback;
    }): Promise<boolean>;
    /**
     * 位置坐标 （笛卡尔坐标）, 赋值时可以传入LatLngPoint对象
     */
    position: Cesium.Cartesian3 | LngLatPoint;
}

declare namespace PlaneEntity {
    /**
     * 平面 支持的样式信息
     * @property [dimensions] - 指定平面的宽度和高度。
     * @property [dimensions_x = 100] - 长度
     * @property [dimensions_y = 100] - 宽度
     * @property [plane] - 指定平面的法线和距离。
     * @property [plane_normal = "z"] - 方向 ,可选项：x (解释：X轴),y (解释：Y轴),z (解释：Z轴),
     * @property [plane_distance = 0] - 偏移距离
     * @property [heading = 0] - 方向角 （度数值，0-360度）
     * @property [pitch = 0] - 俯仰角（度数值，0-360度）
     * @property [roll = 0] - 翻滚角（度数值，0-360度）
     * @property [fill = true] - 是否填充
     * @property [materialType = "Color"] - 填充类型 ,可选项：{@link MaterialType}
     * @property [materialOptions] - materialType对应的{@link MaterialType}中材质参数
     * @property [material = Cesium.Color.WHITE] - 指定用于填充的材质，指定material后`materialType`和`materialOptions`将被覆盖。
     * @property [randomColor = false] - 是否随机颜色
     * @property [color = "#00FF00"] - 颜色
     * @property [opacity = 1.0] - 透明度, 取值范围：0.0-1.0
     * @property [outline = false] - 是否边框
     * @property [outlineWidth = 1] - 边框宽度
     * @property [outlineColor = "#ffffff"] - 边框颜色
     * @property [outlineOpacity = 0.6] - 边框透明度
     * @property [distanceDisplayCondition = false] - 是否按视距显示 或 指定此框将显示在与摄像机的多大距离。
     * @property [distanceDisplayCondition_far = 100000] - 最大距离
     * @property [distanceDisplayCondition_near = 0] - 最小距离
     * @property [hasShadows = false] - 是否阴影
     * @property [shadows = Cesium.ShadowMode.DISABLED] - 指定平面是投射还是接收来自光源的阴影。
     * @property [setHeight] - 指定坐标高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [addHeight] - 在现有坐标基础上增加的高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [highlight] - 鼠标移入或单击(type:'click')后的对应高亮的部分样式，创建Graphic后也可以openHighlight、closeHighlight方法来手动调用
     * @property [label] - 支持附带文字的显示
     */
    type StyleOptions = any | {
        dimensions?: Cesium.Cartesian2;
        dimensions_x?: number;
        dimensions_y?: number;
        plane?: Cesium.Plane;
        plane_normal?: string | Cesium.Cartesian3;
        plane_distance?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        fill?: boolean;
        materialType?: string;
        materialOptions?: any;
        material?: Cesium.MaterialProperty | BaseMaterialProperty | Cesium.Color;
        randomColor?: boolean;
        color?: string | Cesium.Color;
        opacity?: number;
        outline?: boolean;
        outlineWidth?: string;
        outlineColor?: string | Cesium.Color;
        outlineOpacity?: number;
        distanceDisplayCondition?: boolean | Cesium.DistanceDisplayCondition;
        distanceDisplayCondition_far?: number;
        distanceDisplayCondition_near?: number;
        hasShadows?: boolean;
        shadows?: Cesium.ShadowMode;
        setHeight?: number | string;
        addHeight?: number | string;
        highlight?: PlaneEntity.StyleOptions | any;
        label?: LabelEntity.StyleOptions | any;
    };
}

/**
 * 平面  Entity对象
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.orientation] - 实体方向
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.drawShow = true] - 绘制时，是否自动隐藏entity，可避免拾取坐标存在问题。
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class PlaneEntity extends BasePointEntity {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | Cesium.PositionProperty | number[] | string;
        style: PlaneEntity.StyleOptions | any;
        attr?: any;
        orientation?: Cesium.Property;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        drawShow?: boolean;
        hasEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 矢量数据对应的 Cesium内部对象的具体类型对象
     */
    readonly entityGraphic: Cesium.PlaneGraphics;
    /**
     * 编辑处理类
     */
    readonly EditClass: EditPlane;
}

declare namespace PointEntity {
    /**
     * 像素点 支持的样式信息
     * @property [pixelSize = 10] - 像素大小
     * @property [color = "#3388ff"] - 颜色
     * @property [opacity = 1.0] - 透明度，取值范围：0.0-1.0
     * @property [outline = false] - 是否边框
     * @property [outlineColor = "#ffffff"] - 边框颜色
     * @property [outlineOpacity = 0.6] - 边框透明度
     * @property [outlineWidth = 2] - 边框宽度
     * @property [scaleByDistance = false] - 是否按视距缩放 或 指定用于基于距离缩放点。
     * @property [scaleByDistance_far = 1000000] - 上限
     * @property [scaleByDistance_farValue = 0.1] - 比例值
     * @property [scaleByDistance_near = 1000] - 下限
     * @property [scaleByDistance_nearValue = 1] - 比例值
     * @property [distanceDisplayCondition = false] - 是否按视距显示 或 指定此框将显示在与摄像机的多大距离。
     * @property [distanceDisplayCondition_far = 10000] - 最大距离
     * @property [distanceDisplayCondition_near = 0] - 最小距离
     * @property [visibleDepth = true] - 是否被遮挡
     * @property [disableDepthTestDistance] - 指定从相机到禁用深度测试的距离。
     * @property [translucencyByDistance] - 用于基于与相机的距离设置半透明度。
     * @property [clampToGround = false] - 是否贴地
     * @property [heightReference = Cesium.HeightReference.NONE] - 指定高度相对于什么的属性。
     * @property [setHeight] - 指定坐标高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [addHeight] - 在现有坐标基础上增加的高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [highlight] - 鼠标移入或单击(type:'click')后的对应高亮的部分样式，创建Graphic后也可以openHighlight、closeHighlight方法来手动调用
     * @property [label] - 支持附带文字的显示
     */
    type StyleOptions = any | {
        pixelSize?: number;
        color?: string | Cesium.Color;
        opacity?: number;
        outline?: boolean;
        outlineColor?: string | Cesium.Color;
        outlineOpacity?: number;
        outlineWidth?: number;
        scaleByDistance?: boolean | Cesium.NearFarScalar;
        scaleByDistance_far?: number;
        scaleByDistance_farValue?: number;
        scaleByDistance_near?: number;
        scaleByDistance_nearValue?: number;
        distanceDisplayCondition?: boolean | Cesium.DistanceDisplayCondition;
        distanceDisplayCondition_far?: number;
        distanceDisplayCondition_near?: number;
        visibleDepth?: boolean;
        disableDepthTestDistance?: number;
        translucencyByDistance?: Cesium.NearFarScalar;
        clampToGround?: boolean;
        heightReference?: Cesium.HeightReference;
        setHeight?: number | string;
        addHeight?: number | string;
        highlight?: PointEntity.StyleOptions | any;
        label?: LabelEntity.StyleOptions | any;
    };
}

/**
 * 像素点 Entity对象
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.maxCacheCount = 50] - 当使用addDynamicPosition设置为动画轨迹位置时，保留的坐标点数量，传-1时不限制
 * @param [options.forwardExtrapolationType = Cesium.ExtrapolationType.HOLD] - 当使用addDynamicPosition设置为动画轨迹位置时，在任何可用坐标之后一次请求值时要执行的推断类型，默认为最后一个坐标位置。
 * @param [options.backwardExtrapolationType = Cesium.ExtrapolationType.HOLD] - 当使用addDynamicPosition设置为动画轨迹位置时， 在任何可用坐标之前一次请求值时要执行的推断类型，默认为第一个坐标位置。
 * @param [options.clampToTileset] - 当使用addDynamicPosition设置为动画轨迹位置时，是否进行贴模型。
 * @param [options.frameRateHeight = 30] - 当使用addDynamicPosition设置为动画轨迹位置时，并clampToTileset：true时，多少帧计算一次贴模型高度
 * @param [options.objectsToExclude] - 当使用addDynamicPosition设置为动画轨迹位置时，并clampToTileset：true时，排除的不进行贴模型计算的模型对象，可以是： primitives, entities, 或 3D Tiles features
 * @param [options.drawShow = true] - 绘制时，是否自动隐藏entity，可避免拾取坐标存在问题。
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.model] - 设置附加的 gltf模型 和对应的样式
 * @param [options.billboard] - 设置附加的 图标 和对应的样式
 * @param [options.circle] - 设置附加的 圆 和对应的样式
 * @param [options.path] - 设置附加的 轨迹路线 和对应的样式
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class PointEntity extends BasePointEntity {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | Cesium.PositionProperty | number[] | string;
        style: PointEntity.StyleOptions | any;
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        maxCacheCount?: number;
        forwardExtrapolationType?: Cesium.ExtrapolationType;
        backwardExtrapolationType?: Cesium.ExtrapolationType;
        clampToTileset?: boolean;
        frameRateHeight?: number;
        objectsToExclude?: any;
        drawShow?: boolean;
        hasEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        model?: ModelEntity.StyleOptions | any | any;
        billboard?: BillboardEntity.StyleOptions | any | any;
        circle?: CircleEntity.StyleOptions | any | any;
        path?: PathEntity.StyleOptions | any | any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 矢量数据对应的 Cesium内部对象的具体类型对象
     */
    readonly entityGraphic: Cesium.PointGraphics;
}

declare namespace PolygonEntity {
    /**
     * 面 支持的样式信息
     * @property [fill = true] - 是否填充
     * @property [materialType = "Color"] - 填充类型 ,可选项：{@link MaterialType}
     * @property [materialOptions] - materialType对应的{@link MaterialType}中材质参数
     * @property [material = Cesium.Color.WHITE] - 指定用于填充的材质，指定material后`materialType`和`materialOptions`将被覆盖。
     * @property [color = "#3388ff"] - 颜色
     * @property [opacity = 1.0] - 透明度, 取值范围：0.0-1.0
     * @property [randomColor = false] - 是否随机颜色
     * @property [stRotation = 0] - 多边形纹理的角度（弧度值），正北为0，逆时针旋转
     * @property [stRotationDegree = 0] - 多边形纹理的角度（度数值，0-360度），与stRotation二选一
     * @property [outline = false] - 是否边框
     * @property [outlineWidth = 1] - 边框宽度
     * @property [outlineColor = "#ffffff"] - 边框颜色
     * @property [outlineOpacity = 0.6] - 边框透明度
     * @property [outlineStyle] - 边框的完整自定义样式，会覆盖outlineWidth、outlineColor等参数。
     * //  * @property {Boolean} [outlineStyle.closure = true] 边线是否闭合
     * @property [distanceDisplayCondition = false] - 是否按视距显示 或 指定此框将显示在与摄像机的多大距离。
     * @property [distanceDisplayCondition_far = 100000] - 最大距离
     * @property [distanceDisplayCondition_near = 0] - 最小距离
     * @property [height = 0] - 高程，圆相对于椭球面的高度。
     * @property [heightReference = Cesium.HeightReference.NONE] - 指定高度相对于什么的属性。
     * @property [diffHeight = 100] - 高度差（走廊本身的高度），与extrudedHeight二选一。
     * @property [extrudedHeight] - 指定走廊挤压面相对于椭球面的高度。
     * @property [extrudedHeightReference = Cesium.HeightReference.NONE] - 指定挤压高度相对于什么的属性。
     * @property [granularity = Cesium.Math.RADIANS_PER_DEGREE] - 指定每个纬度点和经度点之间的角距离。
     * @property [closeTop = true] - 当为false时，离开一个挤压多边形的顶部打开。
     * @property [closeBottom = true] - 当为false时，离开挤压多边形的底部打开。
     * @property [arcType = Cesium.ArcType.GEODESIC] - 多边形的边缘必须遵循的线条类型。
     * @property [hasShadows = false] - 是否阴影
     * @property [shadows = Cesium.ShadowMode.DISABLED] - 指定多边形是投射还是接收来自光源的阴影。
     * @property [clampToGround = false] - 是否贴地
     * @property [perPositionHeight = false] - 指定是否使用每个位置的高度。同clampToGround，与clampToGround反之
     * @property [classificationType = Cesium.ClassificationType.BOTH] - 指定贴地时的覆盖类型，是只对地形、3dtiles 或 两者同时。
     * @property [zIndex = 0] - 层级顺序，指定用于排序地面几何的zIndex。只有当多边形是常数且没有指定高度或挤压高度时才有效果。
     * @property [buffer] - 对坐标进行缓冲扩大buffer指定的半径范围，单位：米。如用于单体化建筑物扩大点方便鼠标拾取。
     * @property [setHeight = 0] - 指定坐标高度值，或数组指定每个点的高度（常用于图层中配置）
     * @property [addHeight = 0] - 在现有坐标基础上增加的高度值，或数组指定每个点增加的高度（常用于图层中配置）
     * @property [highlight] - 鼠标移入或单击(type:'click')后的对应高亮的部分样式，创建Graphic后也可以openHighlight、closeHighlight方法来手动调用
     * @property [label] - 支持附带文字的显示，额外支持：<br />
     * //  * @property {String|LngLatPoint} [label.position] 文字所在位置，默认是矢量对象本身的center属性值。支持配置 'center'：围合面的内部中心点坐标，'{xxxx}'配置属性字段, 或者直接指定坐标值。
     * //  * @property {Boolean} [label.showAll] MultiPolygon和MultiLineString时，是否显示所有注记，默认只在最大坐标数的面或线上显示。
     */
    type StyleOptions = any | {
        fill?: boolean;
        materialType?: string;
        materialOptions?: any;
        material?: Cesium.MaterialProperty | BaseMaterialProperty | Cesium.Color;
        color?: string | Cesium.Color;
        opacity?: number;
        randomColor?: boolean;
        stRotation?: number;
        stRotationDegree?: number;
        outline?: boolean;
        outlineWidth?: number;
        outlineColor?: string | Cesium.Color;
        outlineOpacity?: number;
        outlineStyle?: PolylineEntity.StyleOptions | any;
        distanceDisplayCondition?: boolean | Cesium.DistanceDisplayCondition;
        distanceDisplayCondition_far?: number;
        distanceDisplayCondition_near?: number;
        height?: number;
        heightReference?: Cesium.HeightReference;
        diffHeight?: number;
        extrudedHeight?: number;
        extrudedHeightReference?: Cesium.HeightReference;
        granularity?: number;
        closeTop?: boolean;
        closeBottom?: boolean;
        arcType?: Cesium.ArcType;
        hasShadows?: boolean;
        shadows?: Cesium.ShadowMode;
        clampToGround?: boolean;
        perPositionHeight?: boolean;
        classificationType?: Cesium.ClassificationType;
        zIndex?: number;
        buffer?: number;
        setHeight?: number | number[];
        addHeight?: number | number[];
        highlight?: PolygonEntity.StyleOptions | any;
        label?: LabelEntity.StyleOptions | any | any;
    };
}

/**
 * 面  Entity矢量数据
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.minPointNum = 2] - 绘制时，至少需要点的个数
 * @param [options.maxPointNum = 9999] - 绘制时，最多允许点的个数
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.hasMoveEdit = true] - 编辑时，是否可以整体平移
 * @param [options.hasHeightEdit = true] - 编辑时，当有diffHeight时，是否可以编辑高度
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class PolygonEntity extends BasePolyEntity {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[];
        style: PolygonEntity.StyleOptions | any;
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        minPointNum?: number;
        maxPointNum?: number;
        hasEdit?: boolean;
        hasMoveEdit?: boolean;
        hasHeightEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 矢量数据对应的 Cesium内部对象的具体类型对象
     */
    readonly entityGraphic: Cesium.PolygonGraphics;
    /**
     * 编辑处理类
     */
    readonly EditClass: EditPolygon;
    /**
     * 周长 距离（单位：米）
     */
    readonly distance: number;
    /**
     * 实际显示的坐标数组 （笛卡尔坐标），
     * 如标绘中时positions对应的可能只是控制点坐标或CallbackProperty属性
     */
    readonly positionsShow: Cesium.Cartesian3[];
    /**
     * 对应的Cesium面entity内部位置对象
     */
    readonly hierarchy: Cesium.PolygonHierarchy;
    /**
     * 位置坐标数组 （笛卡尔坐标）, 赋值时可以传入LatLngPoint数组对象 或 Cesium.PolygonHierarchy
     */
    positions: Cesium.Cartesian3[];
    /**
     * 将矢量数据导出为GeoJSON格式规范对象。
     * @param [options] - 参数对象:
     * @param [options.closure] - 是否闭合，true时增加第1个点。
     * @param [options.noAlt] - 不导出高度值
     * @returns GeoJSON格式规范对象
     */
    toGeoJSON(options?: {
        closure?: boolean;
        noAlt?: boolean;
    }): any;
    /**
     * 获取entity的坐标【只取最外层圈坐标】
     * @param entity - polygon面对象
     * @returns 最外层圈坐标数组
     */
    static getPositions(entity: Cesium.Entity): Cesium.Cartesian3[];
    /**
     * 获取entity的多个坐标【只取多圈的坐标，如挖洞多边形】
     * @param entity - polygon面对象
     * @returns 多个 坐标数组
     */
    static getAllPositions(entity: Cesium.Entity): any[][];
    /**
     * 中心点坐标 （笛卡尔坐标）
     */
    readonly center: Cesium.Cartesian3;
    /**
     * 按Cesium.CallbackProperty的方式 更新坐标集合（更加平滑）
     * @param [positions] - 坐标数组
     * @returns 当前坐标集合
     */
    setCallbackPositions(positions?: string[] | any[][] | LngLatPoint[]): Cesium.Cartesian3[];
}

declare namespace PolylineEntity {
    /**
     * 线 支持的样式信息
     * @property [materialType = "Color"] - 线型 ,可选项：{@link MaterialType}
     * @property [materialOptions] - materialType对应的{@link MaterialType}中材质参数
     * @property [material = Cesium.Color.WHITE] - 指定用于填充的材质，指定material后`materialType`和`materialOptions`将被覆盖。
     * @property [width = 4] - 线宽
     * @property [color = "#3388ff"] - 颜色
     * @property [opacity = 1.0] - 透明度，取值范围：0.0-1.0
     * @property [randomColor = false] - 是否随机颜色
     * @property [depthFailMaterial] - 指定当折线位于地形之下时用于绘制折线的材质。
     * @property [closure = false] - 是否闭合, 在positions是属性机制的回调对象时无效
     * @property [outline = false] - 是否衬色
     * @property [outlineColor = "#ffffff"] - 衬色颜色
     * @property [outlineWidth = 2] - 衬色宽度
     * @property [depthFail] - 是否显示遮挡
     * @property [depthFailColor] - 遮挡处颜色
     * @property [depthFailOpacity] - 遮挡处透明度
     * @property [distanceDisplayCondition = false] - 是否按视距显示 或 指定此框将显示在与摄像机的多大距离。
     * @property [distanceDisplayCondition_far = 100000] - 最大距离
     * @property [distanceDisplayCondition_near = 0] - 最小距离
     * @property [arcType = Cesium.ArcType.GEODESIC] - 折线段必须遵循的线的类型。
     * @property [granularity = Cesium.Math.RADIANS_PER_DEGREE] - 如果arcType不是arcType.none，则指定每个纬度和经度之间的角距离的数字属性。
     * @property [hasShadows = false] - 是否阴影
     * @property [shadows = Cesium.ShadowMode.DISABLED] - 指定对象是投射还是接收来自光源的阴影。
     * @property [clampToGround = false] - 是否贴地
     * @property [classificationType = Cesium.ClassificationType.BOTH] - 指定贴地时的覆盖类型，是只对地形、3dtiles 或 两者同时。
     * @property [zIndex = 0] - 层级顺序,指定用于排序地面几何的zIndex。只有当' clampToGround '为真且支持地形上的折线时才会有效果。
     * @property [setHeight = 0] - 指定坐标高度值，或数组指定每个点的高度（常用于图层中配置）
     * @property [addHeight = 0] - 在现有坐标基础上增加的高度值，或数组指定每个点增加的高度（常用于图层中配置）
     * @property [highlight] - 鼠标移入或单击(type:'click')后的对应高亮的部分样式，创建Graphic后也可以openHighlight、closeHighlight方法来手动调用
     * @property [label] - 支持附带文字的显示，额外支持：<br />
     * //  * @property {String} [label.text = "文字"] 文本内容，换行可以用换行符'\n'。
     * //  * @property {String|LngLatPoint} [label.position] 文字所在位置，默认是矢量对象本身的center属性值。支持配置 'center'：围合面的内部中心点坐标，'{xxxx}'配置属性字段, 或者直接指定坐标值。
     * //  * @property {Boolean} [label.showAll] MultiPolygon和MultiLineString时，是否显示所有注记，默认只在最大坐标数的面或线上显示。
     */
    type StyleOptions = any | {
        materialType?: string;
        materialOptions?: any;
        material?: Cesium.MaterialProperty | BaseMaterialProperty | Cesium.Color;
        width?: number;
        color?: string | Cesium.Color;
        opacity?: number;
        randomColor?: boolean;
        depthFailMaterial?: Cesium.MaterialProperty | Cesium.Color;
        closure?: boolean;
        outline?: boolean;
        outlineColor?: string | Cesium.Color;
        outlineWidth?: number;
        depthFail?: boolean;
        depthFailColor?: string;
        depthFailOpacity?: number;
        distanceDisplayCondition?: boolean | Cesium.DistanceDisplayCondition;
        distanceDisplayCondition_far?: number;
        distanceDisplayCondition_near?: number;
        arcType?: Cesium.ArcType;
        granularity?: number;
        hasShadows?: boolean;
        shadows?: Cesium.ShadowMode;
        clampToGround?: boolean;
        classificationType?: Cesium.ClassificationType;
        zIndex?: number;
        setHeight?: number | number[];
        addHeight?: number | number[];
        highlight?: PolylineEntity.StyleOptions | any;
        label?: LabelEntity.StyleOptions | any | any;
    };
}

/**
 * 线  Entity矢量数据
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.minPointNum = 2] - 绘制时，至少需要点的个数
 * @param [options.maxPointNum = 9999] - 绘制时，最多允许点的个数
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.hasMoveEdit = true] - 编辑时，是否可以整体平移
 * @param [options.hasHeightEdit = true] - 编辑时，当有diffHeight时，是否可以编辑高度
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class PolylineEntity extends BasePolyEntity {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | any[] | Cesium.PositionProperty | any;
        style: PolylineEntity.StyleOptions | any;
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        minPointNum?: number;
        maxPointNum?: number;
        hasEdit?: boolean;
        hasMoveEdit?: boolean;
        hasHeightEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 矢量数据对应的 Cesium内部对象的具体类型对象
     */
    readonly entityGraphic: Cesium.PolylineGraphics;
    /**
     * 位置坐标数组 （笛卡尔坐标）, 赋值时可以传入LatLngPoint数组对象
     */
    positions: Cesium.Cartesian3[];
}

declare namespace PolylineVolumeEntity {
    /**
     * 管道线 支持的样式信息
     * @property [shape = "pipeline"] - 形状类型 或 定义要挤压的形状。类型可选项：pipeline (解释：空心管),circle (解释：实心管),star (解释：星状管),
     * @property [radius = 10] - 半径(单位：米)
     * @property [thicknes = radius/3] - 厚度(单位：米)，空心管/星状管 的外层厚度
     * @property [slices] - 边数，比如为4时是矩形管；星状管代表角的个数；
     * @property [startAngle = 0] - 开始角度，取值范围0-360
     * @property [endAngle = 360] - 结束角度，取值范围0-360，比如endAngle=180的空心管是拱形半圆管道
     * @property [vscale = 1] - 垂直缩放比例
     * @property [hscale = 1] - 水平缩放比例
     * @property [fill = true] - 是否填充
     * @property [color = "#FFFF00"] - 颜色
     * @property [opacity = 1.0] - 透明度，取值范围：0.0-1.0
     * @property [material = Cesium.Color.WHITE] - 指定用于填充的材质，指定material后fillType和color属性将被覆盖。
     * @property [outline = false] - 是否边线
     * @property [outlineWidth = 1.0] - 边线宽度
     * @property [outlineColor = "#ffffff"] - 边线颜色
     * @property [outlineOpacity = opacity] - 边框透明度
     * @property [cornerType = CornerType.ROUNDED] - 指定边角的样式。
     * @property [granularity = Cesium.Math.RADIANS_PER_DEGREE] - 指定每个纬度点和经度点之间的角距离。
     * @property [distanceDisplayCondition = false] - 是否按视距显示 或 指定此框将显示在与摄像机的多大距离。
     * @property [distanceDisplayCondition_far = 100000] - 最大距离
     * @property [distanceDisplayCondition_near = 0] - 最小距离
     * @property [hasShadows = false] - 是否投射阴影
     * @property [shadows = Cesium.ShadowMode.DISABLED] - 指定管道是否投射或接收来自光源的阴影。
     * @property [setHeight = 0] - 指定坐标高度值，或数组指定每个点的高度（常用于图层中配置）
     * @property [addHeight = 0] - 在现有坐标基础上增加的高度值，或数组指定每个点增加的高度（常用于图层中配置）
     * @property [highlight] - 鼠标移入或单击(type:'click')后的对应高亮的部分样式，创建Graphic后也可以openHighlight、closeHighlight方法来手动调用
     * @property [label] - 支持附带文字的显示
     */
    type StyleOptions = any | {
        shape?: string | Cesium.Cartesian2[];
        radius?: number;
        thicknes?: number;
        slices?: number;
        startAngle?: number;
        endAngle?: number;
        vscale?: number;
        hscale?: number;
        fill?: boolean;
        color?: string | Cesium.Color;
        opacity?: number;
        material?: Cesium.MaterialProperty | BaseMaterialProperty | Cesium.Color;
        outline?: boolean;
        outlineWidth?: number;
        outlineColor?: string | Cesium.Color;
        outlineOpacity?: number;
        cornerType?: Cesium.CornerType;
        granularity?: number;
        distanceDisplayCondition?: boolean | Cesium.DistanceDisplayCondition;
        distanceDisplayCondition_far?: number;
        distanceDisplayCondition_near?: number;
        hasShadows?: boolean;
        shadows?: Cesium.ShadowMode;
        setHeight?: number | number[];
        addHeight?: number | number[];
        highlight?: PolylineVolumeEntity.StyleOptions | any;
        label?: LabelEntity.StyleOptions | any;
    };
}

/**
 * 管道线  Entity矢量数据
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.minPointNum = 2] - 绘制时，至少需要点的个数
 * @param [options.maxPointNum = 9999] - 绘制时，最多允许点的个数
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.hasMoveEdit = true] - 编辑时，是否可以整体平移
 * @param [options.hasHeightEdit = true] - 编辑时，当有diffHeight时，是否可以编辑高度
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class PolylineVolumeEntity extends BasePolyEntity {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[];
        style: PolylineVolumeEntity.StyleOptions | any;
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        minPointNum?: number;
        maxPointNum?: number;
        hasEdit?: boolean;
        hasMoveEdit?: boolean;
        hasHeightEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 矢量数据对应的 Cesium内部对象的具体类型对象
     */
    readonly entityGraphic: Cesium.PolygonGraphics;
    /**
     * 编辑处理类
     */
    readonly EditClass: EditPolylineVolume;
}

declare namespace RectangleEntity {
    /**
     * 矩形 支持的样式信息
     * @property [fill = true] - 是否填充
     * @property [materialType = "Color"] - 填充类型 ,可选项：{@link MaterialType}
     * @property [materialOptions] - materialType对应的{@link MaterialType}中材质参数
     * @property [material = Cesium.Color.WHITE] - 指定用于填充的材质，指定material后`materialType`和`materialOptions`将被覆盖。
     * @property [color = "#3388ff"] - 颜色
     * @property [opacity = 1.0] - 透明度, 取值范围：0.0-1.0
     * @property [outline = false] - 是否边框
     * @property [outlineWidth = 1] - 边框宽度
     * @property [outlineColor = "#ffffff"] - 边框颜色
     * @property [outlineOpacity = 0.6] - 边框透明度
     * @property [outlineStyle] - 边框的完整自定义样式，会覆盖outlineWidth、outlineColor等参数。
     * @property [height = 0] - 高程，圆相对于椭球面的高度。
     * @property [heightReference = Cesium.HeightReference.NONE] - 指定高度相对于什么的属性。
     * @property [diffHeight = 100] - 高度差（走廊本身的高度），与extrudedHeight二选一。
     * @property [extrudedHeight] - 指定走廊挤压面相对于椭球面的高度。
     * @property [extrudedHeightReference = Cesium.HeightReference.NONE] - 指定挤压高度相对于什么的属性。
     * @property [rotation = 0] - 旋转角度（弧度值），正北为0，逆时针旋转
     * @property [rotationDegree = 0] - 旋转角度（度数值，0-360度），与rotation二选一
     * @property [stRotation = 0] - 矩形纹理的角度（弧度值），正北为0，逆时针旋转
     * @property [stRotationDegree = 0] - 矩形纹理的角度（度数值，0-360度），与stRotation二选一
     * @property [distanceDisplayCondition = false] - 是否按视距显示 或 指定此框将显示在与摄像机的多大距离。
     * @property [distanceDisplayCondition_far = 100000] - 最大距离
     * @property [distanceDisplayCondition_near = 0] - 最小距离
     * @property [hasShadows = false] - 是否阴影
     * @property [shadows = Cesium.ShadowMode.DISABLED] - 指定矩形是投射还是接收来自光源的阴影。
     * @property [granularity = Cesium.Math.RADIANS_PER_DEGREE] - 指定矩形上各点之间的角距离。
     * @property [clampToGround = false] - 是否贴地
     * @property [classificationType = Cesium.ClassificationType.BOTH] - 指定贴地时的覆盖类型，是只对地形、3dtiles 或 两者同时。
     * @property [zIndex = 0] - 层级顺序，指定用于排序地面几何的zIndex。只有当矩形为常量且没有指定height或extrdedheight时才有效果。
     * @property [setHeight] - 指定坐标高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [addHeight] - 在现有坐标基础上增加的高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [highlight] - 鼠标移入或单击(type:'click')后的对应高亮的部分样式，创建Graphic后也可以openHighlight、closeHighlight方法来手动调用
     * @property [label] - 支持附带文字的显示
     */
    type StyleOptions = any | {
        fill?: boolean;
        materialType?: string;
        materialOptions?: any;
        material?: Cesium.MaterialProperty | BaseMaterialProperty | Cesium.Color;
        color?: string | Cesium.Color;
        opacity?: number;
        outline?: boolean;
        outlineWidth?: number;
        outlineColor?: string | Cesium.Color;
        outlineOpacity?: number;
        outlineStyle?: PolylineEntity.StyleOptions | any;
        height?: number;
        heightReference?: Cesium.HeightReference;
        diffHeight?: number;
        extrudedHeight?: number;
        extrudedHeightReference?: Cesium.HeightReference;
        rotation?: number;
        rotationDegree?: number;
        stRotation?: number;
        stRotationDegree?: number;
        distanceDisplayCondition?: boolean | Cesium.DistanceDisplayCondition;
        distanceDisplayCondition_far?: number;
        distanceDisplayCondition_near?: number;
        hasShadows?: boolean;
        shadows?: Cesium.ShadowMode;
        granularity?: number;
        clampToGround?: boolean;
        classificationType?: Cesium.ClassificationType;
        zIndex?: number;
        setHeight?: number | string;
        addHeight?: number | string;
        highlight?: RectangleEntity.StyleOptions | any;
        label?: LabelEntity.StyleOptions | any;
    };
}

/**
 * 矩形  Entity矢量数据
 * @param options - 参数对象，包括以下：
 * @param [options.positions] - 坐标位置
 * @param [options.rectangle] - 矩形范围，与positions二选一。
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.minPointNum = 2] - 绘制时，至少需要点的个数
 * @param [options.maxPointNum = 9999] - 绘制时，最多允许点的个数
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.hasMoveEdit = true] - 编辑时，是否可以整体平移
 * @param [options.hasHeightEdit = true] - 编辑时，当有diffHeight时，是否可以编辑高度
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class RectangleEntity extends BasePolyEntity {
    constructor(options: {
        positions?: LngLatPoint[] | Cesium.Cartesian3[] | any[] | Cesium.PositionProperty | Cesium.CallbackProperty;
        rectangle?: Cesium.Rectangle | Cesium.PositionProperty | Cesium.CallbackProperty;
        style: RectangleEntity.StyleOptions | any;
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        minPointNum?: number;
        maxPointNum?: number;
        hasEdit?: boolean;
        hasMoveEdit?: boolean;
        hasHeightEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 矢量数据对应的 Cesium内部对象的具体类型对象
     */
    readonly entityGraphic: Cesium.RectangleGraphics;
    /**
     * 编辑处理类
     */
    readonly EditClass: EditRectangle;
    /**
     * 矩形的边线坐标集合（笛卡尔坐标）
     */
    outlinePositions: Cesium.Cartesian3[];
    /**
     * 矩形的边线坐标集合（经纬度二维数组），示例 [ [123.123456,32.654321,198.7], [111.123456,22.654321,50.7], …… ]
     */
    readonly outlineCoordinates: any[][];
    /**
     * 坐标数据对应的矩形边界对象
     */
    rectangle: Cesium.Rectangle;
    /**
     * 周长 距离（单位：米）
     */
    readonly distance: number;
    /**
     * 将矢量数据导出为GeoJSON格式规范对象。
     * @param [options] - 参数对象:
     * @param [options.outline] - 是否导出边线的坐标
     * @param [options.closure] - 导出outline时，是否闭合，true时会添加第0个点进行闭合。
     * @param [options.noAlt] - 不导出高度值
     * @returns GeoJSON格式规范对象
     */
    toGeoJSON(options?: {
        outline?: boolean;
        closure?: boolean;
        noAlt?: boolean;
    }): any;
    /**
     * 获取矩形的4个边线坐标集合（笛卡尔坐标）
     * @param [closure = true] - 是否闭合，true时会添加第0个点进行闭合。
     * @returns 边线坐标数组
     */
    getOutlinePositions(closure?: boolean): Cesium.Cartesian3[];
    /**
     * 获取矩形的4个边线坐标集合（经纬度二维数组）
     * @param [closure = true] - 是否闭合，true时会添加第0个点进行闭合。
     * @param [noAlt] - 是否包含高度值
     * @returns 边线坐标数组（经纬度二维数组）
     */
    getOutlineCoordinates(closure?: boolean, noAlt?: boolean): any[][];
    /**
     * 获取数据的矩形边界
     * @param [options] - 控制参数
     * @param [options.isFormat = false] - 是否格式化，格式化时示例： { xmin: 73.16895, xmax: 134.86816, ymin: 12.2023, ymax: 54.11485 }
     * @returns isFormat：true时，返回格式化对象，isFormat：false时返回Cesium.Rectangle对象
     */
    getRectangle(options?: {
        isFormat?: boolean;
    }): Cesium.Rectangle | any;
    /**
     * 判断点是否在矩形内
     * @param position - 需要判断的点
     * @returns 是否在矩形内
     */
    isInPoly(position: Cesium.Cartesian3 | LngLatPoint): boolean;
    /**
     * 中心点坐标 （笛卡尔坐标）
     */
    readonly center: Cesium.Cartesian3;
    /**
     * 面积（单位：平方米）
     */
    readonly area: number;
    /**
     * 位置坐标数组
     */
    readonly points: LngLatPoint[] | Cesium.Cartesian3[] | any[];
    /**
     * 飞行定位至 数据所在的视角
     * @param [options = {}] - 参数对象:
     * @param [options.radius] - 点状数据时，相机距离目标点的距离（单位：米）
     * @param [options.scale = 1.2] - 线面数据时，缩放比例，可以控制视角比矩形略大一些，这样效果更友好。
     * @param [options.minHeight] - 定位时相机的最小高度值，用于控制避免异常数据
     * @param [options.maxHeight] - 定位时相机的最大高度值，用于控制避免异常数据
     * @param [options.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
     * @param [options.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
     * @param [options.roll] - 翻滚角度值，绕经度线旋转角度,-90至90
     * @param [options.duration] - 飞行时间（单位：秒）。如果省略，SDK内部会根据飞行距离计算出理想的飞行时间。
     * @param [options.complete] - 飞行完成后要执行的函数。
     * @param [options.cancel] - 飞行取消时要执行的函数。
     * @param [options.endTransform] - 变换矩阵表示飞行结束时相机所处的参照系。
     * @param [options.maximumHeight] - 飞行高峰时的最大高度。
     * @param [options.pitchAdjustHeight] - 如果相机飞得比这个值高，在飞行过程中调整俯仰以向下看，并保持地球在视口。
     * @param [options.flyOverLongitude] - 地球上的两点之间总有两条路。这个选项迫使相机选择战斗方向飞过那个经度。
     * @param [options.flyOverLongitudeWeight] - 仅在通过flyOverLongitude指定的lon上空飞行，只要该方式的时间不超过flyOverLongitudeWeight的短途时间。
     * @param [options.convert = true] - 是否将目的地从世界坐标转换为场景坐标（仅在不使用3D时相关）。
     * @param [options.easingFunction] - 控制在飞行过程中如何插值时间。
     * @returns 如果飞行成功则解析为true的承诺，如果当前未在场景中可视化目标或取消飞行，则为false的Promise
     */
    flyTo(options?: {
        radius?: number;
        scale?: number;
        minHeight?: number;
        maxHeight?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        duration?: number;
        complete?: Cesium.Camera.FlightCompleteCallback;
        cancel?: Cesium.Camera.FlightCancelledCallback;
        endTransform?: Cesium.Matrix4;
        maximumHeight?: number;
        pitchAdjustHeight?: number;
        flyOverLongitude?: number;
        flyOverLongitudeWeight?: number;
        convert?: boolean;
        easingFunction?: Cesium.EasingFunction.Callback;
    }): Promise<boolean>;
}

declare namespace RectangularSensor {
    /**
     * 相控阵雷达 支持的样式信息
     * @property radius - 半径
     * @property [xHalfAngle = 0] - 传感器水平半角（弧度值）
     * @property [xHalfAngleDegree = 0] - 传感器水平半角（度数值，0-360度），与xHalfAngle二选一
     * @property [yHalfAngle = 0] - 传感器垂直半角（弧度值）
     * @property [yHalfAngleDegree = 0] - 传感器垂直半角（度数值，0-360度），与yHalfAngle二选一
     * @property [color = "#00FF00"] - 颜色
     * @property [opacity = 0.4] - 透明度
     * @property [material = new Cesium.Color(0.0, 1.0, 1.0, 0.4)] - 指定用于填充的材质，指定material后color属性将被覆盖。
     * @property [lineColor = "#ffffff"] - 边线颜色
     * @property [lineOpacity = 0.6] - 边线透明度
     * @property [heading = 0] - 方向角 （度数值，0-360度）
     * @property [pitch = 0] - 俯仰角（度数值，0-360度）
     * @property [roll = 0] - 翻滚角（度数值，0-360度）
     * @property [showScanPlane = true] - 是否显示扫描面
     * @property [scanPlaneColor = new Cesium.Color(0.0, 1.0, 1.0, 1.0)] - 扫描面颜色
     * @property [scanPlaneOpacity = 0.9] - 扫描面透明度
     * @property [scanPlaneMode = 'vertical'] - 扫描面方向模式,可选值：vertical（解释：垂直方向）、horizontal（解释：水平方向）
     * @property [scanPlaneRate = 3] - 扫描速率
     * @property [showSectorLines = true] - 是否显示扇面的线
     * @property [showSectorSegmentLines = true] - 是否显示扇面和圆顶面连接的线
     * @property [showLateralSurfaces = true] - 是否显示侧面
     * @property [lateralSurfaceMaterial] - 侧面材质
     * @property [showDomeSurfaces = true] - 是否显示圆顶表面
     * @property [domeSurfaceMaterial] - 圆顶表面材质
     * @property [showDomeLines = true] - 是否显示圆顶面线
     * @property [showIntersection = true] - 是否显示与地球相交的线
     * @property [intersectionColor = Cesium.Color.WHITE] - 与地球相交的线的颜色
     * @property [intersectionWidth = 5.0] - 与地球相交的线的宽度（像素）
     * @property [slice = 32] - 切分程度
     * @property [depthTest = true] - 是否被遮挡
     */
    type StyleOptions = any | {
        radius: number;
        xHalfAngle?: number;
        xHalfAngleDegree?: number;
        yHalfAngle?: number;
        yHalfAngleDegree?: number;
        color?: string | Cesium.Color;
        opacity?: number;
        material?: Cesium.MaterialProperty | BaseMaterialProperty | Cesium.Color;
        lineColor?: string | Cesium.Color;
        lineOpacity?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        showScanPlane?: boolean;
        scanPlaneColor?: string | Cesium.Color;
        scanPlaneOpacity?: number;
        scanPlaneMode?: number;
        scanPlaneRate?: number;
        showSectorLines?: boolean;
        showSectorSegmentLines?: boolean;
        showLateralSurfaces?: boolean;
        lateralSurfaceMaterial?: Cesium.MaterialProperty;
        showDomeSurfaces?: boolean;
        domeSurfaceMaterial?: Cesium.MaterialProperty;
        showDomeLines?: boolean;
        showIntersection?: boolean;
        intersectionColor?: Cesium.Color;
        intersectionWidth?: Cesium.Color;
        slice?: number;
        depthTest?: boolean;
    };
}

/**
 * 相控阵雷达  Entity对象，该对象暂不支持鼠标交互和拾取
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.orientation] - 实体方向
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.drawShow = true] - 绘制时，是否自动隐藏entity，可避免拾取坐标存在问题。
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class RectangularSensor extends BasePointEntity {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | Cesium.PositionProperty | number[] | string;
        style: RectangularSensor.StyleOptions | any;
        attr?: any;
        orientation?: Cesium.Property;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        drawShow?: boolean;
        hasEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 矢量数据对应的 Cesium内部对象的具体类型对象
     */
    readonly entityGraphic: any;
    /**
     * 圆的半径（单位：米）
     */
    radius: number;
}

declare namespace Video2D {
    /**
     * 视频融合（投射2D平面） 支持的样式信息
     * @property options.container - 视频对应的video标签
     * @property angle - 水平张角(度数)
     * @property angle2 - 垂直张角(度数)
     * @property distance - 投射距离
     * @property [heading = 0] - 方向角 （度数值，0-360度）
     * @property [pitch = 0] - 俯仰角（度数值，0-360度）
     * @property [roll = 0] - 翻滚角（度数值，0-360度）
     * @property [opacity = 1.0] - 透明度
     * @property [material = Cesium.Color.WHITE] - 指定用于填充的材质，指定material后。
     * @property [stRotation = 0] - 多边形纹理的角度（弧度值），正北为0，逆时针旋转
     * @property [stRotationDegree = 0] - 多边形纹理的角度（度数值，0-360度），与stRotation二选一
     * @property [outline = false] - 是否边框
     * @property [outlineWidth = 1] - 边框宽度
     * @property [outlineColor = "#ffffff"] - 边框颜色
     * @property [outlineOpacity = 0.6] - 边框透明度
     * @property [outlineStyle] - 边框的完整自定义样式，会覆盖outlineWidth、outlineColor等参数。
     * @property [distanceDisplayCondition = false] - 是否按视距显示 或 指定此框将显示在与摄像机的多大距离。
     * @property [distanceDisplayCondition_far = 100000] - 最大距离
     * @property [distanceDisplayCondition_near = 0] - 最小距离
     * @property [hasShadows = false] - 是否阴影
     * @property [shadows = Cesium.ShadowMode.DISABLED] - 指定多边形是投射还是接收来自光源的阴影。
     * @property [showFrustum = false] - 是否显示视椎体框线
     */
    type StyleOptions = any | {
        angle: number;
        angle2: number;
        distance: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        opacity?: number;
        material?: Cesium.MaterialProperty | BaseMaterialProperty | Cesium.Color;
        stRotation?: number;
        stRotationDegree?: number;
        outline?: boolean;
        outlineWidth?: number;
        outlineColor?: string | Cesium.Color;
        outlineOpacity?: number;
        outlineStyle?: PolylineEntity.StyleOptions | any;
        distanceDisplayCondition?: boolean | Cesium.DistanceDisplayCondition;
        distanceDisplayCondition_far?: number;
        distanceDisplayCondition_near?: number;
        hasShadows?: boolean;
        shadows?: Cesium.ShadowMode;
        showFrustum?: boolean;
    };
}

/**
 * 视频融合（投射2D平面）,
 * 根据相机位置、方向等参数，在相机前面生成一个PolygonEntity面，然后贴视频纹理
 * @param options - 参数对象，包括以下：
 * @param options.position - 相机坐标位置
 * @param [options.targetPosition] - 目标视点位置,可以替代style中的相机heading\pitch\roll方向和distance距离参数
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class Video2D extends PolygonEntity {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | Cesium.PositionProperty | number[] | string;
        targetPosition?: LngLatPoint | Cesium.Cartesian3 | number[];
        style: Video2D.StyleOptions | any;
        attr?: any;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 位置坐标 （笛卡尔坐标）, 赋值时可以传入LatLngPoint对象
     */
    position: Cesium.Cartesian3 | LngLatPoint;
    /**
     * 位置坐标 （笛卡尔坐标）
     */
    readonly point: LngLatPoint;
    /**
     * 位置坐标(数组对象)，示例[113.123456,31.123456,30.1]
     */
    readonly coordinate: any[];
    /**
     * 目标点位置(笛卡尔坐标)
     */
    targetPosition: Cesium.Cartesian3 | LngLatPoint;
    /**
     * 四周方向角，0-360度角度值
     * <br/>提示：父类属性，非所有子类都具备
     */
    heading: number;
    /**
     * 俯仰角，上下摇摆的角度，0-360度角度值
     * <br/>提示：父类属性，非所有子类都具备
     */
    pitch: number;
    /**
     * 滚转角，左右摆动的角度，0-360度角度值
     * <br/>提示：父类属性，非所有子类都具备
     */
    roll: number;
    /**
     * 水平张角，半场角度
     */
    angle: number;
    /**
     * 垂直张角，半场角度
     */
    angle2: number;
    /**
     * 投射距离（单位：米）
     */
    distance: number;
    /**
     * 混合系数0-1
     */
    opacity: number;
    /**
     * 是否显示视椎体框线
     */
    showFrustum: boolean;
    /**
     * 暂停或播放 视频
     */
    play: boolean;
    /**
     * 位置坐标(数组对象)，示例[113.123456,31.123456,30.1]
     * @param noAlt - true时不导出高度值
     * @returns 位置坐标(数组对象)
     */
    getCoordinate(noAlt: boolean): any[];
    /**
     * 定位至相机的第一视角
     * @returns 无
     */
    setView(): void;
    /**
     * 开始绘制矢量数据，绘制的数据会加载在layer图层。
     * @param layer - 图层
     * @returns 无
     */
    startDraw(layer: GraphicLayer): void;
    /**
     * 停止绘制
     * @returns 无
     */
    stopDraw(): void;
}

declare namespace WallEntity {
    /**
     * 墙 支持的样式信息
     * @property [diffHeight = 100] - 墙高，
     * @property [fixedTop = false] - 墙顶部是否使用统一的水平高度值
     * @property [minimumHeights] - 没有指定diffHeight时，可以指定用于墙壁底部而不是球体表面的高度数组。
     * @property [maximumHeights] - 没有指定diffHeight时，可以指定用于墙顶的高度数组，而不是每个位置的高度。
     * @property [fill = true] - 是否填充
     * @property [materialType = "Color"] - 填充类型 ,可选项：{@link MaterialType}
     * @property [materialOptions] - materialType对应的{@link MaterialType}中材质参数
     * @property [material = Cesium.Color.WHITE] - 指定用于填充的材质，指定material后`materialType`和`materialOptions`将被覆盖。
     * @property [color = "#00FF00"] - 颜色
     * @property [opacity = 1.0] - 透明度, 取值范围：0.0-1.0
     * @property [closure = false] - 是否闭合, 在positions是属性机制的回调对象时无效
     * @property [outline = false] - 是否边框
     * @property [outlineWidth = 1] - 边框宽度
     * @property [outlineColor = "#ffffff"] - 边框颜色
     * @property [outlineOpacity = 0.6] - 边框透明度
     * @property [distanceDisplayCondition = false] - 是否按视距显示 或 指定此框将显示在与摄像机的多大距离。
     * @property [distanceDisplayCondition_far = 100000] - 最大距离
     * @property [distanceDisplayCondition_near = 0] - 最小距离
     * @property [hasShadows = false] - 是否阴影
     * @property [shadows = Cesium.ShadowMode.DISABLED] - 指定墙壁是投射还是接收来自光源的阴影。
     * @property [granularity = Cesium.Math.RADIANS_PER_DEGREE] - 指定每个纬度点和经度点之间的角距离。
     * @property [setHeight] - 指定坐标高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [addHeight] - 在现有坐标基础上增加的高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [highlight] - 鼠标移入或单击(type:'click')后的对应高亮的部分样式，创建Graphic后也可以openHighlight、closeHighlight方法来手动调用
     * @property [label] - 支持附带文字的显示，额外支持：<br />
     * //  * @property {String|LngLatPoint} [label.position] 文字所在位置，默认是矢量对象本身的center属性值。支持配置 'center'：围合面的内部中心点坐标，'{xxxx}'配置属性字段, 或者直接指定坐标值。
     * //  * @property {Boolean} [label.showAll] MultiPolygon和MultiLineString时，是否显示所有注记，默认只在最大坐标数的面或线上显示。
     */
    type StyleOptions = any | {
        diffHeight?: number;
        fixedTop?: boolean;
        minimumHeights?: number[];
        maximumHeights?: number[];
        fill?: boolean;
        materialType?: string;
        materialOptions?: any;
        material?: Cesium.MaterialProperty | BaseMaterialProperty | Cesium.Color;
        color?: string | Cesium.Color;
        opacity?: number;
        closure?: boolean;
        outline?: boolean;
        outlineWidth?: string;
        outlineColor?: string | Cesium.Color;
        outlineOpacity?: number;
        distanceDisplayCondition?: boolean | Cesium.DistanceDisplayCondition;
        distanceDisplayCondition_far?: number;
        distanceDisplayCondition_near?: number;
        hasShadows?: boolean;
        shadows?: Cesium.ShadowMode;
        granularity?: number;
        setHeight?: number | string;
        addHeight?: number | string;
        highlight?: WallEntity.StyleOptions | any;
        label?: LabelEntity.StyleOptions | any | any;
    };
}

/**
 * 墙  Entity矢量数据
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.minPointNum = 2] - 绘制时，至少需要点的个数
 * @param [options.maxPointNum = 9999] - 绘制时，最多允许点的个数
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.hasMoveEdit = true] - 编辑时，是否可以整体平移
 * @param [options.hasHeightEdit = true] - 编辑时，当有diffHeight时，是否可以编辑高度
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class WallEntity extends BasePolyEntity {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[];
        style: WallEntity.StyleOptions | any;
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        minPointNum?: number;
        maxPointNum?: number;
        hasEdit?: boolean;
        hasMoveEdit?: boolean;
        hasHeightEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 矢量数据对应的 Cesium内部对象的具体类型对象
     */
    readonly entityGraphic: Cesium.WallGraphics;
    /**
     * 编辑处理类
     */
    readonly EditClass: EditWall;
}

/**
 * 攻击箭头  Entity矢量数据
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.hasMoveEdit = true] - 绘制时，是否可以整体平移
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class AttackArrow extends PolygonEntity {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[];
        style: PolygonEntity.StyleOptions | any;
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        hasMoveEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

/**
 * 攻击箭头(平尾)  Entity矢量数据
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.hasMoveEdit = true] - 绘制时，是否可以整体平移
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class AttackArrowPW extends PolygonEntity {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[];
        style: PolygonEntity.StyleOptions | any;
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        hasMoveEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 计算当前军标对象的边界坐标点
     * @param positions - 坐标位置
     * @param [options] - 控制参数(预留)
     * @returns 边界坐标点
     */
    static getOutlinePositions(positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[], options?: any): Cesium.Cartesian3[];
}

/**
 * 攻击箭头（燕尾）  Entity矢量数据
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.hasMoveEdit = true] - 绘制时，是否可以整体平移
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class AttackArrowYW extends PolygonEntity {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[];
        style: PolygonEntity.StyleOptions | any;
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        hasMoveEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 计算当前军标对象的边界坐标点
     * @param positions - 坐标位置
     * @param [options] - 控制参数(预留)
     * @returns 边界坐标点
     */
    static getOutlinePositions(positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[], options?: any): Cesium.Cartesian3[];
}

/**
 * 闭合曲面(3个点)   Entity矢量数据
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.hasMoveEdit = true] - 绘制时，是否可以整体平移
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class CloseVurve extends PolygonEntity {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[];
        style: PolygonEntity.StyleOptions | any;
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        hasMoveEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 计算当前军标对象的边界坐标点
     * @param positions - 坐标位置
     * @param [options] - 控制参数(预留)
     * @returns 边界坐标点
     */
    static getOutlinePositions(positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[], options?: any): Cesium.Cartesian3[];
}

/**
 * 双箭头（钳击）  Entity矢量数据
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.hasMoveEdit = true] - 绘制时，是否可以整体平移
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class DoubleArrow extends PolygonEntity {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[];
        style: PolygonEntity.StyleOptions | any;
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        hasMoveEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 计算当前军标对象的边界坐标点
     * @param positions - 坐标位置
     * @param [options] - 控制参数(预留)
     * @returns 边界坐标点
     */
    static getOutlinePositions(positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[], options?: any): Cesium.Cartesian3[];
}

/**
 * Regular对象 标绘处理对应的编辑类
 */
declare class EditRegular extends EditPolygon {
}

/**
 * Sector对象 标绘处理对应的编辑类
 */
declare class EditSector extends EditPolygon {
}

/**
 * 直箭头(2个点)   Entity矢量数据
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.hasMoveEdit = true] - 绘制时，是否可以整体平移
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class FineArrow extends PolygonEntity {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[];
        style: PolygonEntity.StyleOptions | any;
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        hasMoveEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 计算当前军标对象的边界坐标点
     * @param positions - 坐标位置
     * @param [options] - 控制参数(预留)
     * @returns 边界坐标点
     */
    static getOutlinePositions(positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[], options?: any): Cesium.Cartesian3[];
}

/**
 * 燕尾直箭头(2个点)   Entity矢量数据
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.hasMoveEdit = true] - 绘制时，是否可以整体平移
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class FineArrowYW extends PolygonEntity {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[];
        style: PolygonEntity.StyleOptions | any;
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        hasMoveEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 计算当前军标对象的边界坐标点
     * @param positions - 坐标位置
     * @param [options] - 控制参数(预留)
     * @returns 边界坐标点
     */
    static getOutlinePositions(positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[], options?: any): Cesium.Cartesian3[];
}

/**
 * 集结地(3个点)   Entity矢量数据
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.hasMoveEdit = true] - 绘制时，是否可以整体平移
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class GatheringPlace extends PolygonEntity {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[];
        style: PolygonEntity.StyleOptions | any;
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        hasMoveEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 计算当前军标对象的边界坐标点
     * @param positions - 坐标位置
     * @param [options] - 控制参数(预留)
     * @returns 边界坐标点
     */
    static getOutlinePositions(positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[], options?: any): Cesium.Cartesian3[];
}

/**
 * 等腰三角形(3个点)  Entity矢量数据
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.hasMoveEdit = true] - 绘制时，是否可以整体平移
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class IsosTriangle extends PolygonEntity {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[];
        style: PolygonEntity.StyleOptions | any;
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        hasMoveEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 计算当前矢量对象的边界坐标点
     * @param positions - 坐标位置
     * @param [options] - 控制参数(预留)
     * @returns 边界坐标点
     */
    static getOutlinePositions(positions: Cesium.Cartesian3[], options?: any): Cesium.Cartesian3[];
}

/**
 * 弓形面(3个点)   Entity矢量数据
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.hasMoveEdit = true] - 绘制时，是否可以整体平移
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class Lune extends PolygonEntity {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[];
        style: PolygonEntity.StyleOptions | any;
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        hasMoveEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 计算当前军标对象的边界坐标点
     * @param positions - 坐标位置
     * @param [options] - 控制参数(预留)
     * @returns 边界坐标点
     */
    static getOutlinePositions(positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[], options?: any): Cesium.Cartesian3[];
}

/**
 * 正多边形  Entity矢量数据
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息,还包括：
 * @param [options.style.border = 3] - 边数量
 * @param options.style.radius - 区域的半径（单位：米）
 * @param [options.style.startAngle = 0] - 区域的开始角度(正东方向为0,顺时针到360度)
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.hasMoveEdit = true] - 绘制时，是否可以整体平移
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class Regular extends PolygonEntity {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[];
        style: {
            border?: number;
            radius: number;
            startAngle?: number;
        };
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        hasMoveEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 编辑处理类
     */
    readonly EditClass: EditRegular;
    /**
     * 计算当前矢量对象的边界坐标点
     * @param center - 坐标位置
     * @param options - 控制参数
     * @param [options.border = 3] - 边数量
     * @param options.radius - 区域的半径（单位：米）
     * @param [options.startAngle = 0] - 区域的开始角度(正东方向为0,顺时针到360度)
     * @returns 边界坐标点
     */
    static getOutlinePositions(center: Cesium.Cartesian3, options: {
        border?: number;
        radius: number;
        startAngle?: number;
    }): Cesium.Cartesian3[];
    /**
     * 位置坐标数组 （笛卡尔坐标）, 赋值时可以传入LatLngPoint数组对象 或 Cesium.PolygonHierarchy
     */
    positions: Cesium.Cartesian3[];
}

/**
 * 扇形(3个点)  Entity矢量数据
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息,还包括：
 * @param options.style.radius - 扇形区域的半径（单位：米）
 * @param options.style.startAngle - 扇形区域的开始角度(正东方向为0,顺时针到360度)
 * @param options.style.endAngle - 扇形区域的结束角度(正东方向为0,顺时针到360度)
 * @param [options.style.noCenter] - 不连中心点
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.hasMoveEdit = true] - 绘制时，是否可以整体平移
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class Sector extends PolygonEntity {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[];
        style: {
            radius: number;
            startAngle: number;
            endAngle: number;
            noCenter?: boolean;
        };
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        hasMoveEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 编辑处理类
     */
    readonly EditClass: EditSector;
    /**
     * 计算当前矢量对象的边界坐标点
     * @param center - 中心点坐标位置
     * @param options - 控制参数
     * @param options.radius - 扇形区域的半径（单位：米）
     * @param options.startAngle - 扇形区域的开始角度(正东方向为0,顺时针到360度)
     * @param options.endAngle - 扇形区域的结束角度(正东方向为0,顺时针到360度)
     * @param [options.noCenter] - 不连中心点
     * @returns 边界坐标点
     */
    static getOutlinePositions(center: Cesium.Cartesian3, options: {
        radius: number;
        startAngle: number;
        endAngle: number;
        noCenter?: boolean;
    }): Cesium.Cartesian3[];
    /**
     * 位置坐标数组 （笛卡尔坐标）, 赋值时可以传入LatLngPoint数组对象 或 Cesium.PolygonHierarchy
     */
    positions: Cesium.Cartesian3[];
}

/**
 * 直箭头(3个点)   Entity矢量数据
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.hasMoveEdit = true] - 绘制时，是否可以整体平移
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class StraightArrow extends PolygonEntity {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[];
        style: PolygonEntity.StyleOptions | any;
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        hasMoveEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 计算当前军标对象的边界坐标点
     * @param positions - 坐标位置
     * @param [options] - 控制参数(预留)
     * @returns 边界坐标点
     */
    static getOutlinePositions(positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[], options?: any): Cesium.Cartesian3[];
}

/**
 * 角度量算对象，
 * 非直接调用，由 Measure 类统一创建及管理
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.label] - 测量结果文本的样式
 * @param [options.angleDecimal = 1] - 显示的 角度值 文本中保留的小数位
 * @param [options.decimal = 2] - 显示的 距离值 文本中保留的小数位
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.minPointNum = 2] - 绘制时，至少需要点的个数
 * @param [options.maxPointNum = 9999] - 绘制时，最多允许点的个数
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.hasMoveEdit = true] - 编辑时，是否可以整体平移
 * @param [options.hasHeightEdit = true] - 编辑时，当有diffHeight时，是否可以编辑高度
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class AngleMeasure extends PolylineEntity {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[];
        style: PolylineEntity.StyleOptions | any;
        attr?: any;
        label?: LabelEntity.StyleOptions | any;
        angleDecimal?: number;
        decimal?: number;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        minPointNum?: number;
        maxPointNum?: number;
        hasEdit?: boolean;
        hasMoveEdit?: boolean;
        hasHeightEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 测量结果
     */
    readonly measured: any;
    /**
     * 更新测量结果的文本
     * @param unit - 计量单位,{@link MeasureUtil#formatDistance} 可选值：auto、m、km、wm、mile、zhang 等。auto时根据距离值自动选用k或km
     * @returns 无
     */
    updateText(unit: string): void;
}

/**
 * 面积测量对象，
 * 非直接调用，由 Measure 类统一创建及管理
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.label] - 测量结果文本的样式
 * @param [options.decimal = 2] - 显示的 面积值 文本中保留的小数位
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.minPointNum = 2] - 绘制时，至少需要点的个数
 * @param [options.maxPointNum = 9999] - 绘制时，最多允许点的个数
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.hasMoveEdit = true] - 编辑时，是否可以整体平移
 * @param [options.hasHeightEdit = true] - 编辑时，当有diffHeight时，是否可以编辑高度
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class AreaMeasure extends PolygonEntity {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[];
        style: PolygonEntity.StyleOptions | any;
        attr?: any;
        label?: LabelEntity.StyleOptions | any;
        decimal?: number;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        minPointNum?: number;
        maxPointNum?: number;
        hasEdit?: boolean;
        hasMoveEdit?: boolean;
        hasHeightEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 测量结果
     */
    readonly measured: any;
    /**
     * 更新测量结果的文本
     * @param unit - 计量单位,{@link MeasureUtil#formatArea} 可选值：计量单位，可选值：auto、m、km、mu、ha 。auto时根据面积值自动选用m或km
     * @returns 无
     */
    updateText(unit: string): void;
    /**
     * 开始绘制矢量数据，绘制的数据会加载在layer图层。
     * @param layer - 图层
     * @returns 无
     */
    startDraw(layer: GraphicLayer): void;
}

/**
 * 贴地面积量算对象，
 * 非直接调用，由 Measure 类统一创建及管理
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.label] - 测量结果文本的样式
 * @param [options.decimal = 2] - 显示的 面积值 文本中保留的小数位
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.minPointNum = 2] - 绘制时，至少需要点的个数
 * @param [options.maxPointNum = 9999] - 绘制时，最多允许点的个数
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.hasMoveEdit = true] - 编辑时，是否可以整体平移
 * @param [options.hasHeightEdit = true] - 编辑时，当有diffHeight时，是否可以编辑高度
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class AreaSurfaceMeasure extends AreaMeasure {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[];
        style: PolygonEntity.StyleOptions | any;
        attr?: any;
        label?: LabelEntity.StyleOptions | any;
        decimal?: number;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        minPointNum?: number;
        maxPointNum?: number;
        hasEdit?: boolean;
        hasMoveEdit?: boolean;
        hasHeightEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

/**
 * 距离量算对象，
 * 非直接调用，由 Measure 类统一创建及管理
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.label] - 测量结果文本的样式
 * @param [options.decimal = 2] - 显示的 距离值 文本中保留的小数位
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.minPointNum = 2] - 绘制时，至少需要点的个数
 * @param [options.maxPointNum = 9999] - 绘制时，最多允许点的个数
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.hasMoveEdit = true] - 编辑时，是否可以整体平移
 * @param [options.hasHeightEdit = true] - 编辑时，当有diffHeight时，是否可以编辑高度
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class DistanceMeasure extends PolylineEntity {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[];
        style: PolylineEntity.StyleOptions | any;
        attr?: any;
        label?: LabelEntity.StyleOptions | any;
        decimal?: number;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        minPointNum?: number;
        maxPointNum?: number;
        hasEdit?: boolean;
        hasMoveEdit?: boolean;
        hasHeightEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 测量结果
     */
    readonly measured: any;
    /**
     * 更新测量结果的文本
     * @param unit - 计量单位,{@link MeasureUtil#formatDistance} 可选值：auto、m、km、mile、zhang 等。auto时根据距离值自动选用k或km
     * @returns 无
     */
    updateText(unit: string): void;
}

/**
 * 贴地距离量算对象
 * 非直接调用，由 Measure 类统一创建及管理
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.label] - 测量结果文本的样式
 * @param [options.decimal = 2] - 显示的 距离值 文本中保留的小数位
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.minPointNum = 2] - 绘制时，至少需要点的个数
 * @param [options.maxPointNum = 9999] - 绘制时，最多允许点的个数
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.hasMoveEdit = true] - 编辑时，是否可以整体平移
 * @param [options.hasHeightEdit = true] - 编辑时，当有diffHeight时，是否可以编辑高度
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class DistanceSurfaceMeasure extends DistanceMeasure {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[];
        style: PolylineEntity.StyleOptions | any;
        attr?: any;
        label?: LabelEntity.StyleOptions | any;
        decimal?: number;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        minPointNum?: number;
        maxPointNum?: number;
        hasEdit?: boolean;
        hasMoveEdit?: boolean;
        hasHeightEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

/**
 * 高度量算对象，
 * 非直接调用，由 Measure 类统一创建及管理
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.label] - 测量结果文本的样式
 * @param [options.decimal = 2] - 显示的 距离和高度值 文本中保留的小数位
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.minPointNum = 2] - 绘制时，至少需要点的个数
 * @param [options.maxPointNum = 9999] - 绘制时，最多允许点的个数
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.hasMoveEdit = true] - 编辑时，是否可以整体平移
 * @param [options.hasHeightEdit = true] - 编辑时，当有diffHeight时，是否可以编辑高度
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class HeightMeasure extends PolylineEntity {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[];
        style: PolylineEntity.StyleOptions | any;
        attr?: any;
        label?: LabelEntity.StyleOptions | any;
        decimal?: number;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        minPointNum?: number;
        maxPointNum?: number;
        hasEdit?: boolean;
        hasMoveEdit?: boolean;
        hasHeightEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 测量结果
     */
    readonly measured: any;
    /**
     * 更新测量结果的文本
     * @param unit - 计量单位,{@link MeasureUtil#formatDistance} 可选值：auto、m、km、wm、mile、zhang 等。auto时根据距离值自动选用k或km
     * @returns 无
     */
    updateText(unit: string): void;
}

/**
 * 三角高度量算对象，
 * 非直接调用，由 Measure 类统一创建及管理
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.label] - 测量结果文本的样式
 * @param [options.decimal = 2] - 显示的 距离和高度值 文本中保留的小数位
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.minPointNum = 2] - 绘制时，至少需要点的个数
 * @param [options.maxPointNum = 9999] - 绘制时，最多允许点的个数
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.hasMoveEdit = true] - 编辑时，是否可以整体平移
 * @param [options.hasHeightEdit = true] - 编辑时，当有diffHeight时，是否可以编辑高度
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class HeightTriangleMeasure extends HeightMeasure {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[];
        style: PolylineEntity.StyleOptions | any;
        attr?: any;
        label?: LabelEntity.StyleOptions | any;
        decimal?: number;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        minPointNum?: number;
        maxPointNum?: number;
        hasEdit?: boolean;
        hasMoveEdit?: boolean;
        hasHeightEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 更新测量结果的文本
     * @param unit - 计量单位,{@link MeasureUtil#formatDistance} 可选值：auto、m、km、wm、mile、zhang 等。auto时根据距离值自动选用k或km
     * @returns 无
     */
    updateText(unit: string): void;
}

/**
 * 坐标量算对象，
 * 非直接调用，由 Measure 类统一创建及管理
 * @param options - 参数对象，包括以下：
 * @param [options.crs = CRS.CGCS2000_GK_Zone_3] - 按指定坐标系显示坐标值,false不显示
 * @param options.position - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.drawShow = true] - 绘制时，是否自动隐藏entity，可避免拾取坐标存在问题。
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class PointMeasure extends PointEntity {
    constructor(options: {
        crs?: string | CRS | boolean;
        position: LngLatPoint | Cesium.Cartesian3 | Cesium.PositionProperty | number[] | string;
        style: PointEntity.StyleOptions | any;
        attr?: any;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        drawShow?: boolean;
        hasEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

/**
 * 剖面量算对象
 * 非直接调用，由 Measure 类统一创建及管理
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.label] - 测量结果文本的样式
 * @param [options.decimal = 2] - 显示的 距离值 文本中保留的小数位
 * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
 * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
 * @param [options.viewFrom] - 观察这个物体时建议的初始偏移量。
 * @param [options.parent] - 要与此实体关联的父实体。
 * @param [options.onBeforeCreate] - 在 new Cesium.Entity(addattr) 前的回调方法，可以对addattr做额外个性化处理。
 * @param [options.minPointNum = 2] - 绘制时，至少需要点的个数
 * @param [options.maxPointNum = 9999] - 绘制时，最多允许点的个数
 * @param [options.addHeight] - 在绘制时，在绘制点的基础上增加的高度值
 * @param [options.hasEdit = true] - 是否允许编辑
 * @param [options.hasMoveEdit = true] - 编辑时，是否可以整体平移
 * @param [options.hasHeightEdit = true] - 编辑时，当有diffHeight时，是否可以编辑高度
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class SectionMeasure extends DistanceMeasure {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | Cesium.PositionProperty | any[];
        style: PolylineEntity.StyleOptions | any;
        attr?: any;
        label?: LabelEntity.StyleOptions | any;
        decimal?: number;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
        viewFrom?: Cesium.Property;
        parent?: Cesium.Entity;
        onBeforeCreate?: (...params: any[]) => any;
        minPointNum?: number;
        maxPointNum?: number;
        addHeight?: number;
        hasEdit?: boolean;
        hasMoveEdit?: boolean;
        hasHeightEdit?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

/**
 * 体积量算对象（方量），
 * 非直接调用，由 Measure 类统一创建及管理。<br />
 *
 * 1. 挖方量: 计算“基准面”到地表之间的凸出部分进行挖掉的体积。<br />
 * 2. 填方量：计算“基准面”与“墙底部”之间的缺少部分进行填平的体积。
 * @param options - 参数对象，包括以下：
 * @param options.style - 基准面样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.polygonWallStyle] - 围墙面的样式
 * @param [options.label] - 测量结果文本的样式
 * @param [options.showFillVolume = true] - 是否显示填方体积结果文本
 * @param [options.fillVolumeName = '填方体积'] - 填方体积结果的名称
 * @param [options.showDigVolume = true] - 是否显示挖方体积结果文本
 * @param [options.digVolumeName = '挖方体积'] - 挖方体积结果的名称
 * @param [options.showArea = true] - 是否显示横切面积结果文本
 * @param [options.areaName = '横切面积'] - 横切面积结果的名称
 * @param [options.heightLabel = true] - 是否显示各边界点高度值文本
 * @param [options.offsetLabel = false] - 是否显示各边界点高度差文本
 * @param [options.labelHeight] - 各边界点高度结果文本的样式
 * @param [options.decimal = 2] - 显示的 数值 文本中保留的小数位
 * @param [options.has3dtiles] - 是否在3dtiles模型上分析（模型分析较慢，按需开启）,默认内部根据点的位置自动判断（但可能不准）
 * @param [options.exact = true] - 是否进行精确计算， 传false时是否快速概略计算方式，该方式计算精度较低，但计算速度快，仅能计算在当前视域内坐标的高度
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class VolumeMeasure extends AreaMeasure {
    constructor(options: {
        style: PolygonEntity.StyleOptions | any;
        attr?: any;
        polygonWallStyle?: PolygonEntity.StyleOptions | any;
        label?: LabelEntity.StyleOptions | any;
        showFillVolume?: boolean;
        fillVolumeName?: string;
        showDigVolume?: boolean;
        digVolumeName?: string;
        showArea?: boolean;
        areaName?: string;
        heightLabel?: boolean;
        offsetLabel?: boolean;
        labelHeight?: LabelEntity.StyleOptions | any;
        decimal?: number;
        has3dtiles?: boolean;
        exact?: boolean;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 面内的最高地表高度
     */
    readonly polygonMaxHeight: number;
    /**
     * 基准面 高度，
     * 1. 挖方量: 计算“基准面”到地表之间的凸出部分进行挖掉的体积。<br />
     * 2. 填方量：计算“基准面”与“墙底部”之间的缺少部分进行填平的体积。
     */
    height: number;
    /**
     * 底部高度，
     * 会影响 填方量：计算“基准面高度”与“底部高度”之间的缺少部分进行填平的体积。
     */
    minHeight: number;
    /**
     * 最高高度，对应墙的高度，
     * 不影响测量结果，只是显示效果的区别。
     */
    maxHeight: number;
    /**
     * 更新测量结果的文本
     * @param unit - 计量单位,{@link MeasureUtil#formatArea} 可选值：计量单位，可选值：auto、m、km、mu、ha 。auto时根据面积值自动选用m或km
     * @returns 无
     */
    updateText(unit: string): void;
    /**
     * 是否可以编辑
     */
    hasEdit: boolean;
}

/**
 * 单个坐标的点状 Primitive图元 矢量对象 基类
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param [options.modelMatrix] - 将图元(所有几何实例)从模型转换为世界坐标的4x4变换矩阵,可以替代position。
 * @param options.style - 矢量数据的 样式信息，具体见各类数据的说明
 * @param [options.attr] - 矢量数据的 属性信息，可以任意附加属性。
 * @param [options.frameRate = 20] - 当postion为CallbackProperty时，多少帧获取一次数据。用于控制效率，如果卡顿就把该数值调大一些。
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.depthFailAppearance] - 当深度测试失败时，用于为该图元着色的外观。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.maxCacheCount = 50] - 当使用addDynamicPosition设置为动画轨迹位置时，保留的坐标点数量，传-1时不限制
 * @param [options.forwardExtrapolationType = Cesium.ExtrapolationType.HOLD] - 当使用addDynamicPosition设置为动画轨迹位置时，在任何可用坐标之后一次请求值时要执行的推断类型，默认为最后一个坐标位置。
 * @param [options.backwardExtrapolationType = Cesium.ExtrapolationType.HOLD] - 当使用addDynamicPosition设置为动画轨迹位置时， 在任何可用坐标之前一次请求值时要执行的推断类型，默认为第一个坐标位置。
 * @param [options.clampToTileset] - 当使用addDynamicPosition设置为动画轨迹位置时，是否进行贴模型。
 * @param [options.frameRateHeight = 30] - 当使用addDynamicPosition设置为动画轨迹位置时，并clampToTileset：true时，多少帧计算一次贴模型高度
 * @param [options.objectsToExclude] - 当使用addDynamicPosition设置为动画轨迹位置时，并clampToTileset：true时，排除的不进行贴模型计算的模型对象，可以是： primitives, entities, 或 3D Tiles features
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class BasePointPrimitive extends BasePrimitive {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | number[];
        modelMatrix?: Cesium.Matrix4;
        style: any;
        attr?: any;
        frameRate?: number;
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        depthFailAppearance?: Cesium.Appearance;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        maxCacheCount?: number;
        forwardExtrapolationType?: Cesium.ExtrapolationType;
        backwardExtrapolationType?: Cesium.ExtrapolationType;
        clampToTileset?: boolean;
        frameRateHeight?: number;
        objectsToExclude?: any;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 位置坐标 （笛卡尔坐标）, 赋值时可以传入LatLngPoint对象
     */
    position: Cesium.Cartesian3 | LngLatPoint;
    /**
     * 同 positions只是为了兼容entity的同名属性
     */
    readonly positionsShow: Cesium.Cartesian3[];
    /**
     * 当前实时位置坐标（笛卡尔坐标）
     */
    readonly positionShow: Cesium.Cartesian3;
    /**
     * 位置坐标
     */
    readonly point: LngLatPoint;
    /**
     * 位置坐标(数组对象)，示例[113.123456,31.123456,30.1]
     */
    readonly coordinate: any[];
    /**
     * 中心点坐标 （笛卡尔坐标）
     */
    readonly center: Cesium.Cartesian3;
    /**
     * 中心点坐标
     */
    readonly centerPoint: LngLatPoint;
    /**
     * 坐标对应的高度值（单位：米）
     */
    height: number;
    /**
     * 三维空间中的旋转 【仅部分对象支持】
     */
    readonly orientation: Cesium.Quaternion;
    /**
     * 将图元(所有几何实例)从模型转换为世界坐标的4x4变换矩阵。
     * <br/>提示：父类属性，非所有子类都具备
     */
    readonly modelMatrix: Cesium.Matrix4;
    /**
     * 四周方向角，0-360度角度值
     * <br/>提示：父类属性，非所有子类都具备
     */
    heading: number;
    /**
     * 俯仰角，上下摇摆的角度，0-360度角度值
     * <br/>提示：父类属性，非所有子类都具备
     */
    pitch: number;
    /**
     * 滚转角，左右摆动的角度，0-360度角度值
     * <br/>提示：父类属性，非所有子类都具备
     */
    roll: number;
    /**
     * 贴模型分析时，排除的不进行贴模型计算的模型对象，默认是当前本身，可以是： primitives, entities 等
     */
    objectsToExclude: any | undefined;
    /**
     * 用于 map.trackedEntity 追踪的
     */
    readonly trackedEntity: Cesium.Entity | any;
    /**
     * 是否显示3个方向轴，用于对比测试
     */
    debugAxis: boolean;
    /**
     * 显示3个方向轴时的对应轴长度，用于对比测试
     */
    debugAxisLength: number;
    /**
     * 动态位置坐标
     */
    property: Cesium.SampledPositionProperty | Cesium.CallbackProperty;
    /**
     * 设置并添加动画轨迹位置，按“指定时间”运动到达“指定位置”。
     * @param point - 指定位置坐标
     * @param [currTime = Cesium.JulianDate.now()] - 指定时间, 默认为当前时间5秒后。当为String时，可以传入'2021-01-01 12:13:00'; 当为number时，可以传入当前时间延迟的秒数。
     * @returns 当前对象本身，可以链式调用
     */
    addDynamicPosition(point: LngLatPoint | Cesium.Cartesian3 | number[], currTime?: Cesium.JulianDate | Date | string | number): BasePointPrimitive;
    /**
     * 异步计算更新坐标高度进行贴地(或贴模型)，内部自动调用{@link PointUtil#getSurfaceHeight}方法处理。
     * @param [options = {}] - 参数对象:
     * @param [options.has3dtiles = auto] - 是否在3dtiles模型上分析（模型分析较慢，按需开启）,默认内部根据点的位置自动判断（但可能不准）
     * @param [options.objectsToExclude] - 贴模型分析时，排除的不进行贴模型计算的模型对象，可以是： primitives, entities, 或 3D Tiles features
     * @returns 异步计算完成的Promise
     */
    autoSurfaceHeight(options?: {
        has3dtiles?: boolean;
        objectsToExclude?: any;
    }): Promise<any>;
    /**
     * 位置坐标(数组对象)，示例[113.123456,31.123456,30.1]
     * @param noAlt - true时不导出高度值
     * @returns 位置坐标(数组对象)
     */
    getCoordinate(noAlt: boolean): any[];
}

/**
 * 多个坐标的线面状 Primitive图元 矢量对象 基类
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 矢量数据的 样式信息，具体见各类数据的说明
 * @param [options.attr] - 矢量数据的 属性信息，可以任意附加属性。
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.depthFailAppearance] - 当深度测试失败时，用于为该图元着色的外观。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class BasePolyPrimitive extends BasePrimitive {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | any[];
        style: any;
        attr?: any;
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        depthFailAppearance?: Cesium.Appearance;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 中心点坐标 （笛卡尔坐标）
     */
    readonly center: Cesium.Cartesian3;
    /**
     * 围合面的内部中心点坐标
     */
    readonly centerOfMass: Cesium.Cartesian3;
    /**
     * 边线的中心点坐标
     */
    readonly centerOfLine: Cesium.Cartesian3;
    /**
     * 距离（单位：米）
     */
    readonly distance: number;
    /**
     * 面积（单位：平方米）
     */
    readonly area: number;
    /**
     * 位置坐标数组 （笛卡尔坐标）, 赋值时可以传入LatLngPoint数组对象
     */
    positions: Cesium.Cartesian3[];
    /**
     * 同 positions 只是为了兼容entity的同名属性
     */
    readonly positionsShow: Cesium.Cartesian3[];
    /**
     * 位置坐标数组
     */
    readonly points: LngLatPoint[] | Cesium.Cartesian3[] | any[];
    /**
     * 位置坐标(数组对象)，示例 [ [123.123456,32.654321,198.7], [111.123456,22.654321,50.7] ]
     */
    readonly coordinates: any[][];
    /**
     * 坐标数据对应的矩形边界
     */
    readonly rectangle: Cesium.Rectangle;
    /**
     * 位置坐标(数组对象)，示例 [ [123.123456,32.654321,198.7], [111.123456,22.654321,50.7] ]
     * @param noAlt - true时不导出高度值
     * @returns 位置坐标(数组对象)
     */
    getCoordinates(noAlt: boolean): any[][];
    /**
     * 判断点是否在当前对象的坐标点围成的多边形内
     * @param position - 需要判断的点
     * @returns 是否在多边形内
     */
    isInPoly(position: Cesium.Cartesian3 | LngLatPoint): boolean;
    /**
     * 异步计算更新坐标高度进行贴地(或贴模型)，内部自动调用{@link PolyUtil#computeSurfacePoints}方法处理。
     * @param [options = {}] - 参数对象:
     * @param [options.has3dtiles = auto] - 是否在3dtiles模型上分析（模型分析较慢，按需开启）,默认内部根据点的位置自动判断（但可能不准）
     * @param [options.objectsToExclude] - 贴模型分析时，排除的不进行贴模型计算的模型对象，可以是： primitives, entities, 或 3D Tiles features
     * @param [options.offset = 0] - 可以按需增加偏移高度（单位：米），便于可视
     * @returns 异步计算完成的Promise
     */
    autoSurfaceHeight(options?: {
        has3dtiles?: boolean;
        objectsToExclude?: any;
        offset?: number;
    }): Promise<any>;
}

/**
 * Primitive图元 矢量对象 基类
 * @param options - 参数对象，包括以下：
 * @param options.position - 【点状】矢量数据时的坐标位置，具体看子类实现
 * @param options.positions - 【线面状（多点）】矢量数据时的坐标位置，具体看子类实现
 * @param options.style - 矢量数据的 样式信息，具体见各类数据的说明
 * @param [options.attr] - 矢量数据的 属性信息，可以任意附加属性。
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.depthFailAppearance] - 当深度测试失败时，用于为该图元着色的外观。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class BasePrimitive extends BaseGraphic {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | number[];
        positions: LngLatPoint[] | Cesium.Cartesian3[] | any[];
        style: any;
        attr?: any;
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        depthFailAppearance?: Cesium.Appearance;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 当加载primitive数据的内部Cesium容器
     */
    primitiveCollection: Cesium.PrimitiveCollection | Cesium.LabelCollection | Cesium.BillboardCollection | Cesium.PointPrimitiveCollection | Cesium.CloudCollection;
    /**
     * 矢量数据对应的 Cesium内部对象
     */
    readonly primitive: Cesium.Primitive | Cesium.GroundPrimitive | Cesium.ClassificationPrimitive | any;
    /**
     * 返回实例可修改的属性。{@link Cesium.GeometryInstance}
     * @example
     * let attributes = primitiveGraphic.geometryInstanceAttributes;
     * attributes.color = Cesium.ColorGeometryInstanceAttribute.toValue(Cesium.Color.AQUA);
     * attributes.show = Cesium.ShowGeometryInstanceAttribute.toValue(true);
     */
    readonly geometryInstanceAttributes: any;
    /**
     * 对应材质的uniforms（当赋有材质时）,
     * 一个对象，它的属性被用来设置片段着色器shader。
     * <p>
     * 对象属性值可以是常量或函数。这个函数将在每一帧后处理阶段执行之前被调用。
     * </p>
     * <p>
     *  常量值也可以是图像的URI、数据URI，或者可以用作纹理的HTML元素，如HTMLImageElement或HTMLCanvasElement。
     * </p>
     */
    readonly uniforms: any | undefined;
    /**
     * 附加的label文本对象（仅基础primitive支持，如Combine对象不支持）
     */
    readonly label: Cesium.Label | any;
    /**
     * 是否正在编辑状态，不是所有子类均支持编辑
     */
    readonly isEditing: boolean;
    /**
     * 设置透明度, 不是所有类型均支持调整透明度，主要看数据类型和材质类型决定。
     * @param value - 透明度
     * @returns 无
     */
    setOpacity(value: number): void;
    /**
     * 重新渲染
     * @param [style] - 新的样式信息
     * @returns 当前对象本身
     */
    redraw(style?: any): BasePrimitive;
    /**
     * 高亮对象。
     * @param [highlightStyle] - 高亮的样式，具体见各{@link GraphicType}矢量数据的style参数。
     * @param [closeLast = true] - 是否清除地图上上一次的高亮对象
     * @returns 无
     */
    openHighlight(highlightStyle?: any, closeLast?: boolean): void;
    /**
     * 清除已选中的高亮，原有style的配置项需要与highlightStyle配置有一一对应关系，否则无法清除
     * @returns 无
     */
    closeHighlight(): void;
    /**
     * 开始绘制矢量数据，绘制的数据会加载在layer图层。
     * @param layer - 图层
     * @returns 无
     */
    startDraw(layer: GraphicLayer): void;
    /**
     * 停止绘制
     * @returns 无
     */
    stopDraw(): void;
    /**
     * 完成绘制和编辑，如有未完成的绘制会自动完成。
     * 在移动端需要调用此方法来类似PC端双击结束。
     * @returns 是否正常结束了矢量对象绘制
     */
    endDraw(): boolean;
    /**
     * 开始编辑对象
     * @returns 无
     */
    startEditing(): void;
    /**
     * 停止编辑，释放正在编辑的对象。
     * @returns 无
     */
    stopEditing(): void;
    /**
     * 矢量数据对应的 Cesium内部对象 (不同子类中实现)
     */
    readonly czmObject: Cesium.Entity | Cesium.Primitive | Cesium.GroundPrimitive | Cesium.ClassificationPrimitive | any;
    /**
     * 显示隐藏状态
     */
    show: boolean;
}

/**
 * 图标点 Primitive矢量数据
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.forwardExtrapolationType = Cesium.ExtrapolationType.HOLD] - 当使用addDynamicPosition设置为动画轨迹位置时，在任何可用坐标之后一次请求值时要执行的推断类型，默认为最后一个坐标位置。
 * @param [options.backwardExtrapolationType = Cesium.ExtrapolationType.HOLD] - 当使用addDynamicPosition设置为动画轨迹位置时， 在任何可用坐标之前一次请求值时要执行的推断类型，默认为第一个坐标位置。
 * @param [options.clampToTileset] - 当使用addDynamicPosition设置为动画轨迹位置时，是否进行贴模型。
 * @param [options.frameRateHeight = 30] - 当使用addDynamicPosition设置为动画轨迹位置时，并clampToTileset：true时，多少帧计算一次贴模型高度
 * @param [options.objectsToExclude] - 当使用addDynamicPosition设置为动画轨迹位置时，并clampToTileset：true时，排除的不进行贴模型计算的模型对象，可以是： primitives, entities, 或 3D Tiles features
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class BillboardPrimitive extends BasePointPrimitive {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | number[];
        style: BillboardEntity.StyleOptions | any;
        attr?: any;
        forwardExtrapolationType?: Cesium.ExtrapolationType;
        backwardExtrapolationType?: Cesium.ExtrapolationType;
        clampToTileset?: boolean;
        frameRateHeight?: number;
        objectsToExclude?: any;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 当加载primitive数据的内部Cesium容器
     */
    readonly primitiveCollection: Cesium.BillboardCollection;
    /**
     * 图像、URI或Canvas
     */
    image: string | HTMLCanvasElement;
    /**
     * 设置透明度
     * @param value - 透明度
     * @returns 无
     */
    setOpacity(value: number): void;
}

declare namespace BoxPrimitive {
    /**
     * 盒子 支持的样式信息
     * @property [dimensions] - 指定盒子的长度、宽度和高度。
     * @property [dimensions_x = 100] - 盒子长度
     * @property [dimensions_y = 100] - 盒子宽度
     * @property [dimensions_z = 100] - 盒子高度
     * @property [heading = 0] - 方向角 （度数值，0-360度）
     * @property [pitch = 0] - 俯仰角（度数值，0-360度）
     * @property [roll = 0] - 翻滚角（度数值，0-360度）
     * @property [materialType = "Color"] - 填充材质类型 ,可选项：{@link MaterialType}
     * @property [materialOptions] - materialType对应的{@link MaterialType}中材质参数
     * @property [material] - 指定用于填充的材质，指定material后`materialType`和`materialOptions`将被覆盖。
     * @property [color = "#00FF00"] - 颜色
     * @property [opacity = 1.0] - 透明度, 取值范围：0.0-1.0
     * @property [outline = false] - 是否边框
     * @property [outlineColor = "#ffffff"] - 边框颜色
     * @property [outlineOpacity = 0.6] - 边框透明度
     * @property [materialSupport = MaterialAppearance.MaterialSupport.TEXTURED] - 将被支持的材质类型。
     *
     * //以下是 这是MaterialAppearance的参数
     * @property [flat = false] - 当true时，在片段着色器中使用平面着色，不考虑光照。
     * @property [faceForward = !closed] - 当true时，片段着色器根据需要翻转表面的法线，以确保法线面向查看器以避免黑点。
     * @property [translucent = true] - 当true时，几何图形将显示为半透明，因此{@link Cesium.PerInstanceColorAppearance#renderState}将启用alpha混合。
     * @property [closed = true] - 当true时，几何图形将被关闭，因此{@link Cesium.PerInstanceColorAppearance#renderState}启用了背面剔除。
     * @property [vertexShaderSource] - 可选的GLSL顶点着色器源，覆盖默认的顶点着色器。
     * @property [fragmentShaderSource] - 可选的GLSL片段着色器源覆盖默认的片段着色器。
     * @property [renderState] - 可选渲染状态，以覆盖默认渲染状态。
     * @property [setHeight] - 指定坐标高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [addHeight] - 在现有坐标基础上增加的高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [highlight] - 鼠标移入或单击(type:'click')后的对应高亮的部分样式，创建Graphic后也可以openHighlight、closeHighlight方法来手动调用
     * @property [label] - 支持附带文字的显示
     */
    type StyleOptions = any | {
        dimensions?: Cesium.Cartesian3;
        dimensions_x?: number;
        dimensions_y?: number;
        dimensions_z?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        materialType?: string;
        materialOptions?: any;
        material?: Cesium.Material;
        color?: string | Cesium.Color;
        opacity?: number;
        outline?: boolean;
        outlineColor?: string | Cesium.Color;
        outlineOpacity?: number;
        materialSupport?: Cesium.MaterialAppearance.MaterialSupportType;
        flat?: boolean;
        faceForward?: boolean;
        translucent?: boolean;
        closed?: boolean;
        vertexShaderSource?: string;
        fragmentShaderSource?: string;
        renderState?: any;
        setHeight?: number | string;
        addHeight?: number | string;
        highlight?: BoxPrimitive.StyleOptions | any;
        label?: LabelEntity.StyleOptions | any;
    };
}

/**
 * 盒子 Primitive图元矢量对象
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param [options.modelMatrix] - 将图元(所有几何实例)从模型转换为世界坐标的4x4变换矩阵,可以替代position。
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.depthFailAppearance] - 当深度测试失败时，用于为该图元着色的外观。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class BoxPrimitive extends BasePointPrimitive {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | number[];
        modelMatrix?: Cesium.Matrix4;
        style: BoxPrimitive.StyleOptions | any;
        attr?: any;
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        depthFailAppearance?: Cesium.Appearance;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

declare namespace CirclePrimitive {
    /**
     * 圆 支持的样式信息
     * @property [radius = 100] - 半径
     * @property [height = 0] - 高程，圆相对于椭球面的高度。
     * @property [diffHeight = 100] - 高度差（圆柱本身的高度），与extrudedHeight二选一。
     * @property [extrudedHeight] - 指定圆的挤压面相对于椭球面的高度。
     * @property [stRotation = 0] - 椭圆纹理的角度（弧度值），正北为0，逆时针旋转
     * @property [stRotationDegree = 0] - 椭圆纹理的角度（度数值，0-360度），与stRotation二选一
     * @property [granularity = Cesium.Math.RADIANS_PER_DEGREE] - 指定椭圆上各点之间的角距离。
     * @property [materialType = "Color"] - 填充材质类型 ,可选项：{@link MaterialType}
     * @property [materialOptions] - materialType对应的{@link MaterialType}中材质参数
     * @property [material] - 指定用于填充的材质，指定material后`materialType`和`materialOptions`将被覆盖。
     * @property [color = "#00FF00"] - 颜色
     * @property [opacity = 1.0] - 透明度, 取值范围：0.0-1.0
     * @property [outline = false] - 是否边框
     * @property [outlineColor = "#ffffff"] - 边框颜色
     * @property [outlineOpacity = 0.6] - 边框透明度
     * @property [outlineStyle] - 边框的样式，会覆盖outlineColor、outlineOpacity
     * @property [materialSupport = Cesium.MaterialAppearance.MaterialSupport.TEXTURED] - 将被支持的材质类型。
     * @property [clampToGround = false] - 是否贴地
     * @property [classificationType = Cesium.ClassificationType.BOTH] - 指定贴地时的覆盖类型，是只对地形、3dtiles 或 两者同时。
     * @property [classification = false] - 是否为ClassificationPrimitive ，分类基元 表示Scene要高亮显示的包围几何的体积
     *
     * //以下是 这是MaterialAppearance的参数
     * @property [flat = false] - 当true时，在片段着色器中使用平面着色，不考虑光照。
     * @property [faceForward = !closed] - 当true时，片段着色器根据需要翻转表面的法线，以确保法线面向查看器以避免黑点。
     * @property [translucent = true] - 当true时，几何图形将显示为半透明，因此{@link Cesium.PerInstanceColorAppearance#renderState}将启用alpha混合。
     * @property [closed = false] - 当true时，几何图形将被关闭，因此{@link Cesium.PerInstanceColorAppearance#renderState}启用了背面剔除。
     * @property [vertexShaderSource] - 可选的GLSL顶点着色器源，覆盖默认的顶点着色器。
     * @property [fragmentShaderSource] - 可选的GLSL片段着色器源覆盖默认的片段着色器。
     * @property [renderState] - 可选渲染状态，以覆盖默认渲染状态。
     * @property [setHeight] - 指定坐标高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [addHeight] - 在现有坐标基础上增加的高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [highlight] - 鼠标移入或单击(type:'click')后的对应高亮的部分样式，创建Graphic后也可以openHighlight、closeHighlight方法来手动调用
     * @property [label] - 支持附带文字的显示
     */
    type StyleOptions = any | {
        radius?: number;
        height?: number;
        diffHeight?: number;
        extrudedHeight?: number;
        stRotation?: number;
        stRotationDegree?: number;
        granularity?: number;
        materialType?: string;
        materialOptions?: any;
        material?: Cesium.Material;
        color?: string | Cesium.Color;
        opacity?: number;
        outline?: boolean;
        outlineColor?: string | Cesium.Color;
        outlineOpacity?: number;
        outlineStyle?: PolylinePrimitive.StyleOptions | any;
        materialSupport?: Cesium.MaterialAppearance.MaterialSupportType;
        clampToGround?: boolean;
        classificationType?: Cesium.ClassificationType;
        classification?: boolean;
        flat?: boolean;
        faceForward?: boolean;
        translucent?: boolean;
        closed?: boolean;
        vertexShaderSource?: string;
        fragmentShaderSource?: string;
        renderState?: any;
        setHeight?: number | string;
        addHeight?: number | string;
        highlight?: CirclePrimitive.StyleOptions | any;
        label?: LabelEntity.StyleOptions | any;
    };
}

/**
 * 圆 Primitive图元矢量对象
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param [options.modelMatrix] - 将图元(所有几何实例)从模型转换为世界坐标的4x4变换矩阵,可以替代position。
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.depthFailAppearance] - 当深度测试失败时，用于为该图元着色的外观。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class CirclePrimitive extends BasePointPrimitive {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | number[];
        modelMatrix?: Cesium.Matrix4;
        style: CirclePrimitive.StyleOptions | any;
        attr?: any;
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        depthFailAppearance?: Cesium.Appearance;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 圆的半径（单位：米）
     */
    radius: number;
    /**
     * 圆的边线坐标集合（笛卡尔坐标）
     */
    readonly outlinePositions: Cesium.Cartesian3[];
    /**
     * 获取圆的边线坐标集合（经纬度二维数组）
     * @param [closure = true] - 是否闭合，true时会添加第0个点进行闭合。
     * @param [count = 90] - 象限内点的数量，返回的总数为 count*4
     * @param [noAlt] - 是否包含高度值
     * @returns 边线坐标数组（经纬度二维数组）
     */
    getOutlineCoordinates(closure?: boolean, count?: number, noAlt?: boolean): any[][];
    /**
     * 获取圆的边线坐标集合（笛卡尔坐标）
     * @param [closure = true] - 是否闭合，true时会添加第0个点进行闭合。
     * @param [count] - 象限内点的数量，返回的总数为 count*4
     * @returns 边线坐标数组
     */
    getOutlinePositions(closure?: boolean, count?: number): Cesium.Cartesian3[];
    /**
     * 获取数据的矩形边界
     * @param [options] - 控制参数
     * @param [options.isFormat = false] - 是否格式化，格式化时示例： { xmin: 73.16895, xmax: 134.86816, ymin: 12.2023, ymax: 54.11485 }
     * @returns isFormat：true时，返回格式化对象，isFormat：false时返回Cesium.Rectangle对象
     */
    getRectangle(options?: {
        isFormat?: boolean;
    }): Cesium.Rectangle | any;
    /**
     * 判断点是否在圆内
     * @param position - 需要判断的点
     * @returns 是否在圆内
     */
    isInPoly(position: Cesium.Cartesian3 | LngLatPoint): boolean;
    /**
     * 飞行定位至 数据所在的视角
     * @param [options = {}] - 参数对象:
     * @param [options.radius] - 点状数据时，相机距离目标点的距离（单位：米）
     * @param [options.scale = 1.2] - 线面数据时，缩放比例，可以控制视角比矩形略大一些，这样效果更友好。
     * @param [options.minHeight] - 定位时相机的最小高度值，用于控制避免异常数据
     * @param [options.maxHeight] - 定位时相机的最大高度值，用于控制避免异常数据
     * @param [options.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
     * @param [options.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
     * @param [options.roll] - 翻滚角度值，绕经度线旋转角度,-90至90
     * @param [options.duration] - 飞行时间（单位：秒）。如果省略，SDK内部会根据飞行距离计算出理想的飞行时间。
     * @param [options.complete] - 飞行完成后要执行的函数。
     * @param [options.cancel] - 飞行取消时要执行的函数。
     * @param [options.endTransform] - 变换矩阵表示飞行结束时相机所处的参照系。
     * @param [options.maximumHeight] - 飞行高峰时的最大高度。
     * @param [options.pitchAdjustHeight] - 如果相机飞得比这个值高，在飞行过程中调整俯仰以向下看，并保持地球在视口。
     * @param [options.flyOverLongitude] - 地球上的两点之间总有两条路。这个选项迫使相机选择战斗方向飞过那个经度。
     * @param [options.flyOverLongitudeWeight] - 仅在通过flyOverLongitude指定的lon上空飞行，只要该方式的时间不超过flyOverLongitudeWeight的短途时间。
     * @param [options.convert = true] - 是否将目的地从世界坐标转换为场景坐标（仅在不使用3D时相关）。
     * @param [options.easingFunction] - 控制在飞行过程中如何插值时间。
     * @returns 如果飞行成功则解析为true的承诺，如果当前未在场景中可视化目标或取消飞行，则为false的Promise
     */
    flyTo(options?: {
        radius?: number;
        scale?: number;
        minHeight?: number;
        maxHeight?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        duration?: number;
        complete?: Cesium.Camera.FlightCompleteCallback;
        cancel?: Cesium.Camera.FlightCancelledCallback;
        endTransform?: Cesium.Matrix4;
        maximumHeight?: number;
        pitchAdjustHeight?: number;
        flyOverLongitude?: number;
        flyOverLongitudeWeight?: number;
        convert?: boolean;
        easingFunction?: Cesium.EasingFunction.Callback;
    }): Promise<boolean>;
}

declare namespace CloudPrimitive {
    /**
     * 积云 Primitive矢量数据 支持的样式信息
     * @property scale - 积云的比例（以米为单位）。该scale属性会影响广告牌的大小，但不会影响云的实际外观。
     * @property maximumSize - 积云的最大尺寸。这定义了云可以出现的最大椭球体积。这不是保证特定的大小，而是指定了云出现的边界，改变它可以影响云的形状。
     * @property slice - 切片，即为广告牌外观选择的云的特定横截面。给定一个介于 0 和 1 之间的值，切片根据其在 z 方向上的最大尺寸指定与云相交的深度。
     * @property [brightness = 1.0] - 亮度
     */
    type StyleOptions = any | {
        scale: Cesium.Cartesian2;
        maximumSize: Cesium.Cartesian3;
        slice: number;
        brightness?: number;
    };
}

/**
 * 积云 Primitive矢量数据
 * <br />
 * <div align='center'>
 * <img src='//mars3d.cn/api/cesium/Images/CumulusCloud.png' width='400' height='300' />
 * </div>
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.stopPropagation = false] - 当前类中事件是否停止冒泡, false时：事件冒泡到layer中。
 */
declare class CloudPrimitive extends BasePointPrimitive {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | number[];
        style: CloudPrimitive.StyleOptions | any;
        attr?: any;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        stopPropagation?: boolean;
    });
    /**
     * 当加载primitive数据的内部Cesium容器
     */
    readonly primitiveCollection: Cesium.CloudCollection;
    /**
     * 积云的最大大小。这定义了云可以出现在的最大椭球体体积。这不是保证一个特定的大小，而是指定了云出现的边界，改变它可能会影响云的形状。
     * 改变maximumSize的z值对云的外观有最显著的影响，因为它改变了云的深度，从而改变了云形状纹理采样的位置。
     *
     * <div align='center'>
     * <table border='0' cellpadding='5'>
     * <tr>
     *   <td align='center'>
     *     <code>cloud.maximumSize = new Cesium.Cartesian3(14, 9, 10);</code><br/>
     *     <img src='//mars3d.cn/api/cesium/Images/CumulusCloud.maximumSizex14y9z10.png' width='250' height='158' />
     *   </td>
     *   <td align='center'>
     *     <code>cloud.maximumSize.x = 25;</code><br/>
     *     <img src='//mars3d.cn/api/cesium/Images/CumulusCloud.maximumSizex25.png' width='250' height='158' />
     *   </td>
     * </tr>
     * <tr>
     *   <td align='center'>
     *     <code>cloud.maximumSize.y = 5;</code><br/>
     *     <img src='//mars3d.cn/api/cesium/Images/CumulusCloud.maximumSizey5.png' width='250' height='158' />
     *   </td>
     *   <td align='center'>
     *     <code>cloud.maximumSize.z = 17;</code><br/>
     *     <img src='//mars3d.cn/api/cesium/Images/CumulusCloud.maximumSizez17.png' width='250' height='158' />
     *   </td>
     * </tr>
     * </table>
     * </div>
     *
     * <p>To modify the billboard's actual size, modify the cloud's <code>scale</code> property.</p>
     */
    maximumSize: Cesium.Cartesian3;
    /**
     * 积云广告牌的规模(以米为单位)。缩放属性会影响广告牌的大小，但不会影响云的实际外观。
     *
     * <div align='center'>
     * <table border='0' cellpadding='5'><tr>
     * <td align='center'>
     *   <code>cloud.scale = new Cesium.Cartesian2(12, 8);</code><br/>
     *   <img src='//mars3d.cn/api/cesium/Images/CumulusCloud.scalex12y8.png' width='250' height='158' />
     * </td>
     * <td align='center'>
     *   <code>cloud.scale = new Cesium.Cartesian2(24, 10);</code><br/>
     *   <img src='//mars3d.cn/api/cesium/Images/CumulusCloud.scalex24y10.png' width='250' height='158' />
     * </td>
     * </tr></table>
     * </div>
     *
     * <p>To modify the cloud's appearance, modify its <code>maximumSize</code>
     * and <code>slice</code> properties.</p>
     */
    scale: Cesium.Cartesian2;
    /**
     * 在广告牌上渲染的云的“切片”，即为广告牌的外观选择的云的特定横截面。给定一个介于0和1之间的值，切片根据它在z方向上的最大大小指定与云相交的深度。
     * <div align='center'>
     * <table border='0' cellpadding='5'><tr>
     * <td align='center'><code>cloud.slice = 0.32;</code><br/><img src='//mars3d.cn/api/cesium/Images/CumulusCloud.slice0.32.png' width='250' height='158' /></td>
     * <td align='center'><code>cloud.slice = 0.5;</code><br/><img src='//mars3d.cn/api/cesium/Images/CumulusCloud.slice0.5.png' width='250' height='158' /></td>
     * <td align='center'><code>cloud.slice = 0.6;</code><br/><img src='//mars3d.cn/api/cesium/Images/CumulusCloud.slice0.6.png' width='250' height='158' /></td>
     * </tr></table>
     * </div>
     *
     * <br />
     *
     * 由于计算这个切片的性质，低于0.2的值可能导致横截面太小，从而可以看到椭球体的边缘。同样，大于0.7的值会使云看起来更小。应该完全避免超出范围[0.1,0.9]的值，因为它们不会产生理想的结果。
     * <div align='center'>
     * <table border='0' cellpadding='5'><tr>
     * <td align='center'><code>cloud.slice = 0.08;</code><br/><img src='//mars3d.cn/api/cesium/Images/CumulusCloud.slice0.08.png' width='250' height='158' /></td>
     * <td align='center'><code>cloud.slice = 0.8;</code><br/><img src='//mars3d.cn/api/cesium/Images/CumulusCloud.slice0.8.png' width='250' height='158' /></td>
     * </tr></table>
     * </div>
     *
     * 如果slice设置为负数，云将不会渲染一个横截面。相反，它将渲染椭球的外部是可见的。对于具有“maximumSize”小值的云。，这可以产生好看的结果，但对于较大的云，这可能导致云扭曲到不希望的椭球体体积。
     * <div align='center'>
     * <table border='0' cellpadding='5'><tr>
     * <td align='center'>
     *  <code>cloud.slice = -1.0;<br/>cloud.maximumSize.z = 18;</code><br/>
     *  <img src='//mars3d.cn/api/cesium/Images/CumulusCloud.slice-1z18.png' width='250' height='158' />
     * </td>
     * <td align='center'>
     *   <code>cloud.slice = -1.0;<br/>cloud.maximumSize.z = 30;</code><br/>
     *   <img src='//mars3d.cn/api/cesium/Images/CumulusCloud.slice-1z30.png' width='250' height='158' /></td>
     * </tr></table>
     * </div>
     */
    slice: number;
    /**
     * 云的亮度。这可以用来给云一个更暗、更灰的外观。
     * <br /><br />
     * <div align='center'>
     * <table border='0' cellpadding='5'><tr>
     * <td align='center'><code>cloud.brightness = 1.0;</code><br/><img src='//mars3d.cn/api/cesium/Images/CumulusCloud.brightness1.png' width='250' height='158' /></td>
     * <td align='center'><code>cloud.brightness = 0.6;</code><br/><img src='//mars3d.cn/api/cesium/Images/CumulusCloud.brightness0.6.png' width='250' height='158' /></td>
     * <td align='center'><code>cloud.brightness = 0.0;</code><br/><img src='//mars3d.cn/api/cesium/Images/CumulusCloud.brightness0.png' width='250' height='158' /></td>
     * </tr></table>
     * </div>
     */
    brightness: number;
    /**
     * 是否可以调整透明度
     */
    readonly hasOpacity: boolean;
}

declare namespace ConeTrackPrimitive {
    /**
     * 圆锥追踪体 Primitive图元矢量对象 支持的样式信息
     * @property [angle] - 圆锥追踪体张角（角度值，取值范围 0.01-89.99）
     * @property [bottomRadius = 100] - 不指定angle时，也可以直接指定圆锥底部半径（单位：米）
     * @property [length = 100] - 圆锥追踪体长度值（单位：米），没有指定targetPosition时有效
     * @property [slices = 128] - 圆柱体周长周围的边数。
     * @property [heading = 0] - 方向角 （度数值，0-360度），没有指定targetPosition时有效
     * @property [pitch = 0] - 俯仰角（度数值，0-360度），没有指定targetPosition时有效
     * @property [roll = 0] - 翻滚角（度数值，0-360度），没有指定targetPosition时有效
     * @property [fill = true] - 是否填充
     * @property [color = "#00FF00"] - 颜色
     * @property [opacity = 1.0] - 透明度, 取值范围：0.0-1.0
     * @property [materialType = "Color"] - 填充材质类型 ,可选项：{@link MaterialType}
     * @property [materialOptions] - materialType对应的{@link MaterialType}中材质参数
     * @property [material] - 指定用于填充的材质，指定material后`materialType`和`materialOptions`将被覆盖。
     * @property [outline = false] - 是否边框
     * @property [outlineColor = "#ffffff"] - 边框颜色
     * @property [outlineOpacity = 0.6] - 边框透明度
     * @property [materialSupport = MaterialAppearance.MaterialSupport.TEXTURED] - 将被支持的材质类型。
     * @property [flat = false] - 当true时，在片段着色器中使用平面着色，不考虑光照。
     * @property [faceForward = !closed] - 当true时，片段着色器根据需要翻转表面的法线，以确保法线面向查看器以避免黑点。
     * @property [translucent = true] - 当true时，几何图形将显示为半透明，因此{@link Cesium.PerInstanceColorAppearance#renderState}将启用alpha混合。
     * @property [closed = false] - 当true时，几何图形将被关闭，因此{@link Cesium.PerInstanceColorAppearance#renderState}启用了背面剔除。
     * @property [vertexShaderSource] - 可选的GLSL顶点着色器源，覆盖默认的顶点着色器。
     * @property [fragmentShaderSource] - 可选的GLSL片段着色器源覆盖默认的片段着色器。
     * @property [renderState] - 可选渲染状态，以覆盖默认渲染状态。
     * @property [highlight] - 鼠标移入或单击(type:'click')后的对应高亮的部分样式，创建Graphic后也可以openHighlight、closeHighlight方法来手动调用
     * @property [label] - 支持附带文字的显示
     */
    type StyleOptions = any | {
        angle?: number;
        bottomRadius?: number;
        length?: number;
        slices?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        fill?: boolean;
        color?: string | Cesium.Color;
        opacity?: number;
        materialType?: string;
        materialOptions?: any;
        material?: Cesium.Material;
        outline?: boolean;
        outlineColor?: string | Cesium.Color;
        outlineOpacity?: number;
        materialSupport?: Cesium.MaterialAppearance.MaterialSupportType;
        flat?: boolean;
        faceForward?: boolean;
        translucent?: boolean;
        closed?: boolean;
        vertexShaderSource?: string;
        fragmentShaderSource?: string;
        renderState?: any;
        highlight?: CylinderPrimitive.StyleOptions | any;
        label?: LabelEntity.StyleOptions | any;
    };
}

/**
 * 圆锥追踪体 Primitive图元矢量对象
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置(不支持动态属性)
 * @param [options.targetPosition] - 追踪的目标位置(不支持动态属性)
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.depthFailAppearance] - 当深度测试失败时，用于为该图元着色的外观。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class ConeTrackPrimitive extends CylinderPrimitive {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | number[];
        targetPosition?: LngLatPoint | Cesium.Cartesian3 | number[];
        style: ConeTrackPrimitive.StyleOptions | any;
        attr?: any;
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        depthFailAppearance?: Cesium.Appearance;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 追踪的目标位置(确定了方向和距离)
     */
    targetPosition: Cesium.Cartesian3 | LngLatPoint;
    /**
     * 追踪的目标位置
     */
    readonly targetPoint: LngLatPoint;
    /**
     * 夹角，半场角度，取值范围 0.01-89.99
     */
    angle: number;
    /**
     * 是否可以编辑
     */
    hasEdit: boolean;
}

declare namespace CorridorPrimitive {
    /**
     * 走廊  Primitive图元 支持的样式信息
     * @property [width = 100] - 走廊宽度，指定走廊边缘之间的距离。
     * @property [cornerType] - 指定边角的样式。
     * @property [materialType = "Color"] - 填充材质类型 ,可选项：{@link MaterialType}
     * @property [materialOptions] - materialType对应的{@link MaterialType}中材质参数
     * @property [material] - 指定用于填充的材质，指定material后`materialType`和`materialOptions`将被覆盖。
     * @property [color = "#3388ff"] - 颜色
     * @property [opacity = 1.0] - 透明度，取值范围：0.0-1.0
     * @property [outline = false] - 是否边框
     * @property [outlineColor = "#ffffff"] - 边框颜色
     * @property [outlineOpacity = 0.6] - 边框透明度
     * @property [height = 0] - 高程，圆相对于椭球面的高度。
     * @property [diffHeight = 100] - 高度差（走廊本身的高度），与extrudedHeight二选一。
     * @property [extrudedHeight] - 指定走廊挤压面相对于椭球面的高度。
     * @property [hasShadows = false] - 是否阴影
     * @property [shadows = Cesium.ShadowMode.DISABLED] - 指定对象是投射还是接收来自光源的阴影。
     * @property [clampToGround = false] - 是否贴地
     * @property [classificationType = Cesium.ClassificationType.BOTH] - 指定贴地时的覆盖类型，是只对地形、3dtiles 或 两者同时。
     * @property [classification = false] - 是否为ClassificationPrimitive ，分类基元 表示Scene要高亮显示的包围几何的体积
     *
     *
     * //以下是 这是MaterialAppearance的参数
     * @property [flat = false] - 当true时，在片段着色器中使用平面着色，不考虑光照。
     * @property [faceForward = !closed] - 当true时，片段着色器根据需要翻转表面的法线，以确保法线面向查看器以避免黑点。
     * @property [translucent = true] - 当true时，几何图形将显示为半透明，因此{@link Cesium.PerInstanceColorAppearance#renderState}将启用alpha混合。
     * @property [closed = false] - 当true时，几何图形将被关闭，因此{@link Cesium.PerInstanceColorAppearance#renderState}启用了背面剔除。
     * @property [vertexShaderSource] - 可选的GLSL顶点着色器源，覆盖默认的顶点着色器。
     * @property [fragmentShaderSource] - 可选的GLSL片段着色器源覆盖默认的片段着色器。
     * @property [renderState] - 可选渲染状态，以覆盖默认渲染状态。
     * @property [setHeight] - 指定坐标高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [addHeight] - 在现有坐标基础上增加的高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [label] - 支持附带文字的显示
     */
    type StyleOptions = any | {
        width?: number;
        cornerType?: string | Cesium.CornerType;
        materialType?: string;
        materialOptions?: any;
        material?: Cesium.Material;
        color?: string | Cesium.Color;
        opacity?: number;
        outline?: boolean;
        outlineColor?: string | Cesium.Color;
        outlineOpacity?: number;
        height?: number;
        diffHeight?: number;
        extrudedHeight?: number;
        hasShadows?: boolean;
        shadows?: Cesium.ShadowMode;
        clampToGround?: boolean;
        classificationType?: Cesium.ClassificationType;
        classification?: boolean;
        flat?: boolean;
        faceForward?: boolean;
        translucent?: boolean;
        closed?: boolean;
        vertexShaderSource?: string;
        fragmentShaderSource?: string;
        renderState?: any;
        setHeight?: number | string;
        addHeight?: number | string;
        label?: LabelPrimitive.StyleOptions | any;
    };
}

/**
 * 走廊  Primitive图元 矢量对象
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.depthFailAppearance] - 当深度测试失败时，用于为该图元着色的外观。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class CorridorPrimitive extends BasePolyPrimitive {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | any[];
        style: CorridorPrimitive.StyleOptions | any;
        attr?: any;
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        depthFailAppearance?: Cesium.Appearance;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

declare namespace CylinderPrimitive {
    /**
     * 圆锥 支持的样式信息
     * @property [topRadius = 0] - 顶部半径，指定圆柱体顶部的半径，当为0时即为圆锥。
     * @property [bottomRadius = 100] - 底部半径，指定圆柱体底部半径。
     * @property [length = 100] - 高度，柱面长度。
     * @property [slices = 128] - 圆柱体周长周围的边数。
     * @property [heading = 0] - 方向角 （度数值，0-360度）
     * @property [pitch = 0] - 俯仰角（度数值，0-360度）
     * @property [roll = 0] - 翻滚角（度数值，0-360度）
     * @property [color = "#00FF00"] - 颜色
     * @property [opacity = 1.0] - 透明度, 取值范围：0.0-1.0
     * @property [materialType = "Color"] - 填充材质类型 ,可选项：{@link MaterialType}
     * @property [materialOptions] - materialType对应的{@link MaterialType}中材质参数
     * @property [material] - 指定用于填充的材质，指定material后`materialType`和`materialOptions`将被覆盖。
     * @property [outline = false] - 是否边框
     * @property [outlineColor = "#ffffff"] - 边框颜色
     * @property [outlineOpacity = 0.6] - 边框透明度
     * @property [materialSupport = MaterialAppearance.MaterialSupport.TEXTURED] - 将被支持的材质类型。
     * @property [flat = false] - 当true时，在片段着色器中使用平面着色，不考虑光照。
     * @property [faceForward = !closed] - 当true时，片段着色器根据需要翻转表面的法线，以确保法线面向查看器以避免黑点。
     * @property [translucent = true] - 当true时，几何图形将显示为半透明，因此{@link Cesium.PerInstanceColorAppearance#renderState}将启用alpha混合。
     * @property [closed = true] - 当true时，几何图形将被关闭，因此{@link Cesium.PerInstanceColorAppearance#renderState}启用了背面剔除。
     * @property [vertexShaderSource] - 可选的GLSL顶点着色器源，覆盖默认的顶点着色器。
     * @property [fragmentShaderSource] - 可选的GLSL片段着色器源覆盖默认的片段着色器。
     * @property [renderState] - 可选渲染状态，以覆盖默认渲染状态。
     * @property [highlight] - 鼠标移入或单击(type:'click')后的对应高亮的部分样式，创建Graphic后也可以openHighlight、closeHighlight方法来手动调用
     * @property [label] - 支持附带文字的显示
     */
    type StyleOptions = any | {
        topRadius?: number;
        bottomRadius?: number;
        length?: number;
        slices?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        color?: string | Cesium.Color;
        opacity?: number;
        materialType?: string;
        materialOptions?: any;
        material?: Cesium.Material;
        outline?: boolean;
        outlineColor?: string | Cesium.Color;
        outlineOpacity?: number;
        materialSupport?: Cesium.MaterialAppearance.MaterialSupportType;
        flat?: boolean;
        faceForward?: boolean;
        translucent?: boolean;
        closed?: boolean;
        vertexShaderSource?: string;
        fragmentShaderSource?: string;
        renderState?: any;
        highlight?: CylinderPrimitive.StyleOptions | any;
        label?: LabelEntity.StyleOptions | any;
    };
}

/**
 * 圆锥 Primitive图元矢量对象
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param [options.modelMatrix] - 将图元(所有几何实例)从模型转换为世界坐标的4x4变换矩阵,可以替代position。
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.depthFailAppearance] - 当深度测试失败时，用于为该图元着色的外观。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class CylinderPrimitive extends BasePointPrimitive {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | number[];
        modelMatrix?: Cesium.Matrix4;
        style: CylinderPrimitive.StyleOptions | any;
        attr?: any;
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        depthFailAppearance?: Cesium.Appearance;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

declare namespace DiffuseWall {
    /**
     * 立体面(或圆)散射效果  支持的样式信息
     * @property [diffHeight = 100] - 墙高
     * @property [color = "#3388ff"] - 颜色
     * @property [opacity = 1.0] - 透明度，取值范围：0.0-1.0
     * @property [speed = 10] - 扩散的速度，值越大越快
     * @property [maxScale = 1] - 扩散的最大比例
     * @property [shadows = Cesium.ShadowMode.DISABLED] - 指定对象是投射还是接收来自光源的阴影。
     */
    type StyleOptions = any | {
        diffHeight?: number;
        color?: string | Cesium.Color;
        opacity?: number;
        speed?: number;
        maxScale?: number;
        shadows?: Cesium.ShadowMode;
    };
}

/**
 * 立体面(或圆)散射效果 矢量对象
 * @param options - 参数对象，包括以下：
 * @param [options.positions] - 坐标位置数组（多边形时）
 * @param [options.position] - 坐标位置数组（圆形时），与positions二选一
 * @param [options.style] - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class DiffuseWall extends BasePolyPrimitive {
    constructor(options: {
        positions?: LngLatPoint[] | Cesium.Cartesian3[] | any[];
        position?: LngLatPoint | Cesium.Cartesian3 | number[];
        style?: DiffuseWall.StyleOptions | any;
        attr?: any;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 圆形时，位置坐标 （笛卡尔坐标）, 赋值时可以传入LatLngPoint对象
     */
    position: Cesium.Cartesian3 | LngLatPoint;
    /**
     * 圆形时，半径（单位：米）
     */
    radius: number;
    /**
     * 中心点坐标 （笛卡尔坐标）
     */
    readonly center: Cesium.Cartesian3;
    /**
     * 位置坐标数组 （笛卡尔坐标）, 赋值时可以传入LatLngPoint数组对象
     */
    positions: Cesium.Cartesian3[];
    /**
     * 矢量数据对应的 Cesium内部对象 (不同子类中实现)
     */
    readonly czmObject: Cesium.Entity | Cesium.Primitive | Cesium.GroundPrimitive | Cesium.ClassificationPrimitive | any;
}

declare namespace DynamicRiver {
    /**
     * 动态河流 支持的样式信息
     * @property image - 图片材质URL
     * @property [opacity = 0.5] - 透明度，取值范围：0.0-1.0
     * @property [width = 20] - 河流宽度。(单位：米)
     * @property [height = 0] - 海拔高度，相对于椭球面的高度。(单位：米)
     * @property [speed = 10] - 流动速度，值越大越快
     * @property [axisY = false] - 是否uv交换（图片横竖切换）
     * @property [move = true] - 是否开启流动效果
     * @property [direction = true] - 设置流动方向
     */
    type StyleOptions = any | {
        image: string;
        opacity?: number;
        width?: number;
        height?: number;
        speed?: number;
        axisY?: boolean;
        move?: boolean;
        direction?: boolean;
    };
}

/**
 * 动态河流 矢量对象
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class DynamicRiver extends BasePolyPrimitive {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | any[];
        style: DynamicRiver.StyleOptions | any;
        attr?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 图片材质URL
     */
    image: string;
    /**
     * 宽度 (单位：米)
     */
    width: number;
    /**
     * 海拔高度，相对于椭球面的高度。(单位：米)
     */
    height: number;
    /**
     * 透明度 0.0-1.0
     */
    opacity: number;
    /**
     * 设置流动方向
     */
    direction: boolean;
    /**
     * 流动速度
     */
    speed: number;
    /**
     * 是否开启流动效果
     */
    move: boolean;
    /**
     * 是否uv交换（图片横竖切换）
     */
    axisY: boolean;
    /**
     * 执行升高或降低高度的动画效果
     * @param height - 升高或降低的相对高度（单位：米），负数代表降低
     * @param time - 动画时长（单位：秒）
     * @returns 无
     */
    offsetHeight(height: number, time: number): void;
    /**
     * 设置透明度
     * @param value - 透明度
     * @returns 无
     */
    setOpacity(value: number): void;
    /**
     * 矢量数据对应的 Cesium内部对象 (不同子类中实现)
     */
    readonly czmObject: Cesium.Entity | Cesium.Primitive | Cesium.GroundPrimitive | Cesium.ClassificationPrimitive | any;
}

declare namespace EllipsoidPrimitive {
    /**
     * 球体 支持的样式信息
     * @property [radii] - 指定椭球半径。
     * @property [radii_x = 100] - X半径
     * @property [radii_y = 100] - Y半径
     * @property [radii_z = 100] - Z半径
     * @property [innerRadii] - 指定椭球的内半径。
     * @property [innerRadii_x = 0] - 内部X半径
     * @property [innerRadii_y = 0] - 内部Y半径
     * @property [innerRadii_z = 0] - 内部Z半径
     * @property [minimumClock = 0] - 最小时钟角度（弧度值）
     * @property [minimumClockDegree = 0] - 最小时钟角度（度数值，0-360度），与minimumClock二选一
     * @property [maximumClock = 360] - 最大时钟角度（弧度值）
     * @property [maximumClockDegree = 360] - 最大时钟角度（度数值，0-360度），与maximumClock二选一
     * @property [minimumCone = 0] - 最小锥角（弧度值）
     * @property [minimumConeDegree = 0] - 最小锥角（度数值，0-360度），与minimumCone二选一
     * @property [maximumCone = 180] - 最大圆锥角（弧度值）
     * @property [maximumConeDegree = 180] - 最大圆锥角（度数值，0-360度），与maximumCone二选一
     * @property [stackPartitions = 64] - 指定竖向划分数量
     * @property [slicePartitions = 64] - 指定横向划分数量
     * @property [color = "#00FF00"] - 颜色
     * @property [opacity = 1.0] - 透明度, 取值范围：0.0-1.0
     * @property [materialType = "Color"] - 填充材质类型 ,可选项：{@link MaterialType}
     * @property [materialOptions] - materialType对应的{@link MaterialType}中材质参数
     * @property [material] - 指定用于填充的材质，指定material后`materialType`和`materialOptions`将被覆盖。
     * @property [materialSupport = MaterialAppearance.MaterialSupport.TEXTURED] - 将被支持的材质类型。
     * @property [outline = false] - 是否边框
     * @property [outlineColor = "#ffffff"] - 边框颜色
     * @property [outlineOpacity = 0.6] - 边框透明度
     *
     * //以下是 这是MaterialAppearance的参数
     * @property [flat = false] - 当true时，在片段着色器中使用平面着色，不考虑光照。
     * @property [faceForward = !closed] - 当true时，片段着色器根据需要翻转表面的法线，以确保法线面向查看器以避免黑点。
     * @property [translucent = true] - 当true时，几何图形将显示为半透明，因此{@link Cesium.PerInstanceColorAppearance#renderState}将启用alpha混合。
     * @property [closed = true] - 当true时，几何图形将被关闭，因此{@link Cesium.PerInstanceColorAppearance#renderState}启用了背面剔除。
     * @property [vertexShaderSource] - 可选的GLSL顶点着色器源，覆盖默认的顶点着色器。
     * @property [fragmentShaderSource] - 可选的GLSL片段着色器源覆盖默认的片段着色器。
     * @property [renderState] - 可选渲染状态，以覆盖默认渲染状态。
     * @property [highlight] - 鼠标移入或单击(type:'click')后的对应高亮的部分样式，创建Graphic后也可以openHighlight、closeHighlight方法来手动调用
     * @property [label] - 支持附带文字的显示
     */
    type StyleOptions = any | {
        radii?: Cesium.Cartesian3;
        radii_x?: number;
        radii_y?: number;
        radii_z?: number;
        innerRadii?: Cesium.Cartesian3;
        innerRadii_x?: number;
        innerRadii_y?: number;
        innerRadii_z?: number;
        minimumClock?: number;
        minimumClockDegree?: number;
        maximumClock?: number;
        maximumClockDegree?: number;
        minimumCone?: number;
        minimumConeDegree?: number;
        maximumCone?: number;
        maximumConeDegree?: number;
        stackPartitions?: number;
        slicePartitions?: number;
        color?: string | Cesium.Color;
        opacity?: number;
        materialType?: string;
        materialOptions?: any;
        material?: Cesium.Material;
        materialSupport?: Cesium.MaterialAppearance.MaterialSupportType;
        outline?: boolean;
        outlineColor?: string | Cesium.Color;
        outlineOpacity?: number;
        flat?: boolean;
        faceForward?: boolean;
        translucent?: boolean;
        closed?: boolean;
        vertexShaderSource?: string;
        fragmentShaderSource?: string;
        renderState?: any;
        highlight?: EllipsoidPrimitive.StyleOptions | any;
        label?: LabelEntity.StyleOptions | any;
    };
}

/**
 * 球体 Primitive图元矢量对象
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param [options.modelMatrix] - 将图元(所有几何实例)从模型转换为世界坐标的4x4变换矩阵,可以替代position。
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.depthFailAppearance] - 当深度测试失败时，用于为该图元着色的外观。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class EllipsoidPrimitive extends BasePointPrimitive {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | number[];
        modelMatrix?: Cesium.Matrix4;
        style: EllipsoidPrimitive.StyleOptions | any;
        attr?: any;
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        depthFailAppearance?: Cesium.Appearance;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

declare namespace FrustumPrimitive {
    /**
     * 四棱锥体 支持的样式信息
     * @property [angle] - 四棱锥体张角（角度值，取值范围 0.01-89.99）
     * @property [angle2 = angle] - 四棱锥体张角2，（角度值，取值范围 0.01-89.99）
     * @property [length = 100] - 长度值（单位：米），没有指定targetPosition时有效
     * @property [heading = 0] - 方向角 （度数值，0-360度），没有指定targetPosition时有效
     * @property [pitch = 0] - 俯仰角（度数值，0-360度），没有指定targetPosition时有效
     * @property [roll = 0] - 翻滚角（度数值，0-360度），没有指定targetPosition时有效
     * @property [materialType = "Color"] - 填充材质类型 ,可选项：{@link MaterialType}
     * @property [materialOptions] - materialType对应的{@link MaterialType}中材质参数
     * @property [material] - 指定用于填充的材质，指定material后`materialType`和`materialOptions`将被覆盖。
     * @property [color = "#00FF00"] - 颜色
     * @property [opacity = 1.0] - 透明度, 取值范围：0.0-1.0
     * @property [outline = false] - 是否边框
     * @property [outlineColor = "#ffffff"] - 边框颜色
     * @property [outlineOpacity = 0.6] - 边框透明度
     * @property [materialSupport = MaterialAppearance.MaterialSupport.TEXTURED] - 将被支持的材质类型。
     * @property [flat = false] - 当true时，在片段着色器中使用平面着色，不考虑光照。
     * @property [faceForward = !closed] - 当true时，片段着色器根据需要翻转表面的法线，以确保法线面向查看器以避免黑点。
     * @property [translucent = true] - 当true时，几何图形将显示为半透明，因此{@link Cesium.PerInstanceColorAppearance#renderState}将启用alpha混合。
     * @property [closed = true] - 当true时，几何图形将被关闭，因此{@link Cesium.PerInstanceColorAppearance#renderState}启用了背面剔除。
     * @property [vertexShaderSource] - 可选的GLSL顶点着色器源，覆盖默认的顶点着色器。
     * @property [fragmentShaderSource] - 可选的GLSL片段着色器源覆盖默认的片段着色器。
     * @property [renderState] - 可选渲染状态，以覆盖默认渲染状态。
     * @property [highlight] - 鼠标移入或单击(type:'click')后的对应高亮的部分样式，创建Graphic后也可以openHighlight、closeHighlight方法来手动调用
     * @property [label] - 支持附带文字的显示
     */
    type StyleOptions = any | {
        angle?: number;
        angle2?: number;
        length?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        materialType?: string;
        materialOptions?: any;
        material?: Cesium.Material;
        color?: string | Cesium.Color;
        opacity?: number;
        outline?: boolean;
        outlineColor?: string | Cesium.Color;
        outlineOpacity?: number;
        materialSupport?: Cesium.MaterialAppearance.MaterialSupportType;
        flat?: boolean;
        faceForward?: boolean;
        translucent?: boolean;
        closed?: boolean;
        vertexShaderSource?: string;
        fragmentShaderSource?: string;
        renderState?: any;
        highlight?: FrustumPrimitive.StyleOptions | any;
        label?: LabelEntity.StyleOptions | any;
    };
}

/**
 * 四棱锥体  Primitive图元矢量对象
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param [options.targetPosition] - 追踪的目标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.depthFailAppearance] - 当深度测试失败时，用于为该图元着色的外观。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class FrustumPrimitive extends BasePointPrimitive {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | number[];
        targetPosition?: LngLatPoint | Cesium.Cartesian3 | number[];
        style: FrustumPrimitive.StyleOptions | any;
        attr?: any;
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        depthFailAppearance?: Cesium.Appearance;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 圆锥追踪的目标(确定了方向和距离)
     */
    targetPosition: Cesium.Cartesian3 | LngLatPoint;
    /**
     * 圆锥追踪的目标位置坐标
     */
    readonly targetPoint: LngLatPoint;
    /**
     * 夹角，半场角度，取值范围 0.01-89.99
     */
    angle: number;
    /**
     * 夹角2，半场角度，取值范围 0.01-89.99
     */
    angle2: number;
    /**
     * 求当前位置射线与地球相交点
     */
    readonly groundPosition: Cesium.Cartesian3;
    /**
     * 获取射线向地面与地球的4个交点坐标
     * @param [time = Cesium.JulianDate.now()] - 指定的时间值
     * @returns 坐标数组
     */
    getRayEarthPositions(time?: Cesium.JulianDate): Cesium.Cartesian3[];
    /**
     * 四周方向角，0-360度角度值
     * <br/>提示：父类属性，非所有子类都具备
     */
    heading: number;
    /**
     * 俯仰角，上下摇摆的角度，0-360度角度值
     * <br/>提示：父类属性，非所有子类都具备
     */
    pitch: number;
    /**
     * 滚转角，左右摆动的角度，0-360度角度值
     * <br/>提示：父类属性，非所有子类都具备
     */
    roll: number;
}

declare namespace LabelPrimitive {
    /**
     * 文字 支持的样式信息（与LabelEntity相同）
     * @property [所有] - 与LabelEntity相同
     */
    type StyleOptions = any | {
        所有?: LabelEntity.StyleOptions | any;
    };
}

/**
 * 文字 Primitive矢量数据
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.forwardExtrapolationType = Cesium.ExtrapolationType.HOLD] - 当使用addDynamicPosition设置为动画轨迹位置时，在任何可用坐标之后一次请求值时要执行的推断类型，默认为最后一个坐标位置。
 * @param [options.backwardExtrapolationType = Cesium.ExtrapolationType.HOLD] - 当使用addDynamicPosition设置为动画轨迹位置时， 在任何可用坐标之前一次请求值时要执行的推断类型，默认为第一个坐标位置。
 * @param [options.clampToTileset] - 当使用addDynamicPosition设置为动画轨迹位置时，是否进行贴模型。
 * @param [options.frameRateHeight = 30] - 当使用addDynamicPosition设置为动画轨迹位置时，并clampToTileset：true时，多少帧计算一次贴模型高度
 * @param [options.objectsToExclude] - 当使用addDynamicPosition设置为动画轨迹位置时，并clampToTileset：true时，排除的不进行贴模型计算的模型对象，可以是： primitives, entities, 或 3D Tiles features
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class LabelPrimitive extends BasePointPrimitive {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | number[];
        style: LabelPrimitive.StyleOptions | any;
        attr?: any;
        forwardExtrapolationType?: Cesium.ExtrapolationType;
        backwardExtrapolationType?: Cesium.ExtrapolationType;
        clampToTileset?: boolean;
        frameRateHeight?: number;
        objectsToExclude?: any;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 当加载primitive数据的内部Cesium容器
     */
    readonly primitiveCollection: Cesium.LabelCollection;
    /**
     * 文本内容
     */
    readonly text: string;
    /**
     * 设置透明度
     * @param value - 透明度
     * @returns 无
     */
    setOpacity(value: number): void;
}

declare namespace LightCone {
    /**
     * 光锥体 支持的样式信息
     * @property [color = '#00ffff'] - 颜色
     * @property [radius = 100] - 锥体底部半径。(单位：米)
     * @property [height = 1000] - 锥体高度，相对于椭球面的高度。(单位：米)
     */
    type StyleOptions = any | {
        color?: string | Cesium.Color;
        radius?: number;
        height?: number;
    };
}

/**
 * 光锥体
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class LightCone extends BasePointPrimitive {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | number[];
        style: LightCone.StyleOptions | any;
        attr?: any;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 颜色
     */
    color: Cesium.Color;
    /**
     * 设置透明度
     * @param value - 透明度
     * @returns 无
     */
    setOpacity(value: number): void;
    /**
     * 矢量数据对应的 Cesium内部对象 (不同子类中实现)
     */
    readonly czmObject: Cesium.Entity | Cesium.Primitive | Cesium.GroundPrimitive | Cesium.ClassificationPrimitive | any;
}

declare namespace ModelPrimitive {
    /**
     * gltf小模型 支持的样式信息
     * @property [url] - glTF模型的URI的字符串或资源属性。
     * @property [scale = 1] - 整体缩放比例
     * @property [scaleX = 1] - X轴方向缩放比例
     * @property [scaleY = 1] - Y轴方向缩放比例
     * @property [scaleZ = 1] - Z轴方向缩放比例
     * @property [heading = 0] - 方向角 （度数值，0-360度），优先级高于orientation
     * @property [pitch = 0] - 俯仰角（度数值，0-360度），优先级高于orientation
     * @property [roll = 0] - 翻滚角（度数值，0-360度），优先级高于orientation
     * @property [mergeOrientation = false] - 当存在orientation时（如addDynamicPosition等），设置为true时，可以在orientation基础的方式值上叠加设置是heading、pitch、roll值，比如用于设置模型不是标准的方向时的处理
     * @property [minimumPixelSize = 0.0] - 指定模型的近似最小像素大小，而不考虑缩放。
     * @property [maximumScale] - 模型的最大比例尺寸。minimumPixelSize的上限。
     * @property [fill = false] - 是否填充，指定与模型渲染颜色混合
     * @property [color = "#3388ff"] - 颜色
     * @property [opacity = 1.0] - 透明度，取值范围：0.0-1.0
     * @property [colorBlendMode = ColorBlendMode.HIGHLIGHT] - 指定颜色如何与模型混合。
     * @property [colorBlendAmount = 0.5] - 当colorBlendMode为MIX时指定颜色强度的数字属性。0.0的值表示模型渲染的颜色，1.0的值表示纯色，任何介于两者之间的值表示两者的混合。
     * @property [silhouette = false] - 是否轮廓
     * @property [silhouetteColor = "#ff0000"] - 轮廓颜色
     * @property [silhouetteSize = 2] - 轮廓宽度
     * @property [silhouetteAlpha = 0.8] - 轮廓透明度
     * @property [distanceDisplayCondition = false] - 是否按视距显示 或 指定此框将显示在与摄像机的多大距离。
     * @property [distanceDisplayCondition_near = 0] - 最小距离
     * @property [distanceDisplayCondition_far = 100000] - 最大距离
     * @property [distanceDisplayPoint] - 当视角距离超过一定距离后(distanceDisplayCondition_far定义的) 后显示为 像素点 对象的样式，仅在distanceDisplayCondition设置时有效。
     * @property [distanceDisplayBillboard] - 当视角距离超过一定距离后(distanceDisplayCondition_far定义的) 后显示为 图标 对象的样式，仅在distanceDisplayCondition设置时有效。
     * @property [customShader] - 自定义shader效果
     * @property [hasShadows = true] - 是否阴影
     * @property [shadows = ShadowMode.ENABLED] - 指定模型是投射还是接收来自光源的阴影。
     * @property [clampToGround = false] - 是否贴地
     * @property [heightReference = Cesium.HeightReference.NONE] - 指定高度相对于什么的属性。
     * @property [incrementallyLoadTextures = true] - 确定模型加载后纹理是否会继续流进来。
     * @property [runAnimations = true] - 指定模型中指定的glTF动画是否应该启动。
     * @property [clampAnimations = true] - 指定在没有关键帧的情况下，glTF动画是否应该保持最后一个姿势。
     * @property [lightColor] - 在为模型着色时指定光的颜色的属性。当undefined场景的浅色被使用代替。
     * @property [nodeTransformations] - 一个对象，其中键是节点的名称，值是{@link TranslationRotationScale}属性，描述要应用到该节点的转换。该转换是在节点的现有转换之后(如glTF中指定的那样)应用的，并且不会替换节点的现有转换。
     * @property [articulations] - An object, where keys are composed of an articulation name, a single space, and a stage name, and the values are numeric properties.
     * @property [clippingPlanes] - 用于裁剪模型的Plane平面集合
     * @property [allowPicking = true] - 当true时，每个glTF和Primitive都可以用{@link Cesium.Scene#pick}来拾取。
     * @property [asynchronous = true] - 确定模型WebGL资源创建是否将分散在几个帧或块上，直到所有glTF文件加载完成。
     * @property [dequantizeInShader = true] - 确定一个{@link https://github.com/google/draco|Draco}编码的模型是否在GPU上被去量化。这减少了编码模型的总内存使用量。
     * @property [backFaceCulling = true] - 是否剔除面向背面的几何图形。当为真时，背面剔除是由材料的双面属性决定的;当为false时，禁用背面剔除。如果{@link Model#color}是半透明的，或者{@link Model#silhouette}大于0.0，则背面不会被剔除。
     * @property [debugShowBoundingVolume = false] - 仅供调试。查看模型的包围边界球。
     * @property [debugWireframe = false] - 仅供调试。查看模型的三角网线框图。
     *
     * //以下是 以下是 模型动画相关
     * @property [startTime] - 场景时间开始播放动画。当undefined时，动画从下一帧开始。
     * @property [delay = 0.0] - 从startTime开始播放的延迟，以秒为单位。
     * @property [stopTime] - 场景时间停止播放动画。当这是undefined，动画播放它的整个持续时间。
     * @property [removeOnStop = false] - 当true时，动画在停止播放后被删除。
     * @property [multiplier = 1.0] - 大于1.0的值增加动画播放的速度相对于场景时钟的速度;小于1.0会降低速度。
     * @property [reverse = false] - 当true时，动画会反向播放。
     * @property [loop = Cesium.ModelAnimationLoop.REPEAT] - 决定动画是否循环以及如何循环。
     * @property [setHeight] - 指定坐标高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [addHeight] - 在现有坐标基础上增加的高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [highlight] - 鼠标移入或单击(type:'click')后的对应高亮的部分样式，创建Graphic后也可以openHighlight、closeHighlight方法来手动调用
     * @property [label] - 支持附带文字的显示
     */
    type StyleOptions = any | {
        url?: string | Cesium.Resource;
        scale?: number;
        scaleX?: number;
        scaleY?: number;
        scaleZ?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        mergeOrientation?: boolean;
        minimumPixelSize?: number;
        maximumScale?: number;
        fill?: boolean;
        color?: string | Cesium.Color;
        opacity?: number;
        colorBlendMode?: Cesium.ColorBlendMode;
        colorBlendAmount?: number;
        silhouette?: boolean;
        silhouetteColor?: string | Cesium.Color;
        silhouetteSize?: number;
        silhouetteAlpha?: number;
        distanceDisplayCondition?: boolean | Cesium.DistanceDisplayCondition;
        distanceDisplayCondition_near?: number;
        distanceDisplayCondition_far?: number;
        distanceDisplayPoint?: PointEntity.StyleOptions | any;
        distanceDisplayBillboard?: BillboardEntity.StyleOptions | any;
        customShader?: Cesium.CustomShader;
        hasShadows?: boolean;
        shadows?: Cesium.ShadowMode;
        clampToGround?: boolean;
        heightReference?: Cesium.HeightReference;
        incrementallyLoadTextures?: boolean;
        runAnimations?: boolean;
        clampAnimations?: boolean;
        lightColor?: Cesium.Color;
        nodeTransformations?: Cesium.PropertyBag | {
            [key: string]: Cesium.TranslationRotationScale;
        };
        articulations?: Cesium.PropertyBag | {
            [key: string]: number;
        };
        clippingPlanes?: Cesium.ClippingPlaneCollection;
        allowPicking?: boolean;
        asynchronous?: boolean;
        dequantizeInShader?: boolean;
        backFaceCulling?: boolean;
        debugShowBoundingVolume?: boolean;
        debugWireframe?: boolean;
        startTime?: Cesium.JulianDate;
        delay?: number;
        stopTime?: Cesium.JulianDate;
        removeOnStop?: boolean;
        multiplier?: number;
        reverse?: boolean;
        loop?: Cesium.ModelAnimationLoop;
        setHeight?: number | string;
        addHeight?: number | string;
        highlight?: ModelPrimitive.StyleOptions | any;
        label?: LabelEntity.StyleOptions | any;
    };
}

/**
 * gltf小模型 Primitive图元矢量对象
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param [options.orientation] - 实体方向，仅position是回调属性时有效
 * @param [options.modelMatrix] - 将图元(所有几何实例)从模型转换为世界坐标的4x4变换矩阵,可以替代position。
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.frameRate = 1] - 当postion为CallbackProperty时，多少帧获取一次数据。用于控制效率，如果卡顿就把该数值调大一些。
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.maxCacheCount = 50] - 当使用addDynamicPosition设置为动画轨迹位置时，保留的坐标点数量，传-1时不限制
 * @param [options.forwardExtrapolationType = Cesium.ExtrapolationType.HOLD] - 当使用addDynamicPosition设置为动画轨迹位置时，在任何可用坐标之后一次请求值时要执行的推断类型，默认为最后一个坐标位置。
 * @param [options.backwardExtrapolationType = Cesium.ExtrapolationType.HOLD] - 当使用addDynamicPosition设置为动画轨迹位置时， 在任何可用坐标之前一次请求值时要执行的推断类型，默认为第一个坐标位置。
 * @param [options.clampToTileset] - 当使用addDynamicPosition设置为动画轨迹位置时，是否进行贴模型。
 * @param [options.frameRateHeight = 30] - 当使用addDynamicPosition设置为动画轨迹位置时，并clampToTileset：true时，多少帧计算一次贴模型高度
 * @param [options.objectsToExclude] - 当使用addDynamicPosition设置为动画轨迹位置时，并clampToTileset：true时，排除的不进行贴模型计算的模型对象，可以是： primitives, entities, 或 3D Tiles features
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class ModelPrimitive extends BasePointPrimitive {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | number[] | Cesium.PositionProperty;
        orientation?: Cesium.Property;
        modelMatrix?: Cesium.Matrix4;
        style: ModelPrimitive.StyleOptions | any;
        attr?: any;
        frameRate?: number;
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        maxCacheCount?: number;
        forwardExtrapolationType?: Cesium.ExtrapolationType;
        backwardExtrapolationType?: Cesium.ExtrapolationType;
        clampToTileset?: boolean;
        frameRateHeight?: number;
        objectsToExclude?: any;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 模型整体的缩放比例
     */
    scale: number;
    /**
     * X轴方向缩放比例
     */
    scaleX: number;
    /**
     * Y轴方向缩放比例
     */
    scaleY: number;
    /**
     * Z轴方向缩放比例
     */
    scaleZ: number;
    /**
     * 获取图层完成解析加载完成的Promise承诺, 等价于load事件(区别在于load事件必须在load完成前绑定才能监听)。
     */
    readonly readyPromise: Promise<Cesium.Model>;
    /**
     * 设置透明度
     * @param value - 透明度
     * @returns 无
     */
    setOpacity(value: number): void;
}

declare namespace Pit {
    /**
     * 井  支持的样式信息，
     * @property image - 井墙面贴图URL
     * @property imageBottom - 井底面贴图URL
     * @property diffHeight - 井下深度（单位：米）
     * @property [splitNum = 50] - 井墙面每两点之间插值个数
     * @property [label] - 支持附带文字的显示
     */
    type StyleOptions = any | {
        image: string;
        imageBottom: string;
        diffHeight: number;
        splitNum?: number;
        label?: LabelPrimitive.StyleOptions | any;
    };
}

/**
 * 井 矢量对象
 * 用于显示地形开挖后的开挖效果。
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.depthFailAppearance] - 当深度测试失败时，用于为该图元着色的外观。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class Pit extends BasePolyPrimitive {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | any[];
        style: Pit.StyleOptions | any;
        attr?: any;
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        depthFailAppearance?: Cesium.Appearance;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 井下深度（单位：米）
     */
    diffHeight: number;
    /**
     * 中心点坐标 （笛卡尔坐标）
     */
    readonly center: Cesium.Cartesian3;
}

declare namespace PlanePrimitive {
    /**
     * 平面 支持的样式信息
     * @property [dimensions] - 指定平面的宽度和高度。
     * @property [dimensions_x = 100] - 长度
     * @property [dimensions_y = 100] - 宽度
     * @property [plane_normal = "z"] - 方向 ,可选项：x (解释：X轴),y (解释：Y轴),z (解释：Z轴),
     * @property [heading = 0] - 方向角 （度数值，0-360度）
     * @property [pitch = 0] - 俯仰角（度数值，0-360度）
     * @property [roll = 0] - 翻滚角（度数值，0-360度）
     * @property [color = "#00FF00"] - 颜色
     * @property [opacity = 1.0] - 透明度, 取值范围：0.0-1.0
     * @property [materialType = "Color"] - 填充材质类型 ,可选项：{@link MaterialType}
     * @property [materialOptions] - materialType对应的{@link MaterialType}中材质参数
     * @property [material] - 指定用于填充的材质，指定material后`materialType`和`materialOptions`将被覆盖。
     * @property [materialSupport = MaterialAppearance.MaterialSupport.TEXTURED] - 将被支持的材质类型。
     * @property [outline = false] - 是否边框
     * @property [outlineColor = "#ffffff"] - 边框颜色
     * @property [outlineOpacity = 0.6] - 边框透明度
     *
     * //以下是 这是MaterialAppearance的参数
     * @property [flat = false] - 当true时，在片段着色器中使用平面着色，不考虑光照。
     * @property [faceForward = !closed] - 当true时，片段着色器根据需要翻转表面的法线，以确保法线面向查看器以避免黑点。
     * @property [translucent = true] - 当true时，几何图形将显示为半透明，因此{@link Cesium.PerInstanceColorAppearance#renderState}将启用alpha混合。
     * @property [closed = false] - 当true时，几何图形将被关闭，因此{@link Cesium.PerInstanceColorAppearance#renderState}启用了背面剔除。
     * @property [vertexShaderSource] - 可选的GLSL顶点着色器源，覆盖默认的顶点着色器。
     * @property [fragmentShaderSource] - 可选的GLSL片段着色器源覆盖默认的片段着色器。
     * @property [renderState] - 可选渲染状态，以覆盖默认渲染状态。
     * @property [highlight] - 鼠标移入或单击(type:'click')后的对应高亮的部分样式，创建Graphic后也可以openHighlight、closeHighlight方法来手动调用
     * @property [label] - 支持附带文字的显示
     */
    type StyleOptions = any | {
        dimensions?: Cesium.Cartesian2;
        dimensions_x?: number;
        dimensions_y?: number;
        plane_normal?: string | Cesium.Cartesian3;
        heading?: number;
        pitch?: number;
        roll?: number;
        color?: string | Cesium.Color;
        opacity?: number;
        materialType?: string;
        materialOptions?: any;
        material?: Cesium.Material;
        materialSupport?: Cesium.MaterialAppearance.MaterialSupportType;
        outline?: boolean;
        outlineColor?: string | Cesium.Color;
        outlineOpacity?: number;
        flat?: boolean;
        faceForward?: boolean;
        translucent?: boolean;
        closed?: boolean;
        vertexShaderSource?: string;
        fragmentShaderSource?: string;
        renderState?: any;
        highlight?: PlanePrimitive.StyleOptions | any;
        label?: LabelEntity.StyleOptions | any;
    };
}

/**
 * 平面 Primitive图元矢量对象
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param [options.modelMatrix] - 将图元(所有几何实例)从模型转换为世界坐标的4x4变换矩阵,可以替代position。
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.depthFailAppearance] - 当深度测试失败时，用于为该图元着色的外观。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class PlanePrimitive extends BasePointPrimitive {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | number[];
        modelMatrix?: Cesium.Matrix4;
        style: PlanePrimitive.StyleOptions | any;
        attr?: any;
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        depthFailAppearance?: Cesium.Appearance;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 用于指定位置的矩阵
     */
    readonly modelMatrix: Cesium.Matrix4;
}

declare namespace PointPrimitive {
    /**
     * 像素点 支持的样式信息
     * @property [pixelSize = 10] - 像素大小
     * @property [color = "#3388ff"] - 颜色
     * @property [opacity = 1.0] - 透明度，取值范围：0.0-1.0
     * @property [outline = false] - 是否边框
     * @property [outlineColor = "#ffffff"] - 边框颜色
     * @property [outlineOpacity = 0.6] - 边框透明度
     * @property [outlineWidth = 2] - 边框宽度
     * @property [scaleByDistance = false] - 是否按视距缩放 或 指定用于基于距离缩放点。
     * @property [scaleByDistance_far = 1000000] - 上限
     * @property [scaleByDistance_farValue = 0.1] - 比例值
     * @property [scaleByDistance_near = 1000] - 下限
     * @property [scaleByDistance_nearValue = 1] - 比例值
     * @property [distanceDisplayCondition = false] - 是否按视距显示 或 指定此框将显示在与摄像机的多大距离。
     * @property [distanceDisplayCondition_far = 10000] - 最大距离
     * @property [distanceDisplayCondition_near = 0] - 最小距离
     * @property [visibleDepth = true] - 是否被遮挡
     * @property [disableDepthTestDistance] - 指定从相机到禁用深度测试的距离。
     * @property [translucencyByDistance] - 用于基于与相机的距离设置半透明度。
     * @property [setHeight] - 指定坐标高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [addHeight] - 在现有坐标基础上增加的高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [label] - 支持附带文字的显示
     */
    type StyleOptions = any | {
        pixelSize?: number;
        color?: string | Cesium.Color;
        opacity?: number;
        outline?: boolean;
        outlineColor?: string | Cesium.Color;
        outlineOpacity?: number;
        outlineWidth?: number;
        scaleByDistance?: boolean | Cesium.NearFarScalar;
        scaleByDistance_far?: number;
        scaleByDistance_farValue?: number;
        scaleByDistance_near?: number;
        scaleByDistance_nearValue?: number;
        distanceDisplayCondition?: boolean | Cesium.DistanceDisplayCondition;
        distanceDisplayCondition_far?: number;
        distanceDisplayCondition_near?: number;
        visibleDepth?: boolean;
        disableDepthTestDistance?: number;
        translucencyByDistance?: Cesium.NearFarScalar;
        setHeight?: number | string;
        addHeight?: number | string;
        label?: LabelPrimitive.StyleOptions | any;
    };
}

/**
 * 像素点 Primitive矢量数据
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.frameRate = 1] - 当postion为CallbackProperty时，多少帧获取一次数据。用于控制效率，如果卡顿就把该数值调大一些。
 * @param [options.forwardExtrapolationType = Cesium.ExtrapolationType.HOLD] - 当使用addDynamicPosition设置为动画轨迹位置时，在任何可用坐标之后一次请求值时要执行的推断类型，默认为最后一个坐标位置。
 * @param [options.backwardExtrapolationType = Cesium.ExtrapolationType.HOLD] - 当使用addDynamicPosition设置为动画轨迹位置时， 在任何可用坐标之前一次请求值时要执行的推断类型，默认为第一个坐标位置。
 * @param [options.clampToTileset] - 当使用addDynamicPosition设置为动画轨迹位置时，是否进行贴模型。
 * @param [options.frameRateHeight = 30] - 当使用addDynamicPosition设置为动画轨迹位置时，并clampToTileset：true时，多少帧计算一次贴模型高度
 * @param [options.objectsToExclude] - 当使用addDynamicPosition设置为动画轨迹位置时，并clampToTileset：true时，排除的不进行贴模型计算的模型对象，可以是： primitives, entities, 或 3D Tiles features
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class PointPrimitive extends BasePointPrimitive {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | number[];
        style: PointPrimitive.StyleOptions | any;
        attr?: any;
        frameRate?: number;
        forwardExtrapolationType?: Cesium.ExtrapolationType;
        backwardExtrapolationType?: Cesium.ExtrapolationType;
        clampToTileset?: boolean;
        frameRateHeight?: number;
        objectsToExclude?: any;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 当加载primitive数据的内部Cesium容器
     */
    readonly primitiveCollection: Cesium.PointPrimitiveCollection;
}

declare namespace PolygonPrimitive {
    /**
     * 面   Primitive图元 支持的样式信息
     * @property [materialType = "Color"] - 填充材质类型 ,可选项：{@link MaterialType}
     * @property [materialOptions] - materialType对应的{@link MaterialType}中材质参数
     * @property [material] - 指定用于填充的材质，指定material后`materialType`和`materialOptions`将被覆盖。
     * @property [color = "#3388ff"] - 颜色
     * @property [opacity = 1.0] - 透明度，取值范围：0.0-1.0
     * @property [randomColor = false] - 是否随机颜色
     * @property [image] - 当为贴图时，贴图的url
     * @property [stRotation = 0] - 多边形纹理的角度（弧度值），正北为0，逆时针旋转
     * @property [stRotationDegree = 0] - 多边形纹理的角度（度数值，0-360度），与stRotation二选一
     * @property [outline = false] - 是否边框
     * @property [outlineColor = "#ffffff"] - 边框颜色
     * @property [outlineOpacity = 0.6] - 边框透明度
     * @property [outlineStyle] - 边框的样式，会覆盖outlineColor、outlineOpacity
     * @property [height = 0] - 高程，圆相对于椭球面的高度。
     * @property [diffHeight = 100] - 高度差（走廊本身的高度），与extrudedHeight二选一。
     * @property [extrudedHeight] - 指定走廊挤压面相对于椭球面的高度。
     * @property [granularity = Cesium.Math.RADIANS_PER_DEGREE] - 指定每个纬度点和经度点之间的角距离。
     * @property [closeTop = true] - 当为false时，离开一个挤压多边形的顶部打开。
     * @property [closeBottom = true] - 当为false时，离开挤压多边形的底部打开。
     * @property [distanceDisplayCondition = false] - 是否按视距显示 或 指定此框将显示在与摄像机的多大距离。
     * @property [distanceDisplayCondition_far = 100000] - 最大距离
     * @property [distanceDisplayCondition_near = 0] - 最小距离
     * @property [arcType = Cesium.ArcType.GEODESIC] - 多边形的边缘必须遵循的线条类型。
     * @property [hasShadows = false] - 是否阴影
     * @property [shadows = Cesium.ShadowMode.DISABLED] - 指定对象是投射还是接收来自光源的阴影。
     * @property [clampToGround = false] - 是否贴地
     * @property [classificationType = Cesium.ClassificationType.BOTH] - 指定贴地时的覆盖类型，是只对地形、3dtiles 或 两者同时。
     * @property [classification = false] - 是否为ClassificationPrimitive ，分类基元 表示Scene要高亮显示的包围几何的体积
     *
     * //以下是 这是MaterialAppearance的参数
     * @property [flat = false] - 当true时，在片段着色器中使用平面着色，不考虑光照。
     * @property [faceForward = !closed] - 当true时，片段着色器根据需要翻转表面的法线，以确保法线面向查看器以避免黑点。
     * @property [translucent = true] - 当true时，几何图形将显示为半透明，因此{@link Cesium.PerInstanceColorAppearance#renderState}将启用alpha混合。
     * @property [closed = false] - 当true时，几何图形将被关闭，因此{@link Cesium.PerInstanceColorAppearance#renderState}启用了背面剔除。
     * @property [vertexShaderSource] - 可选的GLSL顶点着色器源，覆盖默认的顶点着色器。
     * @property [fragmentShaderSource] - 可选的GLSL片段着色器源覆盖默认的片段着色器。
     * @property [renderState] - 可选渲染状态，以覆盖默认渲染状态。
     * @property [buffer] - 对坐标进行缓冲扩大buffer指定的半径范围，单位：米。如用于单体化建筑物扩大点方便鼠标拾取。
     * @property [setHeight] - 指定坐标高度值，或数组指定每个点的高度（常用于图层中配置）
     * @property [addHeight] - 在现有坐标基础上增加的高度值，或数组指定每个点增加的高度（常用于图层中配置）
     * @property [highlight] - 鼠标移入或单击(type:'click')后的对应高亮的部分样式，创建Graphic后也可以openHighlight、closeHighlight方法来手动调用
     * @property [label] - 支持附带文字的显示 ，额外支持：<br />
     * //  * @property {String|LngLatPoint} [label.position] 文字所在位置，默认是矢量对象本身的center属性值。支持配置 'center'：围合面的内部中心点坐标，'{xxxx}'配置属性字段, 或者直接指定坐标值。
     * //  * @property {Boolean} [label.showAll] MultiPolygon和MultiLineString时，是否显示所有注记，默认只在最大坐标数的面或线上显示。
     */
    type StyleOptions = any | {
        materialType?: string;
        materialOptions?: any;
        material?: Cesium.Material;
        color?: string | Cesium.Color;
        opacity?: number;
        randomColor?: boolean;
        image?: string;
        stRotation?: number;
        stRotationDegree?: number;
        outline?: boolean;
        outlineColor?: string | Cesium.Color;
        outlineOpacity?: number;
        outlineStyle?: PolylinePrimitive.StyleOptions | any;
        height?: number;
        diffHeight?: number;
        extrudedHeight?: number;
        granularity?: number;
        closeTop?: boolean;
        closeBottom?: boolean;
        distanceDisplayCondition?: boolean | Cesium.DistanceDisplayConditionGeometryInstanceAttribute;
        distanceDisplayCondition_far?: number;
        distanceDisplayCondition_near?: number;
        arcType?: Cesium.ArcType;
        hasShadows?: boolean;
        shadows?: Cesium.ShadowMode;
        clampToGround?: boolean;
        classificationType?: Cesium.ClassificationType;
        classification?: boolean;
        flat?: boolean;
        faceForward?: boolean;
        translucent?: boolean;
        closed?: boolean;
        vertexShaderSource?: string;
        fragmentShaderSource?: string;
        renderState?: any;
        buffer?: number;
        setHeight?: number | number[];
        addHeight?: number | number[];
        highlight?: PolygonPrimitive.StyleOptions | any;
        label?: LabelPrimitive.StyleOptions | any | any;
    };
}

/**
 * 面  Primitive图元 矢量对象
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.depthFailAppearance] - 当深度测试失败时，用于为该图元着色的外观。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class PolygonPrimitive extends BasePolyPrimitive {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | any[];
        style: PolygonPrimitive.StyleOptions | any;
        attr?: any;
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        depthFailAppearance?: Cesium.Appearance;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 周长 距离（单位：米）
     */
    readonly distance: number;
    /**
     * 位置坐标数组 （笛卡尔坐标）, 赋值时可以传入LatLngPoint数组对象
     */
    positions: Cesium.Cartesian3[];
    /**
     * 中心点坐标 （笛卡尔坐标）
     */
    readonly center: Cesium.Cartesian3;
}

declare namespace PolylinePrimitive {
    /**
     * 线 Primitive图元 支持的样式信息
     * @property [width = 4] - 线宽
     * @property [materialType = "Color"] - 填充材质类型 ,可选项：{@link MaterialType}
     * @property [materialOptions] - materialType对应的{@link MaterialType}中材质参数
     * @property [material] - 指定用于填充的材质，指定material后`materialType`和`materialOptions`将被覆盖。
     * @property [color = "#3388ff"] - 颜色
     * @property [opacity = 1.0] - 透明度，取值范围：0.0-1.0
     * @property [randomColor = false] - 是否随机颜色
     * @property [colors] - 定义每顶点或每段颜色 的数组。
     * @property [colorsPerVertex = false] - 用于确定颜色在线条的每一段上是平坦的还是在顶点上插值的。
     * @property [closure = false] - 是否闭合
     * @property [depthFail] - 是否显示遮挡
     * @property [depthFailColor] - 遮挡处颜色
     * @property [depthFailOpacity] - 遮挡处透明度
     * @property [distanceDisplayCondition = false] - 是否按视距显示 或 指定此框将显示在与摄像机的多大距离。
     * @property [distanceDisplayCondition_far = 100000] - 最大距离
     * @property [distanceDisplayCondition_near = 0] - 最小距离
     * @property [arcType = Cesium.ArcType.GEODESIC] - 折线段必须遵循的线的类型。
     * @property [granularity = Cesium.Math.RADIANS_PER_DEGREE] - 如果arcType不是arcType.none，则指定每个纬度和经度之间的角距离的数字属性。
     * @property [hasShadows = false] - 是否阴影
     * @property [shadows = Cesium.ShadowMode.DISABLED] - 指定对象是投射还是接收来自光源的阴影。
     * @property [clampToGround = false] - 是否贴地
     * @property [classificationType = Cesium.ClassificationType.BOTH] - 指定贴地时的覆盖类型，是只对地形、3dtiles 或 两者同时。
     * @property [setHeight] - 指定坐标高度值，或数组指定每个点的高度（常用于图层中配置）
     * @property [addHeight] - 在现有坐标基础上增加的高度值，或数组指定每个点增加的高度（常用于图层中配置）
     * @property [highlight] - 鼠标移入或单击(type:'click')后的对应高亮的部分样式，创建Graphic后也可以openHighlight、closeHighlight方法来手动调用
     * @property [label] - 支持附带文字的显示 ，额外支持：<br />
     * //  * @property {String|LngLatPoint} [label.position] 文字所在位置，默认是矢量对象本身的center属性值。支持配置 'center'：围合面的内部中心点坐标，'{xxxx}'配置属性字段, 或者直接指定坐标值。
     * //  * @property {Boolean} [label.showAll] MultiPolygon和MultiLineString时，是否显示所有注记，默认只在最大坐标数的面或线上显示。
     */
    type StyleOptions = any | {
        width?: number;
        materialType?: string;
        materialOptions?: any;
        material?: Cesium.Material;
        color?: string | Cesium.Color;
        opacity?: number;
        randomColor?: boolean;
        colors?: Cesium.Color[];
        colorsPerVertex?: boolean;
        closure?: boolean;
        depthFail?: boolean;
        depthFailColor?: string;
        depthFailOpacity?: number;
        distanceDisplayCondition?: boolean | Cesium.DistanceDisplayConditionGeometryInstanceAttribute;
        distanceDisplayCondition_far?: number;
        distanceDisplayCondition_near?: number;
        arcType?: Cesium.ArcType;
        granularity?: number;
        hasShadows?: boolean;
        shadows?: Cesium.ShadowMode;
        clampToGround?: boolean;
        classificationType?: Cesium.ClassificationType;
        setHeight?: number | number[];
        addHeight?: number | number[];
        highlight?: PolylinePrimitive.StyleOptions | any;
        label?: LabelPrimitive.StyleOptions | any | any;
    };
}

/**
 * 线 Primitive图元 矢量对象
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.depthFailAppearance] - 当深度测试失败时，用于为该图元着色的外观。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class PolylinePrimitive extends BasePolyPrimitive {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | any[];
        style: PolylinePrimitive.StyleOptions | any;
        attr?: any;
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        depthFailAppearance?: Cesium.Appearance;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

/**
 * 简单线 Primitive图元 矢量对象
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.depthFailAppearance] - 当深度测试失败时，用于为该图元着色的外观。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class PolylineSimplePrimitive extends BasePolyPrimitive {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | any[];
        style: PolylinePrimitive.StyleOptions | any;
        attr?: any;
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        depthFailAppearance?: Cesium.Appearance;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

declare namespace PolylineVolumePrimitive {
    /**
     * 管道线 Primitive图元 支持的样式信息
     * @property [shape = "pipeline"] - 形状类型 或 定义要挤压的形状。类型可选项：pipeline (解释：空心管),circle (解释：实心管),star (解释：星状管),
     * @property [radius = 10] - 半径(单位：米)
     * @property [thicknes = radius/3] - 厚度(单位：米)，空心管/星状管 的外层厚度
     * @property [slices] - 边数，比如为4时是矩形管；星状管代表角的个数；
     * @property [startAngle = 0] - 开始角度，取值范围0-360
     * @property [endAngle = 360] - 结束角度，取值范围0-360，比如endAngle=180的空心管是拱形半圆管道
     * @property [vscale = 1] - 垂直缩放比例
     * @property [hscale = 1] - 水平缩放比例
     * @property [materialType = "Color"] - 填充材质类型 ,可选项：{@link MaterialType}
     * @property [materialOptions] - materialType对应的{@link MaterialType}中材质参数
     * @property [material] - 指定用于填充的材质，指定material后`materialType`和`materialOptions`将被覆盖。
     * @property [color = "#3388ff"] - 颜色
     * @property [opacity = 1.0] - 透明度，取值范围：0.0-1.0
     * @property [cornerType = CornerType.ROUNDED] - 指定边角的样式。
     * @property [granularity = Cesium.Math.RADIANS_PER_DEGREE] - 指定每个纬度点和经度点之间的角距离。
     * @property [hasShadows = false] - 是否阴影
     * @property [shadows = Cesium.ShadowMode.DISABLED] - 指定对象是投射还是接收来自光源的阴影。
     *
     * //以下是 这是MaterialAppearance的参数
     * @property [flat = false] - 当true时，在片段着色器中使用平面着色，不考虑光照。
     * @property [faceForward = !closed] - 当true时，片段着色器根据需要翻转表面的法线，以确保法线面向查看器以避免黑点。
     * @property [translucent = true] - 当true时，几何图形将显示为半透明，因此{@link Cesium.PerInstanceColorAppearance#renderState}将启用alpha混合。
     * @property [closed = true] - 当true时，几何图形将被关闭，因此{@link Cesium.PerInstanceColorAppearance#renderState}启用了背面剔除。
     * @property [vertexShaderSource] - 可选的GLSL顶点着色器源，覆盖默认的顶点着色器。
     * @property [fragmentShaderSource] - 可选的GLSL片段着色器源覆盖默认的片段着色器。
     * @property [renderState] - 可选渲染状态，以覆盖默认渲染状态。
     * @property [setHeight] - 指定坐标高度值，或数组指定每个点的高度（常用于图层中配置）
     * @property [addHeight] - 在现有坐标基础上增加的高度值，或数组指定每个点增加的高度（常用于图层中配置）
     * @property [label] - 支持附带文字的显示
     */
    type StyleOptions = any | {
        shape?: string | Cesium.Cartesian2[];
        radius?: number;
        thicknes?: number;
        slices?: number;
        startAngle?: number;
        endAngle?: number;
        vscale?: number;
        hscale?: number;
        materialType?: string;
        materialOptions?: any;
        material?: Cesium.Material;
        color?: string | Cesium.Color;
        opacity?: number;
        cornerType?: Cesium.CornerType;
        granularity?: number;
        hasShadows?: boolean;
        shadows?: Cesium.ShadowMode;
        flat?: boolean;
        faceForward?: boolean;
        translucent?: boolean;
        closed?: boolean;
        vertexShaderSource?: string;
        fragmentShaderSource?: string;
        renderState?: any;
        setHeight?: number | number[];
        addHeight?: number | number[];
        label?: LabelPrimitive.StyleOptions | any;
    };
}

/**
 * 管道线  Primitive图元 矢量对象
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.depthFailAppearance] - 当深度测试失败时，用于为该图元着色的外观。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class PolylineVolumePrimitive extends BasePolyPrimitive {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | any[];
        style: PolylineVolumePrimitive.StyleOptions | any;
        attr?: any;
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        depthFailAppearance?: Cesium.Appearance;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

declare namespace RectanglePrimitive {
    /**
     * 矩形   Primitive图元 支持的样式信息
     * @property [materialType = "Color"] - 填充材质类型 ,可选项：{@link MaterialType}
     * @property [materialOptions] - materialType对应的{@link MaterialType}中材质参数
     * @property [material] - 指定用于填充的材质，指定material后`materialType`和`materialOptions`将被覆盖。
     * @property [color = "#3388ff"] - 颜色
     * @property [opacity = 1.0] - 透明度，取值范围：0.0-1.0
     * @property [image] - 当为贴图时，贴图的url
     * @property [outline = false] - 是否边框
     * @property [outlineColor = "#ffffff"] - 边框颜色
     * @property [outlineOpacity = 0.6] - 边框透明度
     * @property [outlineStyle] - 边框的样式，会覆盖outlineColor、outlineOpacity
     * @property [height = 0] - 高程，圆相对于椭球面的高度。
     * @property [diffHeight = 100] - 高度差（走廊本身的高度），与extrudedHeight二选一。
     * @property [extrudedHeight] - 指定走廊挤压面相对于椭球面的高度。
     * @property [rotation = 0] - 旋转角度（弧度值），正北为0，逆时针旋转
     * @property [rotationDegree = 0] - 旋转角度（度数值，0-360度），与rotation二选一
     * @property [stRotation = 0] - 矩形纹理的角度（弧度值），正北为0，逆时针旋转
     * @property [stRotationDegree = 0] - 矩形纹理的角度（度数值，0-360度），与stRotation二选一
     * @property [hasShadows = false] - 是否阴影
     * @property [shadows = Cesium.ShadowMode.DISABLED] - 指定对象是投射还是接收来自光源的阴影。
     * @property [clampToGround = false] - 是否贴地
     * @property [classificationType = Cesium.ClassificationType.BOTH] - 指定贴地时的覆盖类型，是只对地形、3dtiles 或 两者同时。
     * @property [classification = false] - 是否为ClassificationPrimitive ，分类基元 表示Scene要高亮显示的包围几何的体积
     * @property [setHeight] - 指定坐标高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [addHeight] - 在现有坐标基础上增加的高度值（常用于图层中配置）,也支持字符串模版配置
     * @property [label] - 支持附带文字的显示
     */
    type StyleOptions = any | {
        materialType?: string;
        materialOptions?: any;
        material?: Cesium.Material;
        color?: string | Cesium.Color;
        opacity?: number;
        image?: string;
        outline?: boolean;
        outlineColor?: string | Cesium.Color;
        outlineOpacity?: number;
        outlineStyle?: PolylinePrimitive.StyleOptions | any;
        height?: number;
        diffHeight?: number;
        extrudedHeight?: number;
        rotation?: number;
        rotationDegree?: number;
        stRotation?: number;
        stRotationDegree?: number;
        hasShadows?: boolean;
        shadows?: Cesium.ShadowMode;
        clampToGround?: boolean;
        classificationType?: Cesium.ClassificationType;
        classification?: boolean;
        setHeight?: number | string;
        addHeight?: number | string;
        label?: LabelPrimitive.StyleOptions | any;
    };
}

/**
 * 矩形  Primitive图元 矢量对象
 * @param options - 参数对象，包括以下：
 * @param [options.positions] - 坐标位置
 * @param [options.rectangle] - 矩形范围，与positions二选一。
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.depthFailAppearance] - 当深度测试失败时，用于为该图元着色的外观。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class RectanglePrimitive extends BasePolyPrimitive {
    constructor(options: {
        positions?: LngLatPoint[] | Cesium.Cartesian3[] | any[];
        rectangle?: Cesium.Rectangle | Cesium.PositionProperty;
        style: RectanglePrimitive.StyleOptions | any;
        attr?: any;
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        depthFailAppearance?: Cesium.Appearance;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 坐标数据对应的矩形边界对象
     */
    rectangle: Cesium.Rectangle;
    /**
     * 周长 距离（单位：米）
     */
    readonly distance: number;
    /**
     * 获取数据的矩形边界
     * @param [options] - 控制参数
     * @param [options.isFormat = false] - 是否格式化，格式化时示例： { xmin: 73.16895, xmax: 134.86816, ymin: 12.2023, ymax: 54.11485 }
     * @returns isFormat：true时，返回格式化对象，isFormat：false时返回Cesium.Rectangle对象
     */
    getRectangle(options?: {
        isFormat?: boolean;
    }): Cesium.Rectangle | any;
    /**
     * 判断点是否在矩形内
     * @param position - 需要判断的点
     * @returns 是否在矩形内
     */
    isInPoly(position: Cesium.Cartesian3 | LngLatPoint): boolean;
    /**
     * 中心点坐标 （笛卡尔坐标）
     */
    readonly center: Cesium.Cartesian3;
    /**
     * 面积（单位：平方米）
     */
    readonly area: number;
}

declare namespace Road {
    /**
     * 道路 支持的样式信息
     * @property image - 图片材质URL
     * @property [width = 20] - 道路 宽度。(单位：米)
     * @property [height = 0] - 道路 高度，相对于椭球面的高度。(单位：米)
     * @property [axisY = true] - 是否uv交换（图片横竖切换）
     */
    type StyleOptions = any | {
        image: string;
        width?: number;
        height?: number;
        axisY?: boolean;
    };
}

/**
 * 道路  矢量对象
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class Road extends DynamicRiver {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | any[];
        style: Road.StyleOptions | any;
        attr?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

declare namespace ScrollWall {
    /**
     * 走马灯围墙效果 支持的样式信息
     * @property [diffHeight = 100] - 墙高
     * @property [color = "#3388ff"] - 颜色
     * @property [opacity = 1.0] - 透明度，取值范围：0.0-1.0
     * @property [speed = 10] - 速度，值越大越快
     * @property [reverse = false] - 方向：true往上、false往下
     * @property [style = 1] - 样式，可选值：1、2
     * @property [shadows = Cesium.ShadowMode.DISABLED] - 指定对象是投射还是接收来自光源的阴影。
     */
    type StyleOptions = any | {
        diffHeight?: number;
        color?: string | Cesium.Color;
        opacity?: number;
        speed?: number;
        reverse?: boolean;
        style?: number;
        shadows?: Cesium.ShadowMode;
    };
}

/**
 * 走马灯围墙效果 矢量对象
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class ScrollWall extends BasePolyPrimitive {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | any[];
        style: ScrollWall.StyleOptions | any;
        attr?: any;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
    /**
     * 矢量数据对应的 Cesium内部对象 (不同子类中实现)
     */
    readonly czmObject: Cesium.Entity | Cesium.Primitive | Cesium.GroundPrimitive | Cesium.ClassificationPrimitive | any;
}

declare namespace WallPrimitive {
    /**
     * 墙  Primitive图元 支持的样式信息
     * @property [diffHeight = 100] - 墙高
     * @property [materialType = "Color"] - 填充材质类型 ,可选项：{@link MaterialType}
     * @property [materialOptions] - materialType对应的{@link MaterialType}中材质参数
     * @property [material] - 指定用于填充的材质，指定material后`materialType`和`materialOptions`将被覆盖。
     * @property [color = "#3388ff"] - 颜色
     * @property [opacity = 1.0] - 透明度，取值范围：0.0-1.0
     * @property [closure = false] - 是否闭合
     * @property [outline = false] - 是否边框
     * @property [outlineColor = "#ffffff"] - 边框颜色
     * @property [outlineOpacity = 0.6] - 边框透明度
     * @property [hasShadows = false] - 是否阴影
     * @property [shadows = Cesium.ShadowMode.DISABLED] - 指定折线是投射还是接收来自光源的阴影。
     *
     * //以下是 这是MaterialAppearance的参数
     * @property [flat = false] - 当true时，在片段着色器中使用平面着色，不考虑光照。
     * @property [faceForward = !closed] - 当true时，片段着色器根据需要翻转表面的法线，以确保法线面向查看器以避免黑点。
     * @property [translucent = true] - 当true时，几何图形将显示为半透明，因此{@link Cesium.PerInstanceColorAppearance#renderState}将启用alpha混合。
     * @property [closed = false] - 当true时，几何图形将被关闭，因此{@link Cesium.PerInstanceColorAppearance#renderState}启用了背面剔除。
     * @property [vertexShaderSource] - 可选的GLSL顶点着色器源，覆盖默认的顶点着色器。
     * @property [fragmentShaderSource] - 可选的GLSL片段着色器源覆盖默认的片段着色器。
     * @property [renderState] - 可选渲染状态，以覆盖默认渲染状态。
     * @property [highlight] - 鼠标移入或单击(type:'click')后的对应高亮的部分样式，创建Graphic后也可以openHighlight、closeHighlight方法来手动调用
     * @property [label] - 支持附带文字的显示 ，额外支持：<br />
     * //  * @property {String|LngLatPoint} [label.position] 文字所在位置，默认是矢量对象本身的center属性值。支持配置 'center'：围合面的内部中心点坐标，'{xxxx}'配置属性字段, 或者直接指定坐标值。
     * //  * @property {Boolean} [label.showAll] MultiPolygon和MultiLineString时，是否显示所有注记，默认只在最大坐标数的面或线上显示。
     */
    type StyleOptions = any | {
        diffHeight?: number;
        materialType?: string;
        materialOptions?: any;
        material?: Cesium.Material;
        color?: string | Cesium.Color;
        opacity?: number;
        closure?: boolean;
        outline?: boolean;
        outlineColor?: string | Cesium.Color;
        outlineOpacity?: number;
        hasShadows?: boolean;
        shadows?: Cesium.ShadowMode;
        flat?: boolean;
        faceForward?: boolean;
        translucent?: boolean;
        closed?: boolean;
        vertexShaderSource?: string;
        fragmentShaderSource?: string;
        renderState?: any;
        highlight?: WallPrimitive.StyleOptions | any;
        label?: LabelPrimitive.StyleOptions | any | any;
    };
}

/**
 * 墙 Primitive图元 矢量对象
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.appearance] - [cesium原生]用于渲染图元的外观。
 * @param [options.attributes] - [cesium原生]每个实例的属性。
 * @param [options.depthFailAppearance] - 当深度测试失败时，用于为该图元着色的外观。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class WallPrimitive extends BasePolyPrimitive {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | any[];
        style: WallPrimitive.StyleOptions | any;
        attr?: any;
        appearance?: Cesium.Appearance;
        attributes?: Cesium.Appearance;
        depthFailAppearance?: Cesium.Appearance;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

declare namespace Water {
    /**
     * 水面   Primitive图元 支持的样式信息
     * @property [baseWaterColor = "#123e59"] - 基础颜色
     * @property [blendColor = "#123e59"] - 从水中混合到非水域时使用的rgba颜色对象。
     * @property [specularMap] - 单一通道纹理用来指示水域的面积。
     * @property [normalMap] - 水正常扰动的法线图。
     * @property [frequency = 8000] - 控制波数的数字。
     * @property [animationSpeed = 0.03] - 控制水的动画速度的数字。
     * @property [amplitude = 5.0] - 控制水波振幅的数字。
     * @property [specularIntensity = 0.8] - 控制镜面反射强度的数字。
     * @property [fadeFactor = 1.0] - fadeFactor
     * @property [opacity = 0.8] - 透明度，取值范围：0.0-1.0
     * @property [clampToGround = false] - 是否贴地
     * @property [stRotation = 0] - 多边形纹理的角度（弧度值），正北为0，逆时针旋转
     * @property [stRotationDegree = 0] - 多边形纹理的角度（度数值，0-360度），与stRotation二选一
     * @property [outline = false] - 是否边框
     * @property [outlineColor = "#ffffff"] - 边框颜色
     * @property [outlineOpacity = 0.6] - 边框透明度
     * @property [height = 0] - 高程，圆相对于椭球面的高度。
     * @property [diffHeight = 100] - 高度差（走廊本身的高度），与extrudedHeight二选一。
     * @property [extrudedHeight] - 指定走廊挤压面相对于椭球面的高度。
     * @property [granularity = Cesium.Math.RADIANS_PER_DEGREE] - 指定每个纬度点和经度点之间的角距离。
     * @property [closeTop = true] - 当为false时，离开一个挤压多边形的顶部打开。
     * @property [closeBottom = true] - 当为false时，离开挤压多边形的底部打开。
     * @property [arcType = Cesium.ArcType.GEODESIC] - 多边形的边缘必须遵循的线条类型。
     * @property [hasShadows = false] - 是否阴影
     * @property [shadows = Cesium.ShadowMode.DISABLED] - 指定对象是投射还是接收来自光源的阴影。
     * @property [classificationType = Cesium.ClassificationType.BOTH] - 指定贴地时的覆盖类型，是只对地形、3dtiles 或 两者同时。
     *
     *
     * //以下是 这是MaterialAppearance的参数
     * @property [flat = false] - 当true时，在片段着色器中使用平面着色，不考虑光照。
     * @property [faceForward = !closed] - 当true时，片段着色器根据需要翻转表面的法线，以确保法线面向查看器以避免黑点。
     * @property [translucent = true] - 当true时，几何图形将显示为半透明，因此{@link Cesium.PerInstanceColorAppearance#renderState}将启用alpha混合。
     * @property [closed = false] - 当true时，几何图形将被关闭，因此{@link Cesium.PerInstanceColorAppearance#renderState}启用了背面剔除。
     * @property [vertexShaderSource] - 可选的GLSL顶点着色器源，覆盖默认的顶点着色器。
     * @property [fragmentShaderSource] - 可选的GLSL片段着色器源覆盖默认的片段着色器。
     * @property [renderState] - 可选渲染状态，以覆盖默认渲染状态。
     * @property [setHeight] - 指定坐标高度值，或数组指定每个点的高度（常用于图层中配置）
     * @property [addHeight] - 在现有坐标基础上增加的高度值，或数组指定每个点增加的高度（常用于图层中配置）
     * @property [highlight] - 鼠标移入或单击(type:'click')后的对应高亮的部分样式，创建Graphic后也可以openHighlight、closeHighlight方法来手动调用
     * @property [label] - 支持附带文字的显示 ，额外支持：<br />
     * //  * @property {String|LngLatPoint} [label.position] 文字所在位置，默认是矢量对象本身的center属性值。支持配置 'center'：围合面的内部中心点坐标，'{xxxx}'配置属性字段, 或者直接指定坐标值。
     * //  * @property {Boolean} [label.showAll] MultiPolygon和MultiLineString时，是否显示所有注记，默认只在最大坐标数的面或线上显示。
     */
    type StyleOptions = any | {
        baseWaterColor?: string;
        blendColor?: string;
        specularMap?: string;
        normalMap?: string;
        frequency?: number;
        animationSpeed?: number;
        amplitude?: number;
        specularIntensity?: number;
        fadeFactor?: number;
        opacity?: number;
        clampToGround?: boolean;
        stRotation?: number;
        stRotationDegree?: number;
        outline?: boolean;
        outlineColor?: string | Cesium.Color;
        outlineOpacity?: number;
        height?: number;
        diffHeight?: number;
        extrudedHeight?: number;
        granularity?: number;
        closeTop?: boolean;
        closeBottom?: boolean;
        arcType?: Cesium.ArcType;
        hasShadows?: boolean;
        shadows?: Cesium.ShadowMode;
        classificationType?: Cesium.ClassificationType;
        flat?: boolean;
        faceForward?: boolean;
        translucent?: boolean;
        closed?: boolean;
        vertexShaderSource?: string;
        fragmentShaderSource?: string;
        renderState?: any;
        setHeight?: number | number[];
        addHeight?: number | number[];
        highlight?: PolygonPrimitive.StyleOptions | any;
        label?: LabelPrimitive.StyleOptions | any | any;
    };
}

/**
 * 水域面 Primitive图元 矢量对象
 * @param options - 参数对象，包括以下：
 * @param options.positions - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.vertexCacheOptimize = false] - 当true，几何顶点优化前和后顶点着色缓存。
 * @param [options.interleave = false] - 当true时，几何顶点属性被交叉，这可以略微提高渲染性能，但会增加加载时间。
 * @param [options.compressVertices = true] - 当true时，几何顶点被压缩，这将节省内存。提升效率。
 * @param [options.releaseGeometryInstances = true] - 当true时，图元不保留对输入geometryInstances的引用以节省内存。
 * @param [options.allowPicking = true] - 当true时，每个几何图形实例只能通过{@link Scene#pick}进行挑选。当false时，保存GPU内存。
 * @param [options.cull = true] - 当true时，渲染器会根据图元的边界体积来剔除它们的截锥和地平线。设置为false，如果你手动剔除图元，可以获得较小的性能提升。
 * @param [options.asynchronous = true] - 确定该图元是异步创建还是阻塞创建，直到就绪。
 * @param [options.debugShowBoundingVolume = false] - 仅供调试。确定该图元命令的边界球是否显示。
 * @param [options.debugShowShadowVolume = false] - 仅供调试。贴地时，确定是否绘制了图元中每个几何图形的阴影体积。必须是true创建卷之前要释放几何图形或选项。releaseGeometryInstance必须是false。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.contextmenuItems] - 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 */
declare class Water extends PolygonPrimitive {
    constructor(options: {
        positions: LngLatPoint[] | Cesium.Cartesian3[] | any[];
        style: Water.StyleOptions | any;
        attr?: any;
        vertexCacheOptimize?: boolean;
        interleave?: boolean;
        compressVertices?: boolean;
        releaseGeometryInstances?: boolean;
        allowPicking?: boolean;
        cull?: boolean;
        asynchronous?: boolean;
        debugShowBoundingVolume?: boolean;
        debugShowShadowVolume?: boolean;
        popup?: string | any[] | ((...params: any[]) => any);
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: string | any[] | ((...params: any[]) => any);
        tooltipOptions?: Tooltip.StyleOptions | any;
        contextmenuItems?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        allowDrillPick?: boolean | ((...params: any[]) => any);
    });
}

declare namespace BaseGraphicLayer {
    /**
     * 图层类支持的{@link EventType}事件类型
     * @example
     * //绑定监听事件
     * layer.on(mars3d.EventType.click, function (event) {
     *   console.log('单击了矢量数据对象', event)
     * })
     * @property add - 添加对象
     * @property remove - 移除对象
     * @property show - 显示了对象
     * @property hide - 隐藏了对象
     * @property click - 左键单击 鼠标事件
     * @property rightClick - 右键单击 鼠标事件
     * @property mouseOver - 鼠标移入 鼠标事件
     * @property mouseOut - 鼠标移出 鼠标事件
     * @property popupOpen - popup弹窗打开后
     * @property popupClose - popup弹窗关闭
     * @property tooltipOpen - tooltip弹窗打开后
     * @property tooltipClose - tooltip弹窗关闭
     */
    type EventType = {
        add: string;
        remove: string;
        show: string;
        hide: string;
        click: string;
        rightClick: string;
        mouseOver: string;
        mouseOut: string;
        popupOpen: string;
        popupClose: string;
        tooltipOpen: string;
        tooltipClose: string;
    };
}

/**
 * 矢量数据图层 Base基类
 * @param [options] - 参数对象，包括以下：
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定，支持：'all'、数组、字符串模板
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数,还包括：
 * @param [options.popupOptions.title] - 固定的标题名称
 * @param [options.popupOptions.titleField] - 标题对应的属性字段名称
 * @param [options.popupOptions.noTitle] - 不显示标题
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑定，参数与popup属性完全相同。
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数,还包括：
 * @param [options.tooltipOptions.title] - 固定的标题名称
 * @param [options.tooltipOptions.titleField] - 标题对应的属性字段名称
 * @param [options.tooltipOptions.noTitle] - 不显示标题
 * @param [options.contextmenuItems] - 绑定的右键菜单值，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.extent] - 图层自定义定位的矩形区域，与center二选一即可。 {@link Map#flyToExtent}
 * @param options.extent.xmin - 最小经度值, -180 至 180
 * @param options.extent.xmax - 最大经度值, -180 至 180
 * @param options.extent.ymin - 最小纬度值, -90 至 90
 * @param options.extent.ymax - 最大纬度值, -90 至 90
 * @param [options.extent.height = 0] - 矩形高度值
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class BaseGraphicLayer extends BaseLayer {
    constructor(options?: {
        popup?: string | Globe.getTemplateHtml_template[] | ((...params: any[]) => any);
        popupOptions?: {
            title?: string;
            titleField?: string;
            noTitle?: string;
        };
        tooltip?: string | Globe.getTemplateHtml_template[] | ((...params: any[]) => any) | any;
        tooltipOptions?: {
            title?: string;
            titleField?: string;
            noTitle?: string;
        };
        contextmenuItems?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        extent?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
            height?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 绑定鼠标移入或单击后的 对象高亮
     * @param [options] - 参数：
     * @param [options.type = 'mouseOver'] - 事件类型，默认为鼠标移入高亮，也可以指定'click'单击高亮。
     * @param [options.多个参数] - 高亮的样式，具体见各{@link GraphicType}矢量数据的style参数。
     * @returns 无
     */
    bindHighlight(options?: {
        type?: string;
        多个参数?: string;
    }): void;
    /**
     * 解绑鼠标移入或单击后的高亮处理
     * @returns 无
     */
    unbindHighlight(): void;
    /**
     * 高亮对象
     * @param graphic - 高亮的矢量对，类型支持{@link GraphicType}
     * @param [event] - 事件对象
     * @returns 无
     */
    openHighlight(graphic: BaseGraphic, event?: any): void;
    /**
     * 清除已高亮的矢量对象
     * @returns 无
     */
    closeHighlight(): void;
    /**
     * 是否存在Popup绑定，判断图层及内部所有矢量数据
     * @returns 是否存在Popup绑定
     */
    hasPopup(): boolean;
    /**
     * 绑定鼠标单击对象后的弹窗。
     * @param content - 弹窗内容html字符串，或者回调方法。
     * @param [options] - 控制参数
     * @returns 当前对象本身，可以链式调用
     */
    bindPopup(content: string | ((...params: any[]) => any), options?: Popup.StyleOptions | any): BaseGraphicLayer;
    /**
     * 解除绑定的鼠标单击对象后的弹窗。
     * @param [bubbling = false] - 单击事件中是否继续冒泡查找
     * @returns 当前对象本身，可以链式调用
     */
    unbindPopup(bubbling?: boolean): BaseGraphicLayer;
    /**
     * 打开绑定的弹窗
     * @param position - 矢量对象 或 显示的位置
     * @returns 当前对象本身，可以链式调用
     */
    openPopup(position: BaseGraphic | LngLatPoint | Cesium.Cartesian3): BaseGraphicLayer;
    /**
     * 关闭弹窗
     * @returns 当前对象本身，可以链式调用
     */
    closePopup(): BaseGraphicLayer;
    /**
     * 是否绑定了tooltip
     * @returns 是否绑定
     */
    hasTooltip(): boolean;
    /**
     * 绑定鼠标移入的弹窗
     * @param content - 弹窗内容html字符串，或者回调方法。
     * @param [options] - 控制参数
     * @returns 当前对象本身，可以链式调用
     */
    bindTooltip(content: string | ((...params: any[]) => any), options?: Tooltip.StyleOptions | any): BaseGraphicLayer;
    /**
     * 解除绑定的鼠标移入对象后的弹窗。
     * @param [bubbling = false] - 单击事件中是否继续冒泡查找
     * @returns 当前对象本身，可以链式调用
     */
    unbindTooltip(bubbling?: boolean): BaseGraphicLayer;
    /**
     * 打开绑定的tooltip弹窗
     * @param position - graphic矢量对象 或 显示的位置
     * @returns 当前对象本身，可以链式调用
     */
    openTooltip(position: BaseGraphic | LngLatPoint | Cesium.Cartesian3): BaseGraphicLayer;
    /**
     * 关闭弹窗
     * @returns 当前对象本身，可以链式调用
     */
    closeTooltip(): BaseGraphicLayer;
    /**
     * 是否有绑定的右键菜单
     * @returns 是否有绑定
     */
    hasContextMenu(): boolean;
    /**
     * 获取绑定的右键菜单数组
     * @returns 右键菜单数组
     */
    getContextMenu(): any;
    /**
     * 绑定右键菜单
     * @example
     * //在layer上绑定右键菜单
     *       graphicLayer.bindContextMenu([
     *         {
     *           text: '删除对象',
     *           icon: 'fa fa-trash-o',
     *           callback: function (e) {
     *             let graphic = e.graphic
     *             if (graphic) {
     *               graphicLayer.removeGraphic(graphic)
     *             }
     *           },
     *         },
     *         {
     *           text: '计算长度',
     *           icon: 'fa fa-medium',
     *           show: function (e) {
     *             let graphic = e.graphic
     *             return graphic.type === 'polyline'
     *           },
     *           callback: function (e) {
     *             let graphic = e.graphic
     *             let strDis = mars3d.MeasureUtil.formatDistance(graphic.distance)
     *             alert('该对象的长度为:' + strDis)
     *           },
     *         },
     *       ])
     * @param content - 右键菜单配置数组，数组中每一项包括：
     * @param [content.text] - 菜单文字
     * @param [content.icon] - 图标,可以是：图片url路径、base64字符串、svg字符串、字体图标class名
     * @param [content.show] - 菜单项是否显示的回调方法
     * @param [content.callback] - 菜单项单击后的回调方法
     * @param [content.children] - 当有二级子菜单时，配置数组。
     * @param [options = {}] - 控制参数
     * @param [options.offsetX] - 用于非规则对象时，横向偏移的px像素值
     * @param [options.offsetY] - 用于非规则对象时，垂直方向偏移的px像素值
     * @returns 当前对象本身，可以链式调用
     */
    bindContextMenu(content: {
        text?: string;
        icon?: string;
        show?: ((...params: any[]) => any) | boolean;
        callback?: (...params: any[]) => any;
        children?: any;
    }[], options?: {
        offsetX?: number;
        offsetY?: number;
    }): BaseGraphicLayer;
    /**
     * 解除绑定的右键菜单
     * @param [bubbling = false] - 单击事件中是否继续冒泡查找
     * @returns 当前对象本身，可以链式调用
     */
    unbindContextMenu(bubbling?: boolean): BaseGraphicLayer;
    /**
     * 打开右键菜单
     * @param position - 矢量对象 或 显示的位置
     * @returns 当前对象本身，可以链式调用
     */
    openContextMenu(position: BaseGraphic | Cesium.Cartesian3): BaseGraphicLayer;
    /**
     * 关闭右键菜单
     * @returns 当前对象本身，可以链式调用
     */
    closeContextMenu(): BaseGraphicLayer;
    /**
     * 显示小提示窗，一般用于鼠标操作的提示。
     * @param position - 显示的屏幕坐标位置 或 笛卡尔坐标位置
     * @param message - 显示的内容
     * @returns 当前对象本身，可以链式调用
     */
    openSmallTooltip(position: Cesium.Cartesian2 | Cesium.Cartesian3, message: any): BaseGraphicLayer;
    /**
     * 关闭小提示窗
     * @returns 当前对象本身，可以链式调用
     */
    closeSmallTooltip(): BaseGraphicLayer;
}

/**
 * 图层对象 的基类
 * @param [options] - 参数对象，包括以下：
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid] - 图层父级的id，一般图层管理中使用
 * @param [options.name] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.extent] - 图层自定义定位的矩形区域，与center二选一即可。 {@link Map#flyToExtent}
 * @param options.extent.xmin - 最小经度值, -180 至 180
 * @param options.extent.xmax - 最大经度值, -180 至 180
 * @param options.extent.ymin - 最小纬度值, -90 至 90
 * @param options.extent.ymax - 最大纬度值, -90 至 90
 * @param [options.extent.height] - 矩形高度值, 默认取地形高度值
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 */
declare class BaseLayer extends BaseClass {
    constructor(options?: {
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        extent?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
            height?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 对象的id标识
     */
    id: string | number;
    /**
     * 名称 标识
     */
    name: string;
    /**
     * 对象的pid标识
     */
    pid: string | number;
    /**
     * 图层类型
     */
    readonly type: string;
    /**
     * 当前对象的状态
     */
    readonly state: State;
    /**
     * 是否已添加到地图
     */
    readonly isAdded: boolean;
    /**
     * 是否已经销毁了
     */
    readonly isDestroy: boolean;
    /**
     * 是否Mars3D内部的私有对象，如标绘拖拽点等
     */
    readonly isPrivate: boolean;
    /**
     * 获取图层完成解析加载完成的Promise承诺, 等价于load事件(区别在于load事件必须在load完成前绑定才能监听)。
     * @example
     * tiles3dLayer.readyPromise.then(function(layer) {
     *     console.log("load完成", layer)
     *   })
     */
    readonly readyPromise: Promise<BaseLayer | any>;
    /**
     * 显示隐藏状态
     */
    show: boolean;
    /**
     * 是否可以调整透明度
     */
    readonly hasOpacity: boolean;
    /**
     * 透明度，取值范围：0.0-1.0
     */
    opacity: number;
    /**
     * 添加到地图上，同 map.addThing
     * @param map - 地图对象
     * @returns 当前对象本身，可以链式调用
     */
    addTo(map: Map): BaseLayer;
    /**
     * 从地图上移除，同map.removeThing
     * @param [destroy] - 是否调用destroy释放
     * @returns 无
     */
    remove(destroy?: boolean): void;
    /**
     * 对象添加到地图前创建一些对象的钩子方法，
     * 只会调用一次
     * @returns 无
     */
    _mountedHook(): void;
    /**
     * 对象添加到地图上的创建钩子方法，
     * 每次add时都会调用
     * @returns 无
     */
    _addedHook(): void;
    /**
     * 对象从地图上移除的创建钩子方法，
     * 每次remove时都会调用
     * @returns 无
     */
    _removedHook(): void;
    /**
     * 飞行定位至图层数据所在的视角
     * @param [options = {}] - 参数对象:
     * @param [options.radius] - 点状数据时，相机距离目标点的距离（单位：米）
     * @param [options.scale = 1.2] - 线面数据时，缩放比例，可以控制视角比矩形略大一些，这样效果更友好。
     * @param [options.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
     * @param [options.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
     * @param [options.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
     * @param [options.minHeight] - 定位时相机的最小高度值，用于控制避免异常数据
     * @param [options.maxHeight] - 定位时相机的最大高度值，用于控制避免异常数据
     * @param [options.height] - 矩形区域时的高度值, 默认取地形高度值
     * @param [options.duration] - 飞行时间（单位：秒）。如果省略，SDK内部会根据飞行距离计算出理想的飞行时间。
     * @param [options.complete] - 飞行完成后要执行的函数。
     * @param [options.cancel] - 飞行取消时要执行的函数。
     * @param [options.endTransform] - 变换矩阵表示飞行结束时相机所处的参照系。
     * @param [options.maximumHeight] - 飞行高峰时的最大高度。
     * @param [options.pitchAdjustHeight] - 如果相机飞得比这个值高，在飞行过程中调整俯仰以向下看，并保持地球在视口。
     * @param [options.flyOverLongitude] - 地球上的两点之间总有两条路。这个选项迫使相机选择战斗方向飞过那个经度。
     * @param [options.flyOverLongitudeWeight] - 仅在通过flyOverLongitude指定的lon上空飞行，只要该方式的时间不超过flyOverLongitudeWeight的短途时间。
     * @param [options.convert = true] - 是否将目的地从世界坐标转换为场景坐标（仅在不使用3D时相关）。
     * @param [options.easingFunction] - 控制在飞行过程中如何插值时间。
     * @returns 如果飞行成功则解析为true的承诺，如果当前未在场景中可视化目标或取消飞行，则为false的Promise
     */
    flyTo(options?: {
        radius?: number;
        scale?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        minHeight?: number;
        maxHeight?: number;
        height?: number;
        duration?: number;
        complete?: Cesium.Camera.FlightCompleteCallback;
        cancel?: Cesium.Camera.FlightCancelledCallback;
        endTransform?: Cesium.Matrix4;
        maximumHeight?: number;
        pitchAdjustHeight?: number;
        flyOverLongitude?: number;
        flyOverLongitudeWeight?: number;
        convert?: boolean;
        easingFunction?: Cesium.EasingFunction.Callback;
    }): Promise<boolean>;
    /**
     * 更新图层参数
     * @param options - 与类的构造方法参数相同
     * @returns 当前对象本身，可以链式调用
     */
    setOptions(options: any): BaseLayer;
    /**
     * 将图层转为Json简单对象，用于存储后再传参加载
     * @returns Json简单对象
     */
    toJSON(): any;
    /**
     * 当前类的构造参数
     */
    readonly options: any;
    /**
     * 销毁当前对象
     * @param [noDel = false] - false:会自动delete释放所有属性，true：不delete绑定的变量
     * @returns 无
     */
    destroy(noDel?: boolean): void;
    /**
     * 触发指定类型的事件。
     * @param type - 事件类型
     * @param [data] - 传输的数据或对象，可在事件回调方法中event对象中获取进行使用
     * @param [propagate] - 将事件传播给父类 (用addEventParent设置)
     * @returns 当前对象本身,可以链式调用
     */
    fire(type: EventType | string, data?: any, propagate?: BaseClass): BaseClass;
}

declare namespace CzmGeoJsonLayer {
    /**
     * 当前类支持的{@link EventType}事件类型
     * @example
     * //绑定监听事件
     * layer.on(mars3d.EventType.load, function (event) {
     *   console.log('矢量数据对象加载完成', event)
     * })
     * @property add - 添加对象
     * @property remove - 移除对象
     * @property show - 显示了对象
     * @property hide - 隐藏了对象
     * @property click - 左键单击 鼠标事件
     * @property rightClick - 右键单击 鼠标事件
     * @property mouseOver - 鼠标移入 鼠标事件
     * @property mouseOut - 鼠标移出 鼠标事件
     * @property popupOpen - popup弹窗打开后
     * @property popupClose - popup弹窗关闭
     * @property tooltipOpen - tooltip弹窗打开后
     * @property tooltipClose - tooltip弹窗关闭
     * @property load - 完成加载，执行所有内部处理后
     * @property addGraphic - 添加矢量数据时
     */
    type EventType = {
        add: string;
        remove: string;
        show: string;
        hide: string;
        click: string;
        rightClick: string;
        mouseOver: string;
        mouseOut: string;
        popupOpen: string;
        popupClose: string;
        tooltipOpen: string;
        tooltipClose: string;
        load: string;
        addGraphic: string;
    };
}

/**
 * GeoJSON数据图层(ceisum原生)，该类中矢量数据是使用ceisum原生方法加载的entity对象。
 * @param [options] - 参数对象，包括以下：
 * @param [options.url] - geojson文件或服务url地址
 * @param [options.data] - geojson格式规范数据对象，与url二选一即可。
 * @param [options.format] - 可以对加载的geojson数据进行格式化或转换操作
 * @param [options.zIndex] - 控制图层的叠加层次，默认按加载的顺序进行叠加，但也可以自定义叠加顺序，数字大的在上面(只对同类型图层间有效)。
 * @param [options.opacity = 1] - 透明度，取值范围：0.0-1.0
 * @param [options.symbol] - 矢量数据的style样式
 * @param options.symbol.styleOptions - 数据的Style样式
 * @param [options.symbol.styleField] - 按 styleField 属性设置不同样式。
 * @param [options.symbol.styleFieldOptions] - 按styleField值与对应style样式的键值对象。
 * @param [options.symbol.callback] - 自定义判断处理返回style ，示例：callback: function (attr, entity, styleOpt){  return { color: "#ff0000" };  }
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定，支持：'all'、数组、字符串模板
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数,还包括：
 * @param [options.popupOptions.title] - 固定的标题名称
 * @param [options.popupOptions.titleField] - 标题对应的属性字段名称
 * @param [options.popupOptions.noTitle] - 不显示标题
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑定，参数与popup属性完全相同。
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数,还包括：
 * @param [options.tooltipOptions.title] - 固定的标题名称
 * @param [options.tooltipOptions.titleField] - 标题对应的属性字段名称
 * @param [options.tooltipOptions.noTitle] - 不显示标题
 * @param [options.contextmenuItems] - 绑定的右键菜单值，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.extent] - 图层自定义定位的矩形区域，与center二选一即可。 {@link Map#flyToExtent}
 * @param options.extent.xmin - 最小经度值, -180 至 180
 * @param options.extent.xmax - 最大经度值, -180 至 180
 * @param options.extent.ymin - 最小纬度值, -90 至 90
 * @param options.extent.ymax - 最大纬度值, -90 至 90
 * @param [options.extent.height = 0] - 矩形高度值
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class CzmGeoJsonLayer extends BaseGraphicLayer {
    constructor(options?: {
        url?: string;
        data?: any;
        format?: (...params: any[]) => any;
        zIndex?: number;
        opacity?: number;
        symbol?: {
            styleOptions: BillboardEntity.StyleOptions | any | PolylineEntity.StyleOptions | any | PolygonEntity.StyleOptions | any | any;
            styleField?: string;
            styleFieldOptions?: any;
            callback?: (...params: any[]) => any;
        };
        popup?: string | Globe.getTemplateHtml_template[] | ((...params: any[]) => any);
        popupOptions?: {
            title?: string;
            titleField?: string;
            noTitle?: string;
        };
        tooltip?: string | Globe.getTemplateHtml_template[] | ((...params: any[]) => any) | any;
        tooltipOptions?: {
            title?: string;
            titleField?: string;
            noTitle?: string;
        };
        contextmenuItems?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        extent?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
            height?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * GeoJsonDataSource 对象
     */
    readonly layer: Cesium.GeoJsonDataSource;
    /**
     * Entity矢量数据 集合
     */
    readonly entities: Cesium.EntityCollection;
    /**
     * 当存在 文字primitive 数据的内部Cesium容器
     */
    readonly labelCollection: Cesium.LabelCollection;
    /**
     * 是否可以调整图层顺序（在同类型图层间）
     */
    readonly hasZIndex: boolean;
    /**
     * 图层顺序，数字大的在上面。（当hasZIndex为true时）
     */
    zIndex: number;
    /**
     * 是否贴地
     */
    readonly clampToGround: boolean;
    /**
     * 加载新数据 或 刷新数据
     * @param [newOptions = {}] - 新设定的参数，会与类的构造参数合并。
     * @param [newOptions.url] - geojson文件或服务url地址
     * @param [newOptions.data] - geojson格式规范数据对象，与url二选一即可。
     * @param [newOptions.类参数] - 包含当前类支持的所有参数
     * @returns 当前对象本身，可以链式调用
     */
    load(newOptions?: {
        url?: string;
        data?: any;
        类参数?: any;
    }): CzmGeoJsonLayer;
    /**
     * 加载新数据 或 刷新数据
     * @param symbol - 设置新的symbol 矢量数据样式.  {@link GraphicType}
     * @param symbol.styleOptions - Style样式，每种不同类型数据都有不同的样式，具体见各矢量数据的style参数。{@link GraphicType}
     * @param [symbol.styleField] - 按 styleField 属性设置不同样式。
     * @param [symbol.styleFieldOptions] - 按styleField值与对应style样式的键值对象。
     * @returns 当前对象本身，可以链式调用
     */
    updateStyle(symbol: {
        styleOptions: any;
        styleField?: string;
        styleFieldOptions?: any;
    }): CzmGeoJsonLayer;
    /**
     * 添加label文本注记
     * @param position - 坐标位置
     * @param labelattr - label文本的属性
     * @param attr - 属性信息
     * @returns label文本对象
     */
    lblAddFun(position: Cesium.Cartesian3 | Cesium.SampledPositionProperty | any, labelattr: any, attr: any): Cesium.Label;
    /**
     * 设置透明度
     * @param value - 透明度
     * @returns 无
     */
    setOpacity(value: number): void;
    /**
     * 获取Entity矢量对象上绑定的 数据
     * @param entity - Entity矢量对象
     * @returns 数据
     */
    getEntityAttr(entity: Cesium.Entity): any;
    /**
     * 清除所有数据
     * @returns 当前对象本身，可以链式调用
     */
    clear(): CzmGeoJsonLayer;
    /**
     * 追加数据，处理提供的url或数据对象，而不清除任何现有数据。
     * @param diejiaData - 要处理的url或对象。
     * @param [options] - 控制参数
     * @returns 加载完成后的回调方法的Promise
     */
    process(diejiaData: Cesium.Resource | string | any, options?: any): Promise<any>;
    /**
     * 飞行定位至图层数据所在的视角
     * @param [options = {}] - 参数对象:
     * @param [options.radius] - 点状数据时，相机距离目标点的距离（单位：米）
     * @param [options.scale = 1.2] - 线面数据时，缩放比例，可以控制视角比矩形略大一些，这样效果更友好。
     * @param [options.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
     * @param [options.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
     * @param [options.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
     * @param [options.minHeight] - 定位时相机的最小高度值，用于控制避免异常数据
     * @param [options.maxHeight] - 定位时相机的最大高度值，用于控制避免异常数据
     * @param [options.height] - 矩形区域时的高度值, 默认取地形高度值
     * @param [options.duration] - 飞行时间（单位：秒）。如果省略，SDK内部会根据飞行距离计算出理想的飞行时间。
     * @param [options.complete] - 飞行完成后要执行的函数。
     * @param [options.cancel] - 飞行取消时要执行的函数。
     * @param [options.endTransform] - 变换矩阵表示飞行结束时相机所处的参照系。
     * @param [options.maximumHeight] - 飞行高峰时的最大高度。
     * @param [options.pitchAdjustHeight] - 如果相机飞得比这个值高，在飞行过程中调整俯仰以向下看，并保持地球在视口。
     * @param [options.flyOverLongitude] - 地球上的两点之间总有两条路。这个选项迫使相机选择战斗方向飞过那个经度。
     * @param [options.flyOverLongitudeWeight] - 仅在通过flyOverLongitude指定的lon上空飞行，只要该方式的时间不超过flyOverLongitudeWeight的短途时间。
     * @param [options.convert = true] - 是否将目的地从世界坐标转换为场景坐标（仅在不使用3D时相关）。
     * @param [options.easingFunction] - 控制在飞行过程中如何插值时间。
     * @returns 如果飞行成功则解析为true的承诺，如果当前未在场景中可视化目标或取消飞行，则为false的Promise
     */
    flyTo(options?: {
        radius?: number;
        scale?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        minHeight?: number;
        maxHeight?: number;
        height?: number;
        duration?: number;
        complete?: Cesium.Camera.FlightCompleteCallback;
        cancel?: Cesium.Camera.FlightCancelledCallback;
        endTransform?: Cesium.Matrix4;
        maximumHeight?: number;
        pitchAdjustHeight?: number;
        flyOverLongitude?: number;
        flyOverLongitudeWeight?: number;
        convert?: boolean;
        easingFunction?: Cesium.EasingFunction.Callback;
    }): Promise<boolean>;
}

/**
 * CZML数据图层
 * @param [options] - 参数对象，包括以下：
 * @param [options.url] - CZML文件或服务url地址
 * @param [options.data] - CZML格式规范数据对象，与url二选一即可。
 * @param [options.autoUpdateClock = true] - 是否自动更新时钟
 * @param [options.zIndex] - 控制图层的叠加层次（部分图层），默认按加载的顺序进行叠加，但也可以自定义叠加顺序，数字大的在上面。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定，支持：'all'、数组、字符串模板
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数,还包括：
 * @param [options.popupOptions.title] - 固定的标题名称
 * @param [options.popupOptions.titleField] - 标题对应的属性字段名称
 * @param [options.popupOptions.noTitle] - 不显示标题
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑定，参数与popup属性完全相同。
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数,还包括：
 * @param [options.tooltipOptions.title] - 固定的标题名称
 * @param [options.tooltipOptions.titleField] - 标题对应的属性字段名称
 * @param [options.tooltipOptions.noTitle] - 不显示标题
 * @param [options.contextmenuItems] - 绑定的右键菜单值，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.extent] - 图层自定义定位的矩形区域，与center二选一即可。 {@link Map#flyToExtent}
 * @param options.extent.xmin - 最小经度值, -180 至 180
 * @param options.extent.xmax - 最大经度值, -180 至 180
 * @param options.extent.ymin - 最小纬度值, -90 至 90
 * @param options.extent.ymax - 最大纬度值, -90 至 90
 * @param [options.extent.height = 0] - 矩形高度值
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class CzmlLayer extends CzmGeoJsonLayer {
    constructor(options?: {
        url?: string;
        data?: any;
        autoUpdateClock?: boolean;
        zIndex?: number;
        popup?: string | Globe.getTemplateHtml_template[] | ((...params: any[]) => any);
        popupOptions?: {
            title?: string;
            titleField?: string;
            noTitle?: string;
        };
        tooltip?: string | Globe.getTemplateHtml_template[] | ((...params: any[]) => any) | any;
        tooltipOptions?: {
            title?: string;
            titleField?: string;
            noTitle?: string;
        };
        contextmenuItems?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        extent?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
            height?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 更新地图clock时钟 为 当前czml的起止时间
     * @returns 无
     */
    setCzmlTime(): void;
    /**
     * 更新地图clock时钟 为 当前时间（还原时间）
     * @returns 无
     */
    setNowTime(): void;
    /**
     * 加载新数据 或 刷新数据
     * @param [newOptions = {}] - 新设定的参数，会与类的构造参数合并。
     * @param [newOptions.data] - CZML格式规范数据对象，与url二选一即可。
     * @param [newOptions.url] - CZML文件或服务url地址
     * @param [options.proxy] - 加载资源时要使用的代理服务url。
     * @param [options.templateValues] - 一个对象，用于替换Url中的模板值的键/值对
     * @param [options.queryParameters] - 一个对象，其中包含在检索资源时将发送的查询参数。比如：queryParameters: {'access_token': '123-435-456-000'}
     * @param [options.headers] - 一个对象，将发送的其他HTTP标头。比如：headers: { 'X-My-Header': 'valueOfHeader' }
     * @param [newOptions.类参数] - 包含当前类支持的所有参数
     * @returns 当前对象本身，可以链式调用
     */
    load(newOptions?: {
        data?: any;
        url?: string;
        类参数?: any;
    }): CzmlLayer;
    /**
     * 获取Entity矢量对象上绑定的 数据
     * @param entity - Entity矢量对象
     * @returns 数据
     */
    getEntityAttr(entity: Cesium.Entity): any;
}

/**
 * KML数据图层
 * @param [options] - 参数对象，包括以下：
 * @param [options.url] - KML文件或服务url地址
 * @param [options.data] - 已解析的KML文档或包含二进制KMZ数据或已解析的KML文档的Blob，与url二选一即可。
 * @param [options.zIndex] - 控制图层的叠加层次（部分图层），默认按加载的顺序进行叠加，但也可以自定义叠加顺序，数字大的在上面。
 * @param [options.opacity = 1.0] - 透明度（部分图层），取值范围：0.0-1.0
 * @param [options.symbol] - 矢量数据的style样式
 * @param options.symbol.styleOptions - 数据的Style样式
 * @param [options.symbol.styleField] - 按 styleField 属性设置不同样式。
 * @param [options.symbol.styleFieldOptions] - 按styleField值与对应style样式的键值对象。
 * @param [options.symbol.callback] - 自定义判断处理返回style ，示例：callback: function (attr, entity, styleOpt){  return { color: "#ff0000" };  }
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定，支持：'all'、数组、字符串模板
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数,还包括：
 * @param [options.popupOptions.title] - 固定的标题名称
 * @param [options.popupOptions.titleField] - 标题对应的属性字段名称
 * @param [options.popupOptions.noTitle] - 不显示标题
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑定，参数与popup属性完全相同。
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数,还包括：
 * @param [options.tooltipOptions.title] - 固定的标题名称
 * @param [options.tooltipOptions.titleField] - 标题对应的属性字段名称
 * @param [options.tooltipOptions.noTitle] - 不显示标题
 * @param [options.contextmenuItems] - 绑定的右键菜单值，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.extent] - 图层自定义定位的矩形区域，与center二选一即可。 {@link Map#flyToExtent}
 * @param options.extent.xmin - 最小经度值, -180 至 180
 * @param options.extent.xmax - 最大经度值, -180 至 180
 * @param options.extent.ymin - 最小纬度值, -90 至 90
 * @param options.extent.ymax - 最大纬度值, -90 至 90
 * @param [options.extent.height = 0] - 矩形高度值
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class KmlLayer extends CzmGeoJsonLayer {
    constructor(options?: {
        url?: string;
        data?: Document | Blob;
        zIndex?: number;
        opacity?: number;
        symbol?: {
            styleOptions: BillboardEntity.StyleOptions | any | PolylineEntity.StyleOptions | any | PolygonEntity.StyleOptions | any | any;
            styleField?: string;
            styleFieldOptions?: any;
            callback?: (...params: any[]) => any;
        };
        popup?: string | Globe.getTemplateHtml_template[] | ((...params: any[]) => any);
        popupOptions?: {
            title?: string;
            titleField?: string;
            noTitle?: string;
        };
        tooltip?: string | Globe.getTemplateHtml_template[] | ((...params: any[]) => any) | any;
        tooltipOptions?: {
            title?: string;
            titleField?: string;
            noTitle?: string;
        };
        contextmenuItems?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        extent?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
            height?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 加载新数据 或 刷新数据
     * @param [newOptions = {}] - 新设定的参数，会与类的构造参数合并。
     * @param [newOptions.data] - 已解析的KML文档或包含二进制KMZ数据或已解析的KML文档的Blob，与url二选一即可。
     * @param [newOptions.url] - KML文件或服务url地址
     * @param [options.proxy] - 加载资源时要使用的代理服务url。
     * @param [options.templateValues] - 一个对象，用于替换Url中的模板值的键/值对
     * @param [options.queryParameters] - 一个对象，其中包含在检索资源时将发送的查询参数。比如：queryParameters: {'access_token': '123-435-456-000'}
     * @param [options.headers] - 一个对象，将发送的其他HTTP标头。比如：headers: { 'X-My-Header': 'valueOfHeader' }
     * @param [newOptions.类参数] - 包含当前类支持的所有参数
     * @returns 当前对象本身，可以链式调用
     */
    load(newOptions?: {
        data?: Document | Blob;
        url?: string;
        类参数?: any;
    }): KmlLayer;
    /**
     * 获取Entity矢量对象上绑定的 数据
     * @param entity - Entity矢量对象
     * @returns 数据
     */
    getEntityAttr(entity: Cesium.Entity): any;
}

/**
 * ArcGIS WFS服务图层，
 * 按瓦片网格分块分层加载。
 * @param [options] - 参数对象，包括以下：
 * @param options.url - ArcGIS服务地址, 示例：'http://server.mars3d.cn/arcgis/rest/services/mars/hefei/MapServer/37',
 * @param [options.token] - 用于通过ArcGIS MapServer服务进行身份验证的ArcGIS令牌。
 * @param [options.where] - 用于筛选数据的where查询条件
 * @param [options.wkid] - 当非标准EPSG标号时，可以指定wkid值。
 * @param [options.parameters] - 要在URL中 传递给WFS服务GetFeature请求的其他参数。
 * @param [options.headers] - 将被添加到HTTP请求头。
 * @param [options.proxy] - 加载资源时使用的代理。
 * @param [options.IdField = 'id'] - 数据中唯一标识的属性字段名称,默认读取 id或objectid或OBJECTID
 * @param [options.minimumLevel = 0] - 图层所支持的最低层级，当地图小于该级别时，平台不去请求服务数据。【影响效率的重要参数】
 * @param [options.maximumLevel] - 图层所支持的最大层级,当地图大于该级别时，平台不去请求服务数据。
 * @param options.rectangle - 瓦片数据的矩形区域范围
 * @param options.rectangle.xmin - 最小经度值, -180 至 180
 * @param options.rectangle.xmax - 最大经度值, -180 至 180
 * @param options.rectangle.ymin - 最小纬度值, -90 至 90
 * @param options.rectangle.ymax - 最大纬度值, -90 至 90
 * @param [options.bbox] - bbox规范的瓦片数据的矩形区域范围,与rectangle二选一即可。
 * @param options.debuggerTileInfo - 是否开启测试显示瓦片信息
 * @param [options.opacity = 1.0] - 透明度（部分图层），取值范围：0.0-1.0
 * @param [options.zIndex] - 控制图层的叠加层次（部分图层），默认按加载的顺序进行叠加，但也可以自定义叠加顺序，数字大的在上面。
 * @param [options.symbol] - 矢量数据的style样式,为Function时是完全自定义的回调处理 symbol(attr, style, feature)
 * @param [options.symbol.type] - 标识数据类型，默认是根据数据生成 point、polyline、polygon
 * @param options.symbol.styleOptions - Style样式，每种不同类型数据都有不同的样式，具体见各矢量数据的style参数。{@link GraphicType}
 * @param [options.symbol.styleField] - 按 styleField 属性设置不同样式。
 * @param [options.symbol.styleFieldOptions] - 按styleField值与对应style样式的键值对象。
 * @param [options.symbol.merge] - 是否合并并覆盖json中已有的style，默认不合并。
 * @param [options.symbol.callback] - 自定义判断处理返回style ，示例：callback: function (attr, styleOpt){  return { color: "#ff0000" };  }
 * @param [options.graphicOptions] - 默认的graphic的构造参数，每种不同类型数据都有不同的属性，具体见各{@link GraphicType}矢量数据的构造参数。
 * @param [options.chinaCRS] - 标识数据的国内坐标系（用于自动纠偏或加偏）
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 * @param [options.buildings] - 标识当前图层为建筑物白膜类型数据
 * @param [options.buildings.bottomHeight] - 建筑物底部高度（如:0） 属性字段名称（如:{bottomHeight}）
 * @param [options.buildings.cloumn = 1] - 层数，楼的实际高度 = height*cloumn
 * @param [options.buildings.height = 3.5] - 层高的  固定层高数值（如:10） 或 属性字段名称（如:{height}）
 * @param options.clustering - 设置聚合相关参数[entity点类型时]：
 * @param [options.clustering.enabled = false] - 是否开启聚合
 * @param [options.clustering.pixelRange = 20] - 多少像素矩形范围内聚合
 * @param [options.clustering.clampToGround = true] - 是否贴地
 * @param [options.clustering.style] - 聚合点的样式参数
 * @param [options.clustering.radius = 28] - 圆形图标的整体半径大小（单位：像素）
 * @param [options.clustering.radiusIn = radius-5] - 圆形图标的内圆半径大小（单位：像素）
 * @param [options.clustering.fontColor = '#ffffff'] - 数字的颜色
 * @param [options.clustering.color = 'rgba(181, 226, 140, 0.6)'] - 圆形图标的背景颜色，默认自动处理
 * @param [options.clustering.colorIn = 'rgba(110, 204, 57, 0.5)'] - 圆形图标的内圆背景颜色，默认自动处理
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定，支持：'all'、数组、字符串模板
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数,还包括：
 * @param [options.popupOptions.title] - 固定的标题名称
 * @param [options.popupOptions.titleField] - 标题对应的属性字段名称
 * @param [options.popupOptions.noTitle] - 不显示标题
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑定，参数与popup属性完全相同。
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数,还包括：
 * @param [options.tooltipOptions.title] - 固定的标题名称
 * @param [options.tooltipOptions.titleField] - 标题对应的属性字段名称
 * @param [options.tooltipOptions.noTitle] - 不显示标题
 * @param [options.contextmenuItems] - 绑定的右键菜单值，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class ArcGisWfsLayer extends LodGraphicLayer {
    constructor(options?: {
        url: string;
        token?: string;
        where?: string;
        wkid?: number;
        parameters?: any;
        headers?: any;
        proxy?: Cesium.Proxy;
        IdField?: string;
        minimumLevel?: number;
        maximumLevel?: number;
        rectangle: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
        };
        bbox?: number[];
        debuggerTileInfo: boolean;
        opacity?: number;
        zIndex?: number;
        symbol?: {
            type?: GraphicType | string;
            styleOptions: any;
            styleField?: string;
            styleFieldOptions?: any;
            merge?: boolean;
            callback?: (...params: any[]) => any;
        };
        graphicOptions?: any;
        chinaCRS?: ChinaCRS;
        allowDrillPick?: boolean | ((...params: any[]) => any);
        buildings?: {
            bottomHeight?: string;
            cloumn?: string;
            height?: string | number;
        };
        clustering: {
            enabled?: boolean;
            pixelRange?: number;
            clampToGround?: boolean;
            style?: BillboardEntity.StyleOptions | any;
            radius?: number;
            radiusIn?: number;
            fontColor?: string;
            color?: string;
            colorIn?: string;
        };
        popup?: string | Globe.getTemplateHtml_template[] | ((...params: any[]) => any);
        popupOptions?: {
            title?: string;
            titleField?: string;
            noTitle?: string;
        };
        tooltip?: string | Globe.getTemplateHtml_template[] | ((...params: any[]) => any) | any;
        tooltipOptions?: {
            title?: string;
            titleField?: string;
            noTitle?: string;
        };
        contextmenuItems?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 更新where条件后 刷新数据
     * @param where - 筛选条件
     * @returns 无
     */
    setWhere(where: string): void;
}

/**
 * ArcGIS WFS服务图层，
 * 一次性请求加载，适合少量数据时使用。
 * @param [options] - 参数对象，包括以下：
 * @param options.url - ArcGIS服务地址, 示例：'http://server.mars3d.cn/arcgis/rest/services/mars/hefei/MapServer/37',
 * @param [options.token] - 用于通过ArcGIS MapServer服务进行身份验证的ArcGIS令牌。
 * @param [options.where] - 用于筛选数据的where查询条件
 * @param [options.format] - 可以对加载的geojson数据进行格式化或转换操作
 * @param [options.opacity = 1.0] - 透明度（部分图层），取值范围：0.0-1.0
 * @param [options.zIndex] - 控制图层的叠加层次（部分图层），默认按加载的顺序进行叠加，但也可以自定义叠加顺序，数字大的在上面。
 * @param [options.symbol] - 矢量数据的style样式,为Function时是完全自定义的回调处理 symbol(attr, style, feature)
 * @param options.symbol.styleOptions - 数据的Style样式
 * @param [options.symbol.styleField] - 按 styleField 属性设置不同样式。
 * @param [options.symbol.styleFieldOptions] - 按styleField值与对应style样式的键值对象。
 * @param [options.symbol.callback] - 自定义判断处理返回style ，示例：callback: function (attr, entity, styleOpt){  return { color: "#ff0000" };  }
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 * @param [options.buildings] - 标识当前图层为建筑物白膜类型数据
 * @param [options.buildings.bottomHeight] - 建筑物底部高度（如:0） 属性字段名称（如:{bottomHeight}）
 * @param [options.buildings.cloumn = 1] - 层数，楼的实际高度 = height*cloumn
 * @param [options.buildings.height = 3.5] - 层高的  固定层高数值（如:10） 或 属性字段名称（如:{height}）
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定，支持：'all'、数组、字符串模板
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数,还包括：
 * @param [options.popupOptions.title] - 固定的标题名称
 * @param [options.popupOptions.titleField] - 标题对应的属性字段名称
 * @param [options.popupOptions.noTitle] - 不显示标题
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑定，参数与popup属性完全相同。
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数,还包括：
 * @param [options.tooltipOptions.title] - 固定的标题名称
 * @param [options.tooltipOptions.titleField] - 标题对应的属性字段名称
 * @param [options.tooltipOptions.noTitle] - 不显示标题
 * @param [options.contextmenuItems] - 绑定的右键菜单值，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.extent] - 图层自定义定位的矩形区域，与center二选一即可。 {@link Map#flyToExtent}
 * @param options.extent.xmin - 最小经度值, -180 至 180
 * @param options.extent.xmax - 最大经度值, -180 至 180
 * @param options.extent.ymin - 最小纬度值, -90 至 90
 * @param options.extent.ymax - 最大纬度值, -90 至 90
 * @param [options.extent.height = 0] - 矩形高度值
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class ArcGisWfsSingleLayer extends GeoJsonLayer {
    constructor(options?: {
        url: string;
        token?: string;
        where?: string;
        format?: (...params: any[]) => any;
        opacity?: number;
        zIndex?: number;
        symbol?: {
            styleOptions: BillboardEntity.StyleOptions | any | PolylineEntity.StyleOptions | any | PolygonEntity.StyleOptions | any | any;
            styleField?: string;
            styleFieldOptions?: any;
            callback?: (...params: any[]) => any;
        };
        allowDrillPick?: boolean | ((...params: any[]) => any);
        buildings?: {
            bottomHeight?: string;
            cloumn?: string;
            height?: string | number;
        };
        popup?: string | Globe.getTemplateHtml_template[] | ((...params: any[]) => any);
        popupOptions?: {
            title?: string;
            titleField?: string;
            noTitle?: string;
        };
        tooltip?: string | Globe.getTemplateHtml_template[] | ((...params: any[]) => any) | any;
        tooltipOptions?: {
            title?: string;
            titleField?: string;
            noTitle?: string;
        };
        contextmenuItems?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        extent?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
            height?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 更新where条件后 刷新数据
     * @param where - 筛选条件
     * @returns 无
     */
    setWhere(where: string): void;
    /**
     * 加载新数据 或 刷新数据
     * @param [newOptions] - 新设定的参数，会与类的构造参数合并。
     * @param [newOptions.url] - geojson文件或服务url地址
     * @param [newOptions.data] - geojson格式规范数据对象，与url二选一即可。
     * @param [newOptions.类参数] - 包含当前类支持的所有参数
     * @returns 当前对象本身，可以链式调用
     */
    load(newOptions?: {
        url?: string;
        data?: any;
        类参数?: any;
    }): GeoJsonLayer;
}

/**
 * 业务数据(通过API接口获取)图层, 主要是为了封装后简化使用，或直接配置到config.json，也可以自行构造Graphic矢量对象加到GraphicLayer。<br />
 *
 * 样式信息：通过symbol配置graphic类型和样式<br />
 * 坐标信息：建议接口返回中有规范的坐标字段lat\lng\alt或用formatPosition方法自定义解析
 * @param [options] - 参数对象，包括以下：
 * @param [options.url] - geojson文件或服务url地址
 * @param [options.data] - geojson格式规范数据对象，与url二选一即可。
 * @param [options.dataColumn] - 接口返回数据中，对应的业务数据数组所在的读取字段名称，支持多级(用.分割)；如果数据直接返回数组时可以不配置。
 * @param [options.formatData] - 可以对加载的数据进行格式化或转换操作
 * @param [options.lngColumn = "lng"] - 点坐标时，经度值对应的字段名称
 * @param [options.latColumn = "lat"] - 点坐标时，纬度值对应的字段名称
 * @param [options.altColumn = "alt"] - 点坐标时，高度值对应的字段名称
 * @param [options.formatPosition] - 可以对加载的坐标进行格式化或转换操作
 * @param [options.onCreateGraphic] - 解析geojson后，外部自定义方法来创建Graphic对象
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 * @param [options.opacity = 1.0] - 透明度（部分图层），取值范围：0.0-1.0
 * @param [options.zIndex] - 控制图层的叠加层次（部分图层），默认按加载的顺序进行叠加，但也可以自定义叠加顺序，数字大的在上面。
 * @param [options.symbol] - 矢量数据的style样式,为Function时是完全自定义的回调处理 symbol(attr, style, feature)
 * @param [options.symbol.type] - 标识数据类型，默认是根据数据生成 point、polyline、polygon
 * @param options.symbol.styleOptions - Style样式，每种不同类型数据都有不同的样式，具体见各{@link GraphicType}矢量数据的style参数。
 * @param [options.symbol.styleField] - 按 styleField 属性设置不同样式。
 * @param [options.symbol.styleFieldOptions] - 按styleField值与对应style样式的键值对象。
 * @param [options.symbol.merge] - 是否合并并覆盖json中已有的style，默认不合并。
 * @param [options.symbol.callback] - 自定义判断处理返回style ，示例：callback: function (attr, styleOpt){  return { color: "#ff0000" };  }
 * @param [options.graphicOptions] - 默认的graphic的构造参数，每种不同类型数据都有不同的属性，具体见各{@link GraphicType}矢量数据的构造参数。
 * @param [options.clustering] - 设置聚合相关参数（仅对Entity点数据有效）：
 * @param [options.clustering.enabled = false] - 是否开启聚合
 * @param [options.clustering.pixelRange = 20] - 多少像素矩形范围内聚合
 * @param [options.clustering.clampToGround = true] - 是否贴地
 * @param [options.clustering.style] - 聚合点的样式参数
 * @param [options.clustering.radius = 26] - 内置样式时，圆形图标的半径大小（单位：像素）
 * @param [options.clustering.fontColor = '#ffffff'] - 内置样式时，数字的颜色
 * @param [options.clustering.color = 'rgba(181, 226, 140, 0.6)'] - 内置样式时，圆形图标的背景颜色
 * @param [options.clustering.opacity = 0.5] - 内置样式时，圆形图标的透明度
 * @param [options.clustering.borderWidth = 5] - 圆形图标的边框宽度（单位：像素），0不显示
 * @param [options.clustering.borderColor = 'rgba(110, 204, 57, 0.5)'] - 内置样式时，圆形图标的边框颜色
 * @param [options.clustering.borderOpacity = 0.6] - 内置样式时，圆形图标边框的透明度
 * @param [options.clustering.getImage] - 自定义聚合的图标样式，例如：getImage:function(count) { return image}
 * @param [options.proxy] - 加载资源时要使用的代理服务url。
 * @param [options.templateValues] - 一个对象，用于替换Url中的模板值的键/值对
 * @param [options.queryParameters] - 一个对象，其中包含在检索资源时将发送的查询参数。比如：queryParameters: {'access_token': '123-435-456-000'}
 * @param [options.headers] - 一个对象，将发送的其他HTTP标头。比如：headers: { 'X-My-Header': 'valueOfHeader' }
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定，支持：'all'、数组、字符串模板
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数,还包括：
 * @param [options.popupOptions.title] - 固定的标题名称
 * @param [options.popupOptions.titleField] - 标题对应的属性字段名称
 * @param [options.popupOptions.noTitle] - 不显示标题
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑定，参数与popup属性完全相同。
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数,还包括：
 * @param [options.tooltipOptions.title] - 固定的标题名称
 * @param [options.tooltipOptions.titleField] - 标题对应的属性字段名称
 * @param [options.tooltipOptions.noTitle] - 不显示标题
 * @param [options.contextmenuItems] - 绑定的右键菜单值，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.extent] - 图层自定义定位的矩形区域，与center二选一即可。 {@link Map#flyToExtent}
 * @param options.extent.xmin - 最小经度值, -180 至 180
 * @param options.extent.xmax - 最大经度值, -180 至 180
 * @param options.extent.ymin - 最小纬度值, -90 至 90
 * @param options.extent.ymax - 最大纬度值, -90 至 90
 * @param [options.extent.height = 0] - 矩形高度值
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class BusineDataLayer extends GraphicLayer {
    constructor(options?: {
        url?: string;
        data?: any;
        dataColumn?: string;
        formatData?: (...params: any[]) => any;
        lngColumn?: string;
        latColumn?: string;
        altColumn?: string;
        formatPosition?: (...params: any[]) => any;
        onCreateGraphic?: (...params: any[]) => any;
        allowDrillPick?: boolean | ((...params: any[]) => any);
        opacity?: number;
        zIndex?: number;
        symbol?: {
            type?: GraphicType | string;
            styleOptions: any;
            styleField?: string;
            styleFieldOptions?: any;
            merge?: boolean;
            callback?: (...params: any[]) => any;
        };
        graphicOptions?: any;
        clustering?: {
            enabled?: boolean;
            pixelRange?: number;
            clampToGround?: boolean;
            style?: BillboardEntity.StyleOptions | any;
            radius?: number;
            fontColor?: string;
            color?: string;
            opacity?: number;
            borderWidth?: number;
            borderColor?: string;
            borderOpacity?: number;
            getImage?: (...params: any[]) => any;
        };
        proxy?: string;
        templateValues?: any;
        queryParameters?: any;
        headers?: any;
        popup?: string | Globe.getTemplateHtml_template[] | ((...params: any[]) => any);
        popupOptions?: {
            title?: string;
            titleField?: string;
            noTitle?: string;
        };
        tooltip?: string | Globe.getTemplateHtml_template[] | ((...params: any[]) => any) | any;
        tooltipOptions?: {
            title?: string;
            titleField?: string;
            noTitle?: string;
        };
        contextmenuItems?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        extent?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
            height?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 加载新数据 或 刷新数据
     * @param [newOptions] - 新设定的参数，会与类的构造参数合并。
     * @param [newOptions.url] - API接口url地址
     * @param [newOptions.data] - API接口对应的数据对象，与url二选一即可。
     * @param [newOptions.类参数] - 包含当前类支持的所有参数
     * @returns 当前对象本身，可以链式调用
     */
    load(newOptions?: {
        url?: string;
        data?: any;
        类参数?: any;
    }): BusineDataLayer;
}

/**
 * 高德在线POI图层
 * @param [options] - 参数对象，包括以下：
 * @param [options.key = mars3d.Token.gaodeArr] - 高德KEY,在实际项目中请使用自己申请的高德KEY，因为我们的key不保证长期有效。
 * @param [options.minimumLevel = 0] - 图层所支持的最低层级，当地图小于该级别时，平台不去请求服务数据。【影响效率的重要参数】
 * @param [options.maximumLevel] - 图层所支持的最大层级,当地图大于该级别时，平台不去请求服务数据。
 * @param options.rectangle - 瓦片数据的矩形区域范围
 * @param options.rectangle.xmin - 最小经度值, -180 至 180
 * @param options.rectangle.xmax - 最大经度值, -180 至 180
 * @param options.rectangle.ymin - 最小纬度值, -90 至 90
 * @param options.rectangle.ymax - 最大纬度值, -90 至 90
 * @param [options.bbox] - bbox规范的瓦片数据的矩形区域范围,与rectangle二选一即可。
 * @param options.debuggerTileInfo - 是否开启测试显示瓦片信息
 * @param [options.zIndex] - 控制图层的叠加层次（部分图层），默认按加载的顺序进行叠加，但也可以自定义叠加顺序，数字大的在上面。
 * @param [options.opacity = 1.0] - 透明度（部分图层），取值范围：0.0-1.0
 * @param [options.symbol] - 矢量数据的style样式
 * @param options.symbol.styleOptions - 点的Style样式。
 * @param [options.symbol.styleField] - 按 styleField 属性设置不同样式。
 * @param [options.symbol.styleFieldOptions] - 按styleField值与对应style样式的键值对象。
 * @param options.clustering - 设置聚合相关参数：
 * @param [options.clustering.enabled = false] - 是否开启聚合
 * @param [options.clustering.pixelRange = 20] - 多少像素矩形范围内聚合
 * @param [options.clustering.clampToGround = true] - 是否贴地
 * @param [options.clustering.style] - 聚合点的样式参数
 * @param [options.clustering.radius = 28] - 圆形图标的整体半径大小（单位：像素）
 * @param [options.clustering.radiusIn = radius-5] - 圆形图标的内圆半径大小（单位：像素）
 * @param [options.clustering.fontColor = '#ffffff'] - 数字的颜色
 * @param [options.clustering.color = 'rgba(181, 226, 140, 0.6)'] - 圆形图标的背景颜色，默认自动处理
 * @param [options.clustering.colorIn = 'rgba(110, 204, 57, 0.5)'] - 圆形图标的内圆背景颜色，默认自动处理
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.extent] - 图层自定义定位的矩形区域，与center二选一即可。 {@link Map#flyToExtent}
 * @param options.extent.xmin - 最小经度值, -180 至 180
 * @param options.extent.xmax - 最大经度值, -180 至 180
 * @param options.extent.ymin - 最小纬度值, -90 至 90
 * @param options.extent.ymax - 最大纬度值, -90 至 90
 * @param [options.extent.height = 0] - 矩形高度值
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class GeodePoiLayer extends LodGraphicLayer {
    constructor(options?: {
        key?: string[];
        minimumLevel?: number;
        maximumLevel?: number;
        rectangle: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
        };
        bbox?: number[];
        debuggerTileInfo: boolean;
        zIndex?: number;
        opacity?: number;
        symbol?: {
            styleOptions: BillboardEntity.StyleOptions | any | PointEntity.StyleOptions | any;
            styleField?: string;
            styleFieldOptions?: any;
        };
        clustering: {
            enabled?: boolean;
            pixelRange?: number;
            clampToGround?: boolean;
            style?: BillboardEntity.StyleOptions | any;
            radius?: number;
            radiusIn?: number;
            fontColor?: string;
            color?: string;
            colorIn?: string;
        };
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        extent?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
            height?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 获取配置的高德Key（多个时轮询）
     */
    readonly key: string;
}

declare namespace GeoJsonLayer {
    /**
     * 当前类支持的{@link EventType}事件类型
     * @example
     * //绑定监听事件
     * layer.on(mars3d.EventType.load, function (event) {
     *   console.log('矢量数据对象加载完成', event)
     * })
     * @property load - 完成加载，执行所有内部处理后
     * @property add - 添加对象
     * @property remove - 移除对象
     * @property show - 显示了对象
     * @property hide - 隐藏了对象
     * @property click - 左键单击 鼠标事件
     * @property rightClick - 右键单击 鼠标事件
     * @property mouseOver - 鼠标移入 鼠标事件
     * @property mouseOut - 鼠标移出 鼠标事件
     * @property popupOpen - popup弹窗打开后
     * @property popupClose - popup弹窗关闭
     * @property tooltipOpen - tooltip弹窗打开后
     * @property tooltipClose - tooltip弹窗关闭
     * @property contextMenuOpen - 右键菜单 打开后
     * @property contextMenuClose - 右键菜单 关闭
     * @property contextMenuClick - 右键菜单 单击某一项后
     * @property drawStart - 开始绘制 标绘事件
     * @property drawMouseMove - 正在移动鼠标中，绘制过程中鼠标移动了点 标绘事件
     * @property drawAddPoint - 绘制过程中增加了点 标绘事件
     * @property drawRemovePoint - 绘制过程中删除了最后一个点 标绘事件
     * @property drawCreated - 创建完成 标绘事件
     * @property editStart - 开始编辑 标绘事件
     * @property editMouseDown - 移动鼠标按下左键（LEFT_DOWN）标绘事件
     * @property editMouseMove - 正在移动鼠标中，正在编辑拖拽修改点中（MOUSE_MOVE） 标绘事件
     * @property editMovePoint - 编辑修改了点（LEFT_UP）标绘事件
     * @property editRemovePoint - 编辑删除了点 标绘事件
     * @property editStyle - 图上编辑修改了相关style属性 标绘事件
     * @property editStop - 停止编辑 标绘事件
     */
    type EventType = {
        load: string;
        add: string;
        remove: string;
        show: string;
        hide: string;
        click: string;
        rightClick: string;
        mouseOver: string;
        mouseOut: string;
        popupOpen: string;
        popupClose: string;
        tooltipOpen: string;
        tooltipClose: string;
        contextMenuOpen: string;
        contextMenuClose: string;
        contextMenuClick: string;
        drawStart: string;
        drawMouseMove: string;
        drawAddPoint: string;
        drawRemovePoint: string;
        drawCreated: string;
        editStart: string;
        editMouseDown: string;
        editMouseMove: string;
        editMovePoint: string;
        editRemovePoint: string;
        editStyle: string;
        editStop: string;
    };
}

/**
 * 加载展示 GeoJSON数据 的图层
 * @param [options] - 参数对象，包括以下：
 * @param [options.url] - geojson文件或服务url地址
 * @param [options.data] - geojson格式规范数据对象，与url二选一即可。
 * @param [options.crs] - 原始数据的坐标系，如'EPSG:3857'
 * @param [options.chinaCRS] - 标识数据的国内坐标系（用于自动纠偏或加偏）
 * @param [options.format] - 可以对加载的geojson数据进行格式化或转换操作
 * @param [options.onCreateGraphic] - 解析geojson后，外部自定义方法来创建Graphic对象
 * @param [options.mask] - 标识是否绘制区域边界的反选遮罩层，也可以传入object配置范围： { xmin: 73.0, xmax: 136.0, ymin: 3.0, ymax: 59.0 }
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 * @param [options.opacity = 1.0] - 透明度（部分图层），取值范围：0.0-1.0
 * @param [options.zIndex] - 控制图层的叠加层次（部分图层），默认按加载的顺序进行叠加，但也可以自定义叠加顺序，数字大的在上面。
 * @param [options.symbol] - 矢量数据的style样式,为Function时是完全自定义的回调处理 symbol(attr, style, feature)
 * @param [options.symbol.type] - 标识数据类型，默认是根据数据生成 point、polyline、polygon
 * @param options.symbol.styleOptions - Style样式，每种不同类型数据都有不同的样式，具体见各{@link GraphicType}矢量数据的style参数。
 * @param [options.symbol.styleField] - 按 styleField 属性设置不同样式。
 * @param [options.symbol.styleFieldOptions] - 按styleField值与对应style样式的键值对象。
 * @param [options.symbol.merge] - 是否合并并覆盖json中已有的style，默认不合并。
 * @param [options.symbol.callback] - 自定义判断处理返回style ，示例：callback: function (attr, styleOpt){  return { color: "#ff0000" };  }
 * @param [options.graphicOptions] - 默认的graphic的构造参数，每种不同类型数据都有不同的属性，具体见各{@link GraphicType}矢量数据的构造参数。
 * @param [options.buildings] - 标识当前图层为建筑物白膜类型数据
 * @param [options.buildings.bottomHeight] - 建筑物底部高度（如:0） 属性字段名称（如:{bottomHeight}）
 * @param [options.buildings.cloumn = 1] - 层数，楼的实际高度 = height*cloumn
 * @param [options.buildings.height = 3.5] - 层高的  固定层高数值（如:10） 或 属性字段名称（如:{height}）
 * @param [options.proxy] - 加载资源时要使用的代理服务url。
 * @param [options.templateValues] - 一个对象，用于替换Url中的模板值的键/值对
 * @param [options.queryParameters] - 一个对象，其中包含在检索资源时将发送的查询参数。比如：queryParameters: {'access_token': '123-435-456-000'}
 * @param [options.headers] - 一个对象，将发送的其他HTTP标头。比如：headers: { 'X-My-Header': 'valueOfHeader' }
 * @param [options.clustering] - 设置聚合相关参数（仅对Entity点数据有效）：
 * @param [options.clustering.enabled = false] - 是否开启聚合
 * @param [options.clustering.pixelRange = 20] - 多少像素矩形范围内聚合
 * @param [options.clustering.clampToGround = true] - 是否贴地
 * @param [options.clustering.style] - 聚合点的样式参数
 * @param [options.clustering.radius = 26] - 内置样式时，圆形图标的半径大小（单位：像素）
 * @param [options.clustering.fontColor = '#ffffff'] - 内置样式时，数字的颜色
 * @param [options.clustering.color = 'rgba(181, 226, 140, 0.6)'] - 内置样式时，圆形图标的背景颜色
 * @param [options.clustering.opacity = 0.5] - 内置样式时，圆形图标的透明度
 * @param [options.clustering.borderWidth = 5] - 圆形图标的边框宽度（单位：像素），0不显示
 * @param [options.clustering.borderColor = 'rgba(110, 204, 57, 0.5)'] - 内置样式时，圆形图标的边框颜色
 * @param [options.clustering.borderOpacity = 0.6] - 内置样式时，圆形图标边框的透明度
 * @param [options.clustering.getImage] - 自定义聚合的图标样式，例如：getImage:function(count) { return image}
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定，支持：'all'、数组、字符串模板
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数,还包括：
 * @param [options.popupOptions.title] - 固定的标题名称
 * @param [options.popupOptions.titleField] - 标题对应的属性字段名称
 * @param [options.popupOptions.noTitle] - 不显示标题
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑定，参数与popup属性完全相同。
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数,还包括：
 * @param [options.tooltipOptions.title] - 固定的标题名称
 * @param [options.tooltipOptions.titleField] - 标题对应的属性字段名称
 * @param [options.tooltipOptions.noTitle] - 不显示标题
 * @param [options.contextmenuItems] - 绑定的右键菜单值，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.extent] - 图层自定义定位的矩形区域，与center二选一即可。 {@link Map#flyToExtent}
 * @param options.extent.xmin - 最小经度值, -180 至 180
 * @param options.extent.xmax - 最大经度值, -180 至 180
 * @param options.extent.ymin - 最小纬度值, -90 至 90
 * @param options.extent.ymax - 最大纬度值, -90 至 90
 * @param [options.extent.height = 0] - 矩形高度值
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class GeoJsonLayer extends GraphicLayer {
    constructor(options?: {
        url?: string;
        data?: any;
        crs?: string;
        chinaCRS?: ChinaCRS;
        format?: (...params: any[]) => any;
        onCreateGraphic?: (...params: any[]) => any;
        mask?: boolean | any;
        allowDrillPick?: boolean | ((...params: any[]) => any);
        opacity?: number;
        zIndex?: number;
        symbol?: {
            type?: GraphicType | string;
            styleOptions: any;
            styleField?: string;
            styleFieldOptions?: any;
            merge?: boolean;
            callback?: (...params: any[]) => any;
        };
        graphicOptions?: any;
        buildings?: {
            bottomHeight?: string;
            cloumn?: string;
            height?: string | number;
        };
        proxy?: string;
        templateValues?: any;
        queryParameters?: any;
        headers?: any;
        clustering?: {
            enabled?: boolean;
            pixelRange?: number;
            clampToGround?: boolean;
            style?: BillboardEntity.StyleOptions | any;
            radius?: number;
            fontColor?: string;
            color?: string;
            opacity?: number;
            borderWidth?: number;
            borderColor?: string;
            borderOpacity?: number;
            getImage?: (...params: any[]) => any;
        };
        popup?: string | Globe.getTemplateHtml_template[] | ((...params: any[]) => any);
        popupOptions?: {
            title?: string;
            titleField?: string;
            noTitle?: string;
        };
        tooltip?: string | Globe.getTemplateHtml_template[] | ((...params: any[]) => any) | any;
        tooltipOptions?: {
            title?: string;
            titleField?: string;
            noTitle?: string;
        };
        contextmenuItems?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        extent?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
            height?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 加载新数据 或 刷新数据
     * @param [newOptions] - 新设定的参数，会与类的构造参数合并。
     * @param [newOptions.url] - geojson文件或服务url地址
     * @param [newOptions.data] - geojson格式规范数据对象，与url二选一即可。
     * @param [newOptions.类参数] - 包含当前类支持的所有参数
     * @returns 当前对象本身，可以链式调用
     */
    load(newOptions?: {
        url?: string;
        data?: any;
        类参数?: any;
    }): GeoJsonLayer;
}

/**
 * 矢量数据图层组，主要用于 多图层的标绘
 * @param [options] - 参数对象，包括以下：
 * @param [options.layers] - 子图层数组，每个子图层的配置见按各类型图层配置即可。
 * @param [options.defaultLayer] - 默认图层的图层名称
 * @param [options.hasEdit = false] - 是否自动激活编辑（true时，单击后自动激活编辑）
 * @param [options.isAutoEditing = true] - 完成标绘时是否自动启动编辑(需要hasEdit:true时)
 * @param [options.isContinued = false] - 是否连续标绘
 * @param [options.isRestorePositions = false] - 在标绘和编辑结束时，是否将坐标还原为普通值，true: 停止编辑时会有闪烁，但效率要好些。
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class GraphicGroupLayer extends GroupLayer {
    constructor(options?: {
        layers?: GraphicLayer[];
        defaultLayer?: string;
        hasEdit?: boolean;
        isAutoEditing?: boolean;
        isContinued?: boolean;
        isRestorePositions?: boolean;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 是否可以编辑
     */
    hasEdit: boolean;
    /**
     * 完成标绘时是否自动启动编辑(需要hasEdit:true时)
     */
    isAutoEditing: boolean;
    /**
     * 当前激活的图层
     */
    selectedLayer: GraphicLayer;
    /**
     * 判断图层是否激活状态
     * @param layer - 图层
     * @returns 是否激活状态
     */
    isActivate(layer: GraphicLayer): boolean;
    /**
     * 创建并添加指定名称的图层
     * @param name - 图层名称
     * @returns 创建完成的图层
     */
    createLayer(name: string): GraphicLayer;
    /**
     * 删除指定名称的图层
     * @param name - 图层名称
     * @returns 是否删除成功
     */
    deleteLayer(name: string): boolean;
    /**
     * 删除所有没有数据的矢量图层
     * @returns 当前对象本身，可以链式调用
     */
    deleteEmptyLayer(): GraphicGroupLayer;
    /**
     * 移动矢量对象到新分组
     * @param graphic - 矢量对象
     * @param layer - 图层
     * @returns 无
     */
    moveToLayer(graphic: BaseGraphic | any, layer: GraphicLayer): void;
    /**
     * 获取图层内 所有矢量数据
     * @returns 矢量数据数组
     */
    getGraphics(): BaseGraphic[];
    /**
     * 根据id或uuid取矢量数据对象
     * @param id - 矢量数据id或uuid
     * @returns 矢量数据对象
     */
    getGraphicById(id: string | number): BaseGraphic | any;
    /**
     * 遍历所有矢量数据并将其作为参数传递给回调函数
     * @param method - 回调方法
     * @param [context] - 侦听器的上下文(this关键字将指向的对象)。
     * @returns 当前对象本身,可以链式调用
     */
    eachGraphic(method: (...params: any[]) => any, context?: any): GraphicGroupLayer;
    /**
     * 清除图层内所有矢量数据
     * @param [hasDestroy = false] - 是否释放矢量对象
     * @returns 无
     */
    clear(hasDestroy?: boolean): void;
    /**
     * 将图层数据导出为GeoJSON格式规范对象。
     * @param [options] - 参数对象:
     * @param [options.noAlt] - 不导出高度值
     * @param [options.stopEdit = false] - 是否停止绘制或编辑
     * @returns GeoJSON格式规范对象
     */
    toGeoJSON(options?: {
        noAlt?: boolean;
        stopEdit?: boolean;
    }): any;
    /**
     * 加载转换GeoJSON格式规范数据为Graphic后加载到图层中。
     * @param geojson - GeoJSON格式规范数据
     * @param [options] - 加载控制参数,包含：
     * @param [options.clear = false] - 是否清除图层已有数据
     * @param [options.flyTo = false] - 是否加载完成后进行飞行到数据区域
     * @param [options.style] - 可以设置指定style样式
     * @param [options.layer] - 指定导入所有数据到指定的图层
     * @returns 转换后的Graphic对象数组
     */
    loadGeoJSON(geojson: string | any, options?: {
        clear?: boolean;
        flyTo?: boolean;
        style?: any;
        layer?: string;
    }): BaseGraphic[];
    /**
     * 获取图层内所有数据的 矩形边界值
     * @param [isFormat = false] - 是否格式化，格式化时示例： { xmin: 73.16895, xmax: 134.86816, ymin: 12.2023, ymax: 54.11485 }
     * @returns isFormat：true时，返回格式化对象，isFormat：false时返回Cesium.Rectangle对象
     */
    getRectangle(isFormat?: boolean): Cesium.Rectangle | any;
    /**
     * 开始绘制矢量数据，绘制的数据会加载在当前图层。
     * @param options - 绘制参数，包含：
     * @param options.type - 类型
     * @param [options.style] - 矢量数据样式，具体参考支持 {@link GraphicType}查询对应type的类
     * @param [options.attr] - 矢量数据的 属性信息，可以任意附加属性。
     * @param [options.success] - 绘制创建完成的回调方法，同drawCreated事件，例如： success: function (graphic){  }
     * //以下为Entity支持的构造参数
     * @param [options.name] - 矢量数据名称
     * @param [options.maxPointNum] - 线面数据时限定的最大坐标个数
     * @param [options.drawShow = true] - 绘制时，是否自动隐藏entity，可避免拾取坐标存在问题。
     * @param [options.addHeight] - 在绘制时，在绘制点的基础上增加的高度值
     * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
     * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
     * @returns 绘制创建完成的Promise,等价于success参数
     */
    startDraw(options: {
        type: GraphicType | string;
        style?: any;
        attr?: any;
        success?: (...params: any[]) => any;
        name?: string;
        maxPointNum?: number;
        drawShow?: boolean;
        addHeight?: number;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
    }): Promise<BaseGraphic | any>;
    /**
     * 停止绘制，如有未完成的绘制会自动删除
     * @returns 当前对象本身,可以链式调用
     */
    stopDraw(): GraphicGroupLayer;
    /**
     * 激活编辑，绑定相关处理，同 hasEdit=true
     * @returns 当前对象本身,可以链式调用
     */
    activateEdit(): GraphicGroupLayer;
    /**
     * 释放编辑，解除绑定相关事件，同 hasEdit=false
     * @returns 当前对象本身,可以链式调用
     */
    disableEdit(): GraphicGroupLayer;
}

declare namespace GraphicLayer {
    /**
     * 当前类支持的{@link EventType}事件类型
     * @example
     * //绑定监听事件
     * layer.on(mars3d.EventType.load, function (event) {
     *   console.log('矢量数据对象加载完成', event)
     * })
     * @property addGraphic - 添加了矢量对象
     * @property removeGraphic - 移除了矢量对象
     * @property addLayer - 图层本身被添加
     * @property removeLayer - 图层本身被移除
     * @property show - 图层本身显示了
     * @property hide - 图层本身隐藏了
     * @property click - 左键单击 鼠标事件
     * @property rightClick - 右键单击 鼠标事件
     * @property mouseOver - 鼠标移入 鼠标事件
     * @property mouseOut - 鼠标移出 鼠标事件
     * @property popupOpen - popup弹窗打开后
     * @property popupClose - popup弹窗关闭
     * @property tooltipOpen - tooltip弹窗打开后
     * @property tooltipClose - tooltip弹窗关闭
     * @property contextMenuOpen - 右键菜单 打开后
     * @property contextMenuClose - 右键菜单 关闭
     * @property contextMenuClick - 右键菜单 单击某一项后
     * @property drawStart - 开始绘制 标绘事件
     * @property drawMouseMove - 正在移动鼠标中，绘制过程中鼠标移动了点 标绘事件
     * @property drawAddPoint - 绘制过程中增加了点 标绘事件
     * @property drawRemovePoint - 绘制过程中删除了最后一个点 标绘事件
     * @property drawCreated - 创建完成 标绘事件
     * @property editStart - 开始编辑 标绘事件
     * @property editMouseDown - 移动鼠标按下左键（LEFT_DOWN）标绘事件
     * @property editMouseMove - 正在移动鼠标中，正在编辑拖拽修改点中（MOUSE_MOVE） 标绘事件
     * @property editMovePoint - 编辑修改了点（LEFT_UP）标绘事件
     * @property editAddPoint - 编辑新增了点 标绘事件
     * @property editRemovePoint - 编辑删除了点 标绘事件
     * @property editStyle - 图上编辑修改了相关style属性 标绘事件
     * @property editStop - 停止编辑 标绘事件
     */
    type EventType = {
        addGraphic: string;
        removeGraphic: string;
        addLayer: string;
        removeLayer: string;
        show: string;
        hide: string;
        click: string;
        rightClick: string;
        mouseOver: string;
        mouseOut: string;
        popupOpen: string;
        popupClose: string;
        tooltipOpen: string;
        tooltipClose: string;
        contextMenuOpen: string;
        contextMenuClose: string;
        contextMenuClick: string;
        drawStart: string;
        drawMouseMove: string;
        drawAddPoint: string;
        drawRemovePoint: string;
        drawCreated: string;
        editStart: string;
        editMouseDown: string;
        editMouseMove: string;
        editMovePoint: string;
        editAddPoint: string;
        editRemovePoint: string;
        editStyle: string;
        editStop: string;
    };
}

/**
 * 矢量数据图层
 * @param [options] - 参数对象，包括以下：
 * @param [options.data] - 需要自动加载的数据，内部自动生成Graphic对象。{@link GraphicUtil#.create}
 * @param [options.hasEdit = false] - 是否自动激活编辑（true时，单击后自动激活编辑）
 * @param [options.isAutoEditing = true] - 完成标绘时是否自动启动编辑(需要hasEdit:true时)
 * @param [options.isContinued = false] - 是否连续标绘,联系标绘状态下无法编辑已有对象。
 * @param [options.isRestorePositions = false] - 在标绘和编辑结束时，是否将坐标还原为普通值，true: 停止编辑时会有闪烁，但效率要好些。
 * @param [options.zIndex] - 控制图层的叠加层次，默认按加载的顺序进行叠加，但也可以自定义叠加顺序，数字大的在上面(只对同类型图层间有效，且只有贴地对象有效)。
 * @param [options.symbol] - 矢量数据的style样式,为Function时是完全自定义的回调处理 symbol(attr, style, feature)
 * @param [options.symbol.type] - 标识数据类型，默认是根据数据生成 point、polyline、polygon
 * @param options.symbol.styleOptions - Style样式，每种不同类型数据都有不同的样式，具体见各{@link GraphicType}矢量数据的style参数。
 * @param [options.symbol.styleField] - 按 styleField 属性设置不同样式。
 * @param [options.symbol.styleFieldOptions] - 按styleField值与对应style样式的键值对象。
 * @param [options.symbol.callback] - 自定义判断处理返回style ，示例：callback: function (attr, styleOpt){  return { color: "#ff0000" };  }
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 * @param [options.clustering] - 设置聚合相关参数（仅对Entity点数据有效）：
 * @param [options.clustering.enabled = false] - 是否开启聚合
 * @param [options.clustering.pixelRange = 20] - 多少像素矩形范围内聚合
 * @param [options.clustering.clampToGround = true] - 是否贴地
 * @param [options.clustering.style] - 聚合点的样式参数
 * @param [options.clustering.radius = 26] - 内置样式时，圆形图标的半径大小（单位：像素）
 * @param [options.clustering.fontColor = '#ffffff'] - 内置样式时，数字的颜色
 * @param [options.clustering.color = 'rgba(181, 226, 140, 0.6)'] - 内置样式时，圆形图标的背景颜色
 * @param [options.clustering.opacity = 0.5] - 内置样式时，圆形图标的透明度
 * @param [options.clustering.borderWidth = 5] - 圆形图标的边框宽度（单位：像素），0不显示
 * @param [options.clustering.borderColor = 'rgba(110, 204, 57, 0.5)'] - 内置样式时，圆形图标的边框颜色
 * @param [options.clustering.borderOpacity = 0.6] - 内置样式时，圆形图标边框的透明度
 * @param [options.clustering.getImage] - 自定义聚合的图标样式，例如：getImage:function(count) { return image}
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定，支持：'all'、数组、字符串模板
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数,还包括：
 * @param [options.popupOptions.title] - 固定的标题名称
 * @param [options.popupOptions.titleField] - 标题对应的属性字段名称
 * @param [options.popupOptions.noTitle] - 不显示标题
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑定，参数与popup属性完全相同。
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数,还包括：
 * @param [options.tooltipOptions.title] - 固定的标题名称
 * @param [options.tooltipOptions.titleField] - 标题对应的属性字段名称
 * @param [options.tooltipOptions.noTitle] - 不显示标题
 * @param [options.contextmenuItems] - 绑定的右键菜单值，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.extent] - 图层自定义定位的矩形区域，与center二选一即可。 {@link Map#flyToExtent}
 * @param options.extent.xmin - 最小经度值, -180 至 180
 * @param options.extent.xmax - 最大经度值, -180 至 180
 * @param options.extent.ymin - 最小纬度值, -90 至 90
 * @param options.extent.ymax - 最大纬度值, -90 至 90
 * @param [options.extent.height = 0] - 矩形高度值
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class GraphicLayer extends BaseGraphicLayer {
    constructor(options?: {
        data?: any | any;
        hasEdit?: boolean;
        isAutoEditing?: boolean;
        isContinued?: boolean;
        isRestorePositions?: boolean;
        zIndex?: number;
        symbol?: {
            type?: GraphicType | string;
            styleOptions: any;
            styleField?: string;
            styleFieldOptions?: any;
            callback?: (...params: any[]) => any;
        };
        allowDrillPick?: boolean | ((...params: any[]) => any);
        clustering?: {
            enabled?: boolean;
            pixelRange?: number;
            clampToGround?: boolean;
            style?: BillboardEntity.StyleOptions | any;
            radius?: number;
            fontColor?: string;
            color?: string;
            opacity?: number;
            borderWidth?: number;
            borderColor?: string;
            borderOpacity?: number;
            getImage?: (...params: any[]) => any;
        };
        popup?: string | Globe.getTemplateHtml_template[] | ((...params: any[]) => any);
        popupOptions?: {
            title?: string;
            titleField?: string;
            noTitle?: string;
        };
        tooltip?: string | Globe.getTemplateHtml_template[] | ((...params: any[]) => any) | any;
        tooltipOptions?: {
            title?: string;
            titleField?: string;
            noTitle?: string;
        };
        contextmenuItems?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        extent?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
            height?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 完成标绘时是否自动启动编辑(需要hasEdit:true时)
     */
    isAutoEditing: boolean;
    /**
     * 是否连续标绘
     */
    isContinued: boolean;
    /**
     * 是否聚合(点数据时)
     */
    clustering: boolean;
    /**
     * 当加载Entity类型数据的内部Cesium容器 {@link BaseEntity}
     */
    readonly dataSource: Cesium.CustomDataSource;
    /**
     * 当加载普通 primitive类型数据的内部Cesium容器 {@link BasePrimitive}
     */
    primitiveCollection: Cesium.PrimitiveCollection;
    /**
     * 当加载 DivGraphic 数据的内部DOM容器 {@link DivGraphic}
     */
    readonly container: HTMLDivElement;
    /**
     * 当加载 DivGraphic 数据的DIV是否可以鼠标交互，为false时可以穿透操作及缩放地图，但无法进行鼠标交互及触发相关事件。
     */
    pointerEvents: boolean;
    /**
     * 是否可以调整图层顺序（在同类型图层间）
     */
    readonly hasZIndex: boolean;
    /**
     * 图层顺序，数字大的在上面。<br/>
     * 只对 同类型(Entity/Primitive) + 贴地(clampToGround: true) 矢量对象间有效
     */
    zIndex: number;
    /**
     * 将当前图层在map中层级进行 置顶
     * @returns 无
     */
    toTop(): void;
    /**
     * 将当前图层在map中层级进行 置底
     * @returns 无
     */
    toBottom(): void;
    /**
     * 图层内的Graphic矢量数据个数
     */
    readonly length: number;
    /**
     * 图层内的Graphic集合对象
     */
    readonly graphics: BaseGraphic[] | any[];
    /**
     * 是否自动激活编辑（true时，单击后自动激活编辑）
     */
    hasEdit: boolean;
    /**
     * 是否正在编辑状态
     */
    readonly isEditing: boolean;
    /**
     * 是否允许鼠标穿透拾取
     */
    allowDrillPick: boolean | ((...params: any[]) => any);
    /**
     * 对象从地图上移除的创建钩子方法，
     * 每次remove时都会调用
     * @returns 无
     */
    _removedHook(): void;
    /**
     * 获取图层内所有数据的 矩形边界值
     * @param [isFormat = false] - 是否格式化，格式化时示例： { xmin: 73.16895, xmax: 134.86816, ymin: 12.2023, ymax: 54.11485 }
     * @returns isFormat：true时，返回格式化对象，isFormat：false时返回Cesium.Rectangle对象
     */
    getRectangle(isFormat?: boolean): Cesium.Rectangle | any;
    /**
     * 获取图层内所有数据的  最大高度
     * @returns 高度
     */
    getMaxHeight(): number;
    /**
     * 将图层数据导出为GeoJSON格式规范对象。
     * @param [options] - 参数对象:
     * @param [options.noAlt] - 不导出高度值
     * @param [options.stopEdit = false] - 是否停止绘制或编辑
     * @returns GeoJSON格式规范对象
     */
    toGeoJSON(options?: {
        noAlt?: boolean;
        stopEdit?: boolean;
    }): any;
    /**
     * 加载转换GeoJSON格式规范数据为Graphic后加载到图层中。
     * @param geojson - GeoJSON格式规范数据
     * @param [options] - 加载控制参数,包含：
     * @param [options.clear = false] - 是否清除图层已有数据
     * @param [options.flyTo = false] - 是否加载完成后进行飞行到数据区域
     * @param [options.type] - 转为指定的类型
     * @param [options.style] - 可以设置指定style样式,每种不同类型数据都有不同的样式，具体见各矢量数据的style参数。{@link GraphicType}
     * @param [options.crs] - 原始数据的坐标系，如'EPSG:3857' （可以从 {@link http://epsg.io }查询）
     * @param [options.onEachFeature] - 创建每个Graphic前的回调
     * @returns 转换后的Graphic对象数组
     */
    loadGeoJSON(geojson: string | any, options?: {
        clear?: boolean;
        flyTo?: boolean;
        type?: GraphicType | string;
        style?: any;
        crs?: string;
        onEachFeature?: (...params: any[]) => any;
    }): BaseGraphic[];
    /**
     * 设置透明度 , 非全部矢量数据都支持，具体需要对应Graphic支持才有效
     * @param value - 透明度
     * @returns 无
     */
    setOpacity(value: number): void;
    /**
     * 添加Graphic矢量数据
     * @param graphic - 矢量数据
     * @returns 添加后的Graphic对象
     */
    addGraphic(graphic: BaseGraphic | BaseGraphic[] | any): BaseGraphic | BaseGraphic[];
    /**
     * 移除Graphic矢量数据
     * @param graphic - 矢量数据
     * @param [hasDestroy = false] - 是否释放矢量对象
     * @returns 当前对象本身，可以链式调用
     */
    removeGraphic(graphic: BaseGraphic | any, hasDestroy?: boolean): GraphicLayer;
    /**
     * 根据id或uuid取矢量数据对象
     * @param id - 矢量数据id或uuid
     * @returns 矢量数据对象
     */
    getGraphicById(id: string | number): BaseGraphic | any;
    /**
     * 根据 指定属性 获取 单个矢量数据对象（多个匹配时取首个）
     * @param attrValue - 属性值
     * @param [attrName = 'id'] - 属性键
     * @returns 矢量数据对象
     */
    getGraphicByAttr(attrValue: string | number, attrName?: string): BaseGraphic | any;
    /**
     * 根据 指定属性 获取  矢量数据对象 数组
     * @param attrValue - 属性值
     * @param [attrName = 'id'] - 属性键
     * @returns 矢量数据对象
     */
    getGraphicsByAttr(attrValue: string | number, attrName?: string): BaseGraphic[];
    /**
     * 根据 指定style样式 获取  矢量数据对象 数组
     * @param styleName - style内的字段名称
     * @param styleVal - 属性值
     * @returns 矢量数据对象
     */
    getGraphicsByStyle(styleName: string, styleVal: string | number | boolean | any): BaseGraphic[];
    /**
     * 遍历所有矢量数据并将其作为参数传递给回调函数
     * @param method - 回调方法
     * @param [context] - 侦听器的上下文(this关键字将指向的对象)。
     * @returns 当前对象本身,可以链式调用
     */
    eachGraphic(method: (...params: any[]) => any, context?: any): GraphicLayer;
    /**
     * 获取图层内 所有矢量数据
     * @param [hasPrivate = false] - 是否取私有的graphic
     * @returns 矢量数据数组
     */
    getGraphics(hasPrivate?: boolean): BaseGraphic[] | any[];
    /**
     * 清除图层内所有矢量数据
     * @param [hasDestroy = true] - 是否释放矢量对象
     * @returns 无
     */
    clear(hasDestroy?: boolean): void;
    /**
     * 异步计算更新坐标进行贴地(或贴模型)
     * @param [options = {}] - 参数对象:
     * @param [options.has3dtiles = auto] - 是否在3dtiles模型上分析（模型分析较慢，按需开启）,默认内部根据点的位置自动判断（但可能不准）
     * @param [options.objectsToExclude] - 贴模型分析时，排除的不进行贴模型计算的模型对象，可以是： primitives, entities, 或 3D Tiles features
     * @param options.endItem - 每计算完成1个graphic高度后 的回调方法
     * @param options.end - 异步计算高度完成所有graphic后 的回调方法
     * @returns 绘制创建完成的Promise
     */
    autoSurfaceHeight(options?: {
        has3dtiles?: boolean;
        objectsToExclude?: any;
        endItem: (...params: any[]) => any;
        end: (...params: any[]) => any;
    }): Promise<BaseGraphic | any>;
    /**
     * 开始绘制矢量数据，绘制的数据会加载在当前图层。
     * @example
     * //写法一，使用Promise
     *     graphicLayer.startDraw({
     *       type: "point",
     *       style: { pixelSize: 12, color: "#3388ff" },
     *     })
     *     .then(function (graphic) {
     *       console.log("绘制矢量对象完成", graphic);
     *     });
     *
     *     //写法二，使用success回调方法参数
     *     graphicLayer.startDraw({
     *       type: "point",
     *       style: { pixelSize: 12, color: "#3388ff" },
     *       success: function (graphic){
     *         console.log("绘制矢量对象完成", graphic);
     *       }
     *     })
     *
     *     //写法三，在图层全局监听完成事件
     *     graphicLayer.on(mars3d.EventType.drawCreated, function (e) {
     *       console.log("绘制矢量对象完成", e);
     *     });
     *     graphicLayer.startDraw({
     *       type: "point",
     *       style: { pixelSize: 12, color: "#3388ff" }
     *     })
     * @param options - 绘制参数，包含：
     * @param options.type - 类型
     * @param [options.style] - 矢量数据样式，具体参考支持 {@link GraphicType}查询对应type的类
     * @param [options.attr] - 矢量数据的 属性信息，可以任意附加属性。
     * @param [options.success] - 绘制创建完成的回调方法，同drawCreated事件，例如： success: function (graphic){  }
     * //以下为Entity支持的构造参数
     * @param [options.name] - 矢量数据名称
     * @param [options.maxPointNum] - 线面数据时限定的最大坐标个数
     * @param [options.drawShow = true] - 绘制时，是否自动隐藏entity，可避免拾取坐标存在问题。
     * @param [options.addHeight] - 在绘制时，在绘制点的基础上增加的高度值
     * @param [options.availability] - 与该对象关联的可用性(如果有的话)。
     * @param [options.description] - 指定此实体的HTML描述的字符串属性（infoBox中展示）。
     * @returns 绘制创建完成的Promise,等价于success参数
     */
    startDraw(options: {
        type: GraphicType | string;
        style?: any;
        attr?: any;
        success?: (...params: any[]) => any;
        name?: string;
        maxPointNum?: number;
        drawShow?: boolean;
        addHeight?: number;
        availability?: Cesium.TimeIntervalCollection;
        description?: Cesium.Property | string;
    }): Promise<BaseGraphic | any>;
    /**
     * 完成绘制和编辑，如有未完成的绘制会自动完成。
     * 在移动端需要调用此方法来类似PC端双击结束。
     * @returns 是否正常结束了矢量对象绘制
     */
    endDraw(): boolean;
    /**
     * 停止绘制，如有未完成的绘制会自动删除
     * @returns 是否清除了未完成的对象
     */
    stopDraw(): boolean;
    /**
     * 清除正在绘制
     * @returns 是否清除了对象
     */
    clearDrawing(): boolean;
    /**
     * 激活编辑，绑定相关处理，同 hasEdit=true
     * @returns 当前对象本身,可以链式调用
     */
    activateEdit(): GraphicLayer;
    /**
     * 释放编辑，解除绑定相关事件，同 hasEdit=false
     * @returns 当前对象本身,可以链式调用
     */
    disableEdit(): GraphicLayer;
    /**
     * 激活编辑指定的矢量数据
     * @param graphic - 需要激活编辑的矢量数据
     * @param [event] - 内部使用，传递事件
     * @returns 当前对象本身,可以链式调用
     */
    startEditing(graphic: BaseGraphic | any, event?: any): GraphicLayer;
    /**
     * 停止编辑，释放正在编辑的对象。
     * @returns 当前对象本身,可以链式调用
     */
    stopEditing(): GraphicLayer;
}

/**
 * 经纬网
 * @param [options] - 参数对象，包括以下：
 * @param [options.numLines = 10] - 网格数
 * @param [options.lineStyle] - 线的样式
 * @param [options.labelStyle] - 文本的样式
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.extent] - 图层自定义定位的矩形区域，与center二选一即可。 {@link Map#flyToExtent}
 * @param options.extent.xmin - 最小经度值, -180 至 180
 * @param options.extent.xmax - 最大经度值, -180 至 180
 * @param options.extent.ymin - 最小纬度值, -90 至 90
 * @param options.extent.ymax - 最大纬度值, -90 至 90
 * @param [options.extent.height = 0] - 矩形高度值
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class GraticuleLayer extends BaseLayer {
    constructor(options?: {
        numLines?: number;
        lineStyle?: PolylinePrimitive.StyleOptions | any;
        labelStyle?: LabelEntity.StyleOptions | any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        extent?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
            height?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 对象添加到地图前创建一些对象的钩子方法，
     * 只会调用一次
     * @returns 无
     */
    _mountedHook(): void;
}

declare namespace LodGraphicLayer {
    /**
     * 当前类支持的{@link EventType}事件类型
     * @example
     * //绑定监听事件
     * layer.on(mars3d.EventType.addGraphic, function (event) {
     *   console.log('添加了矢量数据', event)
     * })
     * @property add - 添加对象
     * @property remove - 移除对象
     * @property show - 显示了对象
     * @property hide - 隐藏了对象
     * @property click - 左键单击 鼠标事件
     * @property rightClick - 右键单击 鼠标事件
     * @property mouseOver - 鼠标移入 鼠标事件
     * @property mouseOut - 鼠标移出 鼠标事件
     * @property popupOpen - popup弹窗打开后
     * @property popupClose - popup弹窗关闭
     * @property tooltipOpen - tooltip弹窗打开后
     * @property tooltipClose - tooltip弹窗关闭
     * @property addGraphic - 添加矢量数据时
     * @property removeGraphic - 移除矢量数据时
     */
    type EventType = {
        add: string;
        remove: string;
        show: string;
        hide: string;
        click: string;
        rightClick: string;
        mouseOver: string;
        mouseOut: string;
        popupOpen: string;
        popupClose: string;
        tooltipOpen: string;
        tooltipClose: string;
        addGraphic: string;
        removeGraphic: string;
    };
}

/**
 * 矢量数据LOD分层分块加载类
 * @param [options] - 参数对象，包括以下：
 * @param [options.IdField = 'id'] - 数据中唯一标识的属性字段名称
 * @param options.queryGridData - 获取网格内对应数据的的外部处理回调方法
 * @param options.createGraphic - 根据数据创建矢量对象的外部处理回调方法
 * @param options.updateGraphic - 根据数据更新矢量对象的外部处理回调方法，一般动态数据时可以用
 * @param [options.minimumLevel = 0] - 图层所支持的最低层级，当地图小于该级别时，平台不去请求服务数据。【影响效率的重要参数】
 * @param [options.maximumLevel] - 图层所支持的最大层级,当地图大于该级别时，平台不去请求服务数据。
 * @param options.rectangle - 瓦片数据的矩形区域范围
 * @param options.rectangle.xmin - 最小经度值, -180 至 180
 * @param options.rectangle.xmax - 最大经度值, -180 至 180
 * @param options.rectangle.ymin - 最小纬度值, -90 至 90
 * @param options.rectangle.ymax - 最大纬度值, -90 至 90
 * @param [options.bbox] - bbox规范的瓦片数据的矩形区域范围,与rectangle二选一即可。
 * @param options.debuggerTileInfo - 是否开启测试显示瓦片信息
 * @param [options.opacity = 1.0] - 透明度（部分图层），取值范围：0.0-1.0
 * @param [options.zIndex] - 控制图层的叠加层次（部分图层），默认按加载的顺序进行叠加，但也可以自定义叠加顺序，数字大的在上面。
 * @param [options.symbol] - 矢量数据的style样式,为Function时是完全自定义的回调处理 symbol(attr, style, feature)
 * @param options.symbol.styleOptions - 数据的Style样式
 * @param [options.symbol.styleField] - 按 styleField 属性设置不同样式。
 * @param [options.symbol.styleFieldOptions] - 按styleField值与对应style样式的键值对象。
 * @param [options.symbol.merge] - 是否合并并覆盖json中已有的style，默认不合并。
 * @param [options.symbol.callback] - 自定义判断处理返回style ，示例：callback: function (attr, styleOpt){  return { color: "#ff0000" };  }
 * @param options.clustering - 设置聚合相关参数：
 * @param [options.clustering.enabled = false] - 是否开启聚合
 * @param [options.clustering.pixelRange = 20] - 多少像素矩形范围内聚合
 * @param [options.clustering.clampToGround = true] - 是否贴地
 * @param [options.clustering.radius = 28] - 圆形图标的整体半径大小（单位：像素）
 * @param [options.clustering.radiusIn = radius-5] - 圆形图标的内圆半径大小（单位：像素）
 * @param [options.clustering.fontColor = '#ffffff'] - 数字的颜色
 * @param [options.clustering.color = 'rgba(181, 226, 140, 0.6)'] - 圆形图标的背景颜色，默认自动处理
 * @param [options.clustering.colorIn = 'rgba(110, 204, 57, 0.5)'] - 圆形图标的内圆背景颜色，默认自动处理
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定，支持：'all'、数组、字符串模板
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数,还包括：
 * @param [options.popupOptions.title] - 固定的标题名称
 * @param [options.popupOptions.titleField] - 标题对应的属性字段名称
 * @param [options.popupOptions.noTitle] - 不显示标题
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑定，参数与popup属性完全相同。
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数,还包括：
 * @param [options.tooltipOptions.title] - 固定的标题名称
 * @param [options.tooltipOptions.titleField] - 标题对应的属性字段名称
 * @param [options.tooltipOptions.noTitle] - 不显示标题
 * @param [options.contextmenuItems] - 绑定的右键菜单值，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.extent] - 图层自定义定位的矩形区域，与center二选一即可。 {@link Map#flyToExtent}
 * @param options.extent.xmin - 最小经度值, -180 至 180
 * @param options.extent.xmax - 最大经度值, -180 至 180
 * @param options.extent.ymin - 最小纬度值, -90 至 90
 * @param options.extent.ymax - 最大纬度值, -90 至 90
 * @param [options.extent.height = 0] - 矩形高度值
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class LodGraphicLayer extends GraphicLayer {
    constructor(options?: {
        IdField?: string;
        queryGridData: (...params: any[]) => any;
        createGraphic: (...params: any[]) => any;
        updateGraphic: (...params: any[]) => any;
        minimumLevel?: number;
        maximumLevel?: number;
        rectangle: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
        };
        bbox?: number[];
        debuggerTileInfo: boolean;
        opacity?: number;
        zIndex?: number;
        symbol?: {
            styleOptions: BillboardEntity.StyleOptions | any | PolylineEntity.StyleOptions | any | PolygonEntity.StyleOptions | any | any;
            styleField?: string;
            styleFieldOptions?: any;
            merge?: boolean;
            callback?: (...params: any[]) => any;
        };
        clustering: {
            enabled?: boolean;
            pixelRange?: number;
            clampToGround?: boolean;
            radius?: number;
            radiusIn?: number;
            fontColor?: string;
            color?: string;
            colorIn?: string;
        };
        popup?: string | Globe.getTemplateHtml_template[] | ((...params: any[]) => any);
        popupOptions?: {
            title?: string;
            titleField?: string;
            noTitle?: string;
        };
        tooltip?: string | Globe.getTemplateHtml_template[] | ((...params: any[]) => any) | any;
        tooltipOptions?: {
            title?: string;
            titleField?: string;
            noTitle?: string;
        };
        contextmenuItems?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        extent?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
            height?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 根据LOD分块信息去请求对应的Tile瓦块内的数据
     * @param event - 瓦片信息对象
     * @returns 异步计算完成的Promise
     */
    queryGridData(event: any): Promise<any>;
    /**
     * 根据 attr属性 创建 矢量对象
     * @param grid - 瓦片信息对象
     * @param attr - 数据的属性信息
     * @returns 矢量对象
     */
    createGraphic(grid: any, attr: any): BaseGraphic | any;
    /**
     * 根据 attr属性 更新 矢量对象，主要是属性是动态变化的场景下使用。
     * @param graphic - 矢量对象
     * @param attr - 数据的属性信息
     * @returns 无
     */
    updateGraphic(graphic: BaseGraphic | any, attr: any): void;
    /**
     * 清除图层内所有矢量数据
     * @param [hasDestroy = false] - 是否释放矢量对象
     * @returns 无
     */
    clear(hasDestroy?: boolean): void;
    /**
     * 重新加载数据
     * @returns 无
     */
    reload(): void;
}

/**
 * OSM在线 建筑物模型
 * @param options - 参数对象，参数包括以下：
 * @param [options.maximumScreenSpaceError = 16] - 用于驱动细化细节级别的最大屏幕空间错误。数值加大，能让最终成像变模糊
 * @param [options.maximumMemoryUsage = 512] - 数据集可以使用的最大内存量(以MB计)。这个参数默认是512，也即是当几何体和纹理资源大于512MB的时候，Cesium就会淘汰掉当前帧中没有visited的所有块，这个值其实很小，也是cesium为了避免资源占用过高的一个保障，不过上述我们也估算过最差情况下，没有做纹理crn压缩的情况下，这个值很容易被超过，导致很多人误以为cesium的淘汰没有效果。这个值如果设置的过小，导致cesium几乎每帧都在尝试淘汰数据，增加了遍历的时间，也同时增加了崩溃的风险。这个值如果设置的过大，cesium的淘汰机制失效，那么容易导致显存超过显卡内存，也会导致崩溃。 这个值应该处于最差视角下资源占用 和 显存最大量之间。结论：这个参数要根据当前显卡显存来配置，如果我们场景只显示这一个模型数据，这个可以设置到显存的50 % 左右，比如我的显存是6G，这个可以设置到3000左右。那么既保证不超过显存限制，又可以最大利用显存缓存，配合crn压缩之后，这个几乎可以保证你第二次查看模型同一位置的时候，看不到加载过程，非常棒。
 * @param [options.style] - 模型样式， 使用{@link https://github.com/CesiumGS/3d-tiles/tree/master/specification/Styling|3D Tiles Styling language}.
 * @param [options.marsJzwStyle = false] - 开启或设置建筑物特效样式。
 * @param [options.customShader] - 自定义shader效果
 * @param [options.highlight] - 高亮及其样式配置
 * @param [options.highlight.type] - 鼠标移入高亮 或 单击高亮(type:'click')
 * @param [options.highlight.all] - 是否整体高亮， true:模型整体全部高亮，false:单个构件高亮
 * @param [options.highlight.color = '#FFFF00'] - 颜色，支持rgba字符串
 * @param [options.highlight.outlineEffect = false] - 默认为修改矢量对象本身的style高亮，true时采用{@link OutlineEffect}方式高亮。
 * @param [options.highlight.filter] - 可以设置筛选排除一些构件, 排除的构件在filter方法内返回false
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定，支持：'all'、数组、字符串模板
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数,还包括：
 * @param [options.popupOptions.title] - 固定的标题名称
 * @param [options.popupOptions.titleField] - 标题对应的属性字段名称
 * @param [options.popupOptions.noTitle] - 不显示标题
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑定，参数与popup属性完全相同。
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数,还包括：
 * @param [options.tooltipOptions.title] - 固定的标题名称
 * @param [options.tooltipOptions.titleField] - 标题对应的属性字段名称
 * @param [options.tooltipOptions.noTitle] - 不显示标题
 * @param [options.contextmenuItems] - 绑定的右键菜单值，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.extent] - 图层自定义定位的矩形区域，与center二选一即可。 {@link Map#flyToExtent}
 * @param options.extent.xmin - 最小经度值, -180 至 180
 * @param options.extent.xmax - 最大经度值, -180 至 180
 * @param options.extent.ymin - 最小纬度值, -90 至 90
 * @param options.extent.ymax - 最大纬度值, -90 至 90
 * @param [options.extent.height = 0] - 矩形高度值
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class OsmBuildingsLayer extends TilesetLayer {
    constructor(options: {
        maximumScreenSpaceError?: number;
        maximumMemoryUsage?: number;
        style?: any | Cesium.Cesium3DTileStyle | ((...params: any[]) => any);
        marsJzwStyle?: boolean | string;
        customShader?: Cesium.CustomShader;
        highlight?: {
            type?: string;
            all?: boolean;
            color?: string | ((...params: any[]) => any);
            outlineEffect?: boolean;
            filter?: (...params: any[]) => any;
        };
        allowDrillPick?: boolean | ((...params: any[]) => any);
        popup?: string | Globe.getTemplateHtml_template[] | ((...params: any[]) => any);
        popupOptions?: {
            title?: string;
            titleField?: string;
            noTitle?: string;
        };
        tooltip?: string | Globe.getTemplateHtml_template[] | ((...params: any[]) => any) | any;
        tooltipOptions?: {
            title?: string;
            titleField?: string;
            noTitle?: string;
        };
        contextmenuItems?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        extent?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
            height?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
}

declare namespace TilesetLayer {
    /**
     * 当前类支持的{@link EventType}事件类型
     * @example
     * //绑定监听事件
     * layer.on(mars3d.EventType.load, function (event) {
     *   console.log('矢量数据对象加载完成', event)
     * })
     * @property add - 添加对象
     * @property remove - 移除对象
     * @property show - 显示了对象
     * @property hide - 隐藏了对象
     * @property click - 左键单击 鼠标事件
     * @property rightClick - 右键单击 鼠标事件
     * @property mouseOver - 鼠标移入 鼠标事件
     * @property mouseOut - 鼠标移出 鼠标事件
     * @property popupOpen - popup弹窗打开后
     * @property popupClose - popup弹窗关闭
     * @property tooltipOpen - tooltip弹窗打开后
     * @property tooltipClose - tooltip弹窗关闭
     * @property initialTilesLoaded - 3dtiles模型，模型瓦片初始化完成 该回调只执行一次
     * @property allTilesLoaded - 3dtiles模型
     * @property loadBefore - 完成加载，但未做任何其他处理前
     * @property load - 完成加载，执行所有内部处理后
     * @property highlightOpen - highlight高亮后
     * @property highlightClose - highlight关闭后
     */
    type EventType = {
        add: string;
        remove: string;
        show: string;
        hide: string;
        click: string;
        rightClick: string;
        mouseOver: string;
        mouseOut: string;
        popupOpen: string;
        popupClose: string;
        tooltipOpen: string;
        tooltipClose: string;
        initialTilesLoaded: string;
        allTilesLoaded: string;
        loadBefore: string;
        load: string;
        highlightOpen: string;
        highlightClose: string;
    };
}

/**
 * 3dtiles 三维模型图层。
 * @param options - 参数对象， 构造参数建议从{@link http://mars3d.cn/editor.html?id=layer-tileset/manager/edit|模型编辑页面}设置后保存参数后拷贝json参数即可。参数包括以下：
 * @param options.url - tileset的主JSON文件的 url ，ION资源时可以写 url: Cesium.IonResource.fromAssetId(8564),
 * @param [options.maximumScreenSpaceError = 16] - 用于驱动细化细节级别的最大屏幕空间错误。可以简单理解为：数值加大，能让最终成像变模糊。
 * @param [options.maximumMemoryUsage = 512] - 数据集可以使用的最大内存量(以MB计)，这个参数要根据当前客户端显卡显存来配置，如果我们场景只显示这一个模型数据，这个可以设置到显存的50% 左右，比如我的显存是4G，这个可以设置到2048左右。那么既保证不超过显存限制，又可以最大利用显存缓存。<br />
 * 解释：
 * 这个参数默认是512，也即是当几何体和纹理资源大于512MB的时候，cesium就会淘汰掉当前帧中没有visited的所有块，这个值其实很小，也是cesium为了避免资源占用过高的一个保障.<br />
 * 这个值如果设置的过小，导致cesium几乎每帧都在尝试淘汰数据，增加了遍历的时间，也同时增加了崩溃的风险。<br />
 * 这个值如果设置的过大，cesium的淘汰机制失效，那么容易导致显存超过显卡内存，也会导致崩溃。 这个值应该处于最差视角下资源占用 和 显存最大量之间。<br />
 * @param [options.position] - 自定义新的中心点位置（移动模型）
 * @param [options.position.lng] - 经度值, 180 - 180
 * @param [options.position.lat] - 纬度值, -90 - 90
 * @param [options.position.alt] - 高度值（单位：米）
 * @param [options.position.alt_offset] - 相对于模型本身高度的偏移值（单位：米） ，如果有alt时已alt优先。
 * @param [options.rotation] - 自定义旋转方向（旋转模型）
 * @param options.rotation.x - X方向，角度值0-360
 * @param options.rotation.y - Y方向，角度值0-360
 * @param options.rotation.z - 四周方向，角度值0-360
 * @param [options.modelMatrix] - 模型的矩阵位置，内部无坐标位置的模型使用，此时position和rotation等参数均无效。
 * @param [options.updateMatrix] - 外部自定义修复模型矩阵位置
 * @param [options.scale = 1] - 自定义缩放比例
 * @param [options.axis] - 自定义轴方向
 * @param [options.style] - 模型样式， 使用{@link https://github.com/CesiumGS/3d-tiles/tree/master/specification/Styling|3D Tiles Styling language}.
 * @param [options.marsJzwStyle = false] - 开启或设置建筑物特效样式。
 * @param [options.customShader] - 自定义shader效果
 * @param [options.highlight] - 高亮及其样式配置
 * @param [options.highlight.type] - 鼠标移入高亮 或 单击高亮(type:'click')
 * @param [options.highlight.color = '#FFFF00'] - 颜色，支持rgba字符串
 * @param [options.highlight.outlineEffect = false] - 默认为修改矢量对象本身的style高亮，true时采用{@link OutlineEffect}方式高亮。
 * @param [options.highlight.filter] - 可以设置筛选排除一些构件, 排除的构件在filter方法内返回false
 * @param [options.highlight.all] - 是否按整体高亮， true:模型整体全部高亮，false:单个构件高亮
 * @param [options.highlight.uniqueKey] - 按指定字段进行对应相关构件的整体高亮
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 * @param [options.clampToGround] - 是否贴地,true时自动调用贴地计算，但此属性只适合标准的与地形数据匹配的模型，并不精确，建议通过模型编辑页面调试给具体高度值。
 * @param [options.chinaCRS] - 标识模型的国内坐标系（用于自动纠偏或加偏）
 * @param [options.clip] - 模型裁剪 对象, 可传入{@link TilesetClip}构造参数
 * @param [options.flat] - 模型压平 对象, 可传入{@link TilesetFlat}构造参数
 * @param [options.flood] - 模型淹没 对象, 可传入{@link TilesetFlood}构造参数
 * @param [options.planClip] - 模型Plan裁剪 对象, 可传入{@link TilesetPlanClip}构造参数
 * @param [options.shadows = ShadowMode.ENABLED] - 确定tileset是否投射或接收来自光源的阴影。
 * @param [options.cullWithChildrenBounds = true] - 优化选择。是否使用子绑定卷的并集来筛选贴图。
 * @param [options.cullRequestsWhileMoving = true] - 优化选择。不要要求贴图，当他们回来的时候可能不会使用，因为相机的运动。这个优化只适用于固定瓷砖组。
 * @param [options.cullRequestsWhileMovingMultiplier = 60.0] - 优化选择。在移动时选择请求时使用的倍增器。越大的选择性越强，越小的选择性越弱。值越小能够更快的剔除。
 * @param [options.preloadWhenHidden = false] - 当true时，tileset.show是false，也去预加载数据。
 * @param [options.preloadFlightDestinations = true] - 优化选择。当摄像机在飞行时，在摄像机的飞行目的地预加载贴图。
 * @param [options.preferLeaves = false] - 优化选择。最好先加载上叶子节点数据。这个参数默认是false，同等条件下，叶子节点会优先加载。但是Cesium的tile加载优先级有很多考虑条件，这个只是其中之一，如果skipLevelOfDetail=false，这个参数几乎无意义。所以要配合skipLevelOfDetail=true来使用，此时设置preferLeaves=true。这样我们就能最快的看见符合当前视觉精度的块，对于提升大数据以及网络环境不好的前提下有一点点改善意义。
 * @param [options.dynamicScreenSpaceError = false] - 优化选择。减少远离摄像头的贴图的屏幕空间误差。true时会在真正的全屏加载完之后才清晰化模型.
 * @param [options.dynamicScreenSpaceErrorDensity = 0.00278] - 密度用来调整动态画面空间误差，类似于雾密度。
 * @param [options.dynamicScreenSpaceErrorFactor = 4.0] - 用于增加计算的动态屏幕空间误差的因素。
 * @param [options.dynamicScreenSpaceErrorHeightFalloff = 0.25] - 瓷砖密度开始下降时的高度之比。
 * @param [options.progressiveResolutionHeightFraction = 0.3] - 优化选择。如果在(0.0,0.5)之间，在屏幕空间或以上的瓷砖错误降低屏幕分辨率 <code>progressiveResolutionHeightFraction*screenHeight</code> 将优先。这可以帮助得到一个快速层的瓷砖下来，而全分辨率的瓷砖继续加载。
 * @param [options.foveatedScreenSpaceError = true] - 优化选择。通过暂时提高屏幕边缘的贴图的屏幕空间误差，优先加载屏幕中央的贴图。一旦所有由{@link cesium3dtilesset#foveatedConeSize}确定的屏幕中央的贴图被加载，屏幕空间错误就会恢复正常。
 * @param [options.foveatedConeSize = 0.1] - 优化选择。当{@link cesium3dtilesset#foveatedScreenSpaceError}为true时使用，以控制决定哪些贴图被延迟的锥大小。装在这个圆锥体里的瓷砖会立即被装入。锥外的贴图有可能被延迟，这取决于它们在锥外的距离和它们的屏幕空间误差。这是由{@link Cesium3DTileset#foveatedInterpolationCallback}和{@link Cesium3DTileset#foveatedMinimumScreenSpaceErrorRelaxation}控制的。设置为0.0意味着圆锥将是由相机位置和它的视图方向形成的线。将此设置为1.0意味着圆锥将包含相机的整个视场，禁用此效果。
 * @param [options.foveatedMinimumScreenSpaceErrorRelaxation = 0.0] - 优化选择。当{@link cesium3dtilesset#foveatedScreenSpaceError}为true时使用，以控制中心锥形以外的贴图的初始屏幕空间误差松弛。屏幕空间错误将基于所提供的{@link Cesium3DTileset#foveatedInterpolationCallback}从tileset值开始直到{@link Cesium3DTileset#maximumScreenSpaceError}。
 * @param [options.foveatedInterpolationCallback = Math.lerp] - 优化选择。当{@link cesium3dtilesset#foveatedScreenSpaceError}为true时使用，以控制中心锥形以外的贴图的初始屏幕空间误差松弛。优化选择。当{@link Cesium3DTileset#foveatedScreenSpaceError}为true时使用，以控制凸出圆锥外的贴图的屏幕空间误差提高多少，插值在{@link Cesium3DTileset#foveatedminimumscreenspaceerror}和{@link Cesium3DTileset#maximumScreenSpaceError}之间。
 * @param [options.foveatedTimeDelay = 0.2] - 优化选择。当{@link cesium3dtilesset#foveatedScreenSpaceError}为true时使用，以控制中心锥形以外的贴图的初始屏幕空间误差松弛。优化选择。优化选择。当{@link cesium3dtilesset#foveatedScreenSpaceError}为true时使用，以控制在延迟tile开始加载前摄像机停止移动后等待多长时间(秒)。这个时间延迟阻止了在相机移动时请求屏幕边缘的贴图。将此设置为0.0将立即请求任何给定视图中的所有贴图。
 * @param [options.skipLevelOfDetail = false] - 优化选择。确定在遍历过程中是否应应用跳过详细信息的级别。是Cesium在1.5x 引入的一个优化参数，这个参数在金字塔数据加载中，可以跳过一些级别，这样整体的效率会高一些，数据占用也会小一些。但是带来的异常是：1） 加载过程中闪烁，看起来像是透过去了，数据载入完成后正常。2，有些异常的面片，这个还是因为两级LOD之间数据差异较大，导致的。当这个参数设置false，两级之间的变化更平滑，不会跳跃穿透，但是清晰的数据需要更长，而且还有个致命问题，一旦某一个tile数据无法请求到或者失败，导致一直不清晰。所以我们建议：对于网络条件好，并且数据总量较小的情况下，可以设置false，提升数据显示质量。
 * @param [options.baseScreenSpaceError = 1024] - 当skipLevelOfDetail为true时，跳过详细级别之前必须达到的屏幕空间错误。
 * @param [options.skipScreenSpaceErrorFactor = 16] - 当skipLevelOfDetail = true时，一个定义要跳过的最小屏幕空间错误的乘法器。与skipLevels一起使用，以决定加载哪些贴图。
 * @param [options.skipLevels = 1] - 当skipLevelOfDetail是true，一个常量定义了加载tiles时要跳过的最小级别数。当它为0时，不会跳过任何级别。与skipScreenSpaceErrorFactor一起使用，以决定加载哪些贴图。
 * @param [options.immediatelyLoadDesiredLevelOfDetail = false] - 当skipLevelOfDetail为true时，只有满足最大屏幕空间错误的tiles才会被下载。跳过因素将被忽略，并且只加载所需的块。
 * @param [options.loadSiblings = false] - 当skipLevelOfDetail = true时，判断遍历过程中是否总是下载可见块的兄弟块。如果为true则不会在已加载完模型后，自动从中心开始超清化模型。
 * @param [options.clippingPlanes] - {@link Cesium.ClippingPlaneCollection}用于选择性地禁用tile集的渲染。
 * @param [options.classificationType] - 确定地形、3D贴图或两者都将被这个贴图集分类。有关限制和限制的详细信息，请参阅{@link cesium3dtilesset #classificationType}。
 * @param [options.pointCloudShading] - 基于几何误差和光照构造一个{@link Cesium.PointCloudShading}对象来控制点衰减的选项。
 * @param [options.lightColor] - 光的颜色当遮光模型。当undefined场景的浅色被使用代替。表示，rgb的倍数，new Cesium.Cartesian3(100.0,100.0, 100.0)表示白光增强到100倍。对Pbrt材质有效，倾斜摄影不生效。
 * @param [options.backFaceCulling = true] - 是否剔除面向背面的几何图形。当为真时，背面剔除由glTF材质的双面属性决定;当为false时，禁用背面剔除。
 * @param [options.debugHeatmapTilePropertyName] - 是否剔除面向背面的几何图形。当为真时，背面剔除由glTF材质的双面属性决定;作为热图着色的tile变量。所有渲染的贴图都将相对于其他指定的变量值着色。
 * @param [options.pickPrimitive] - 要在拾取过程中呈现的原语，而不是tile集合。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定，支持：'all'、数组、字符串模板
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数,还包括：
 * @param [options.popupOptions.title] - 固定的标题名称
 * @param [options.popupOptions.titleField] - 标题对应的属性字段名称
 * @param [options.popupOptions.noTitle] - 不显示标题
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑定，参数与popup属性完全相同。
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数,还包括：
 * @param [options.tooltipOptions.title] - 固定的标题名称
 * @param [options.tooltipOptions.titleField] - 标题对应的属性字段名称
 * @param [options.tooltipOptions.noTitle] - 不显示标题
 * @param [options.contextmenuItems] - 绑定的右键菜单值，也可以bindContextMenu方法绑定
 * @param [options.hasEdit = true] - 是否允许编辑，且需要transform是true的模型才支持编辑
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class TilesetLayer extends BaseGraphicLayer {
    constructor(options: {
        url: string | Cesium.Resource | Cesium.IonResource;
        maximumScreenSpaceError?: number;
        maximumMemoryUsage?: number;
        position?: {
            lng?: number;
            lat?: number;
            alt?: number;
            alt_offset?: number;
        };
        rotation?: {
            x: number;
            y: number;
            z: number;
        };
        modelMatrix?: Cesium.Matrix4;
        updateMatrix?: (...params: any[]) => any;
        scale?: number;
        axis?: string | Cesium.Axis;
        style?: any | Cesium.Cesium3DTileStyle | ((...params: any[]) => any);
        marsJzwStyle?: boolean | string;
        customShader?: Cesium.CustomShader;
        highlight?: {
            type?: string;
            color?: string | ((...params: any[]) => any);
            outlineEffect?: boolean;
            filter?: (...params: any[]) => any;
            all?: boolean;
            uniqueKey?: string;
        };
        allowDrillPick?: boolean | ((...params: any[]) => any);
        clampToGround?: boolean;
        chinaCRS?: ChinaCRS;
        clip?: any;
        flat?: any;
        flood?: any;
        planClip?: any;
        shadows?: Cesium.ShadowMode;
        cullWithChildrenBounds?: boolean;
        cullRequestsWhileMoving?: boolean;
        cullRequestsWhileMovingMultiplier?: number;
        preloadWhenHidden?: boolean;
        preloadFlightDestinations?: boolean;
        preferLeaves?: boolean;
        dynamicScreenSpaceError?: boolean;
        dynamicScreenSpaceErrorDensity?: number;
        dynamicScreenSpaceErrorFactor?: number;
        dynamicScreenSpaceErrorHeightFalloff?: number;
        progressiveResolutionHeightFraction?: number;
        foveatedScreenSpaceError?: boolean;
        foveatedConeSize?: number;
        foveatedMinimumScreenSpaceErrorRelaxation?: number;
        foveatedInterpolationCallback?: Cesium.Cesium3DTileset.foveatedInterpolationCallback;
        foveatedTimeDelay?: number;
        skipLevelOfDetail?: boolean;
        baseScreenSpaceError?: number;
        skipScreenSpaceErrorFactor?: number;
        skipLevels?: number;
        immediatelyLoadDesiredLevelOfDetail?: boolean;
        loadSiblings?: boolean;
        clippingPlanes?: Cesium.ClippingPlaneCollection;
        classificationType?: Cesium.ClassificationType;
        pointCloudShading?: any;
        lightColor?: Cesium.Cartesian3;
        backFaceCulling?: boolean;
        debugHeatmapTilePropertyName?: string;
        pickPrimitive?: any;
        popup?: string | Globe.getTemplateHtml_template[] | ((...params: any[]) => any);
        popupOptions?: {
            title?: string;
            titleField?: string;
            noTitle?: string;
        };
        tooltip?: string | Globe.getTemplateHtml_template[] | ((...params: any[]) => any) | any;
        tooltipOptions?: {
            title?: string;
            titleField?: string;
            noTitle?: string;
        };
        contextmenuItems?: any;
        hasEdit?: boolean;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 原始的旋转角度，示例：{ x: 0, y: 0, z: 0 }
     */
    readonly orginRotation: any;
    /**
     * 模型对应的 Cesium3DTileset对象
     */
    readonly tileset: Cesium.Cesium3DTileset;
    /**
     * 变换矩阵。
     */
    readonly modelMatrix: Cesium.Matrix4;
    /**
     * 逆变换矩阵。
     */
    readonly inverseMatrix: Cesium.Matrix4;
    /**
     * 鼠标移入或单击(type:'click')后的对应高亮的部分样式,空值时不高亮
     */
    readonly highlight: any;
    /**
     * 开启或设置建筑物特效样式。
     */
    marsJzwStyle: boolean | any;
    /**
     * 模型样式，
     * 使用{@link https://github.com/CesiumGS/3d-tiles/tree/master/specification/Styling|3D Tiles Styling language}.
     */
    style: any | Cesium.Cesium3DTileStyle | ((...params: any[]) => any);
    /**
     * 自定义shader效果, <br/>
     * 如果默认无customShader，加载模型后动态修改customShader值
     */
    customShader: Cesium.CustomShader;
    /**
     * 模型原始的中心点坐标
     */
    readonly orginCenterPoint: LngLatPoint;
    /**
     * 模型原始的中心点坐标 （笛卡尔坐标）
     */
    readonly orginCenterPosition: Cesium.Cartesian3;
    /**
     * 模型当前中心点坐标 （笛卡尔坐标）
     */
    readonly position: Cesium.Cartesian3;
    /**
     * 模型当前中心点坐标
     */
    center: LngLatPoint;
    /**
     * 调整修改模型高度, 同alt
     */
    height: number;
    /**
     * 调整修改模型高度
     */
    alt: number;
    /**
     * 模型的边界球体。
     */
    readonly boundingSphere: Cesium.BoundingSphere;
    /**
     * 模型的向上轴，比如Cesium.Axis.Z 或 Cesium.Axis.Y
     */
    readonly upAxis: Cesium.Axis;
    /**
     * 旋转方向，示例：{ x: 0, y: 0, z: 0 }
     */
    rotation: any;
    /**
     * X轴上的旋转方向
     */
    rotation_x: number;
    /**
     * Y轴上的旋转方向
     */
    rotation_y: number;
    /**
     * Z轴上的旋转方向
     */
    rotation_z: number;
    /**
     * 轴方向
     */
    axis: string | Cesium.Axis;
    /**
     * 缩放比例
     */
    scale: number;
    /**
     * 是否允许鼠标穿透拾取
     */
    allowDrillPick: boolean | ((...params: any[]) => any);
    /**
     * 模型裁剪 对象
     */
    readonly planClip: TilesetPlanClip;
    /**
     * 是否可以编辑
     */
    hasEdit: boolean;
    /**
     * 模型裁剪 对象
     */
    readonly clip: TilesetClip;
    /**
     * 模型压平 对象
     */
    readonly flat: TilesetFlat;
    /**
     * 模型淹没 对象
     */
    readonly flood: TilesetFlood;
    /**
     * 是否正在编辑状态
     */
    readonly isEditing: boolean;
    /**
     * 重新加载模型
     */
    reload(): void;
    /**
     * 是否存在世界矩阵
     */
    readonly transform: boolean;
    /**
     * 模型原始矩阵
     */
    readonly orginMatrix: Cesium.Matrix4;
    /**
     * 模型自动贴地计算及处理,
     * 因为模型在设计或生产时，模型的视角中心位置不一定在0,0,0点，此方法不是唯一准确的。
     * @param [addHeight = 1] - 计算完成的贴地高度基础上增加的高度值。
     * @returns 无
     */
    clampToGround(addHeight?: number): void;
    /**
     * 重新计算当前矩阵（需要是否存在世界矩阵时）
     * @returns 计算完成的矩阵
     */
    updateMatrix(): Cesium.Matrix4 | undefined;
    /**
     * 重新计算当前矩阵，普通方式, 此种方式[x，y不能多次更改]
     * @returns 计算完成的矩阵
     */
    updateMatrix2(): Cesium.Matrix4;
    /**
     * 获取构件节点位置，现对于原始矩阵变化后的新位置
     * @param position - 原始位置
     * @returns 新位置
     */
    getPositionByOrginMatrix(position: Cesium.Cartesian3): Cesium.Cartesian3;
    /**
     * 设置透明度
     * @param value - 透明度
     * @returns 无
     */
    setOpacity(value: number): void;
    /**
     * 设置属性信息到Feature上
     * @param idField - 数据中唯一标识的属性字段名称
     * @param properties - 属性值数组
     * @returns 当前图层本身图层
     */
    setProperties(idField: string, properties: any): TilesetLayer;
    /**
     * 移除 设置属性信息到Feature上
     * @param [idField] - 数据中唯一标识的属性字段名称,为空时删除所有
     * @param [properties] - 属性值数组,为空时删除所有
     * @returns 当前图层本身图层
     */
    delProperties(idField?: string, properties?: any): TilesetLayer;
    /**
     * 高亮对象。
     * @param [highlightStyle] - 高亮的样式，具体见各{@link GraphicType}矢量数据的style参数。
     * @param [closeLast = true] - 是否清除地图上上一次的高亮对象
     * @param [pickedObject] - 需要高亮的构件, 如果是mars3d的相关事件内时，可以取 event.pickedObject
     * @returns 无
     */
    openHighlight(highlightStyle?: any, closeLast?: boolean, pickedObject?: Cesium.Cesium3DTileFeature): void;
    /**
     * 清除已选中的高亮，原有style的配置项需要与highlightStyle配置有一一对应关系，否则无法清除
     * @returns 无
     */
    closeHighlight(): void;
    /**
     * 是否存在Popup绑定
     * @returns 是否存在Popup绑定
     */
    hasPopup(): boolean;
    /**
     * 绑定鼠标单击对象后的弹窗。
     * @param content - 弹窗内容html字符串，或者回调方法。
     * @param [options] - 控制参数
     * @returns 当前对象本身，可以链式调用
     */
    bindPopup(content: string | any[] | ((...params: any[]) => any), options?: Popup.StyleOptions | any): TilesetLayer;
    /**
     * 解除绑定的鼠标单击对象后的弹窗。
     * @returns 当前对象本身，可以链式调用
     */
    unbindPopup(): BaseGraphicLayer;
    /**
     * 关闭弹窗
     * @returns 当前对象本身，可以链式调用
     */
    closePopup(): BaseGraphicLayer;
    /**
     * 开始编辑对象
     * @returns 无
     */
    startEditing(): void;
    /**
     * 停止编辑，释放正在编辑的对象。
     * @returns 无
     */
    stopEditing(): void;
    /**
     * 飞行定位至图层数据所在的视角
     * @param [options = {}] - 参数对象:
     * @param [options.radius] - 点状数据时，相机距离目标点的距离（单位：米）
     * @param [options.scale = 1.2] - 线面数据时，缩放比例，可以控制视角比矩形略大一些，这样效果更友好。
     * @param [options.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
     * @param [options.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
     * @param [options.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
     * @param [options.minHeight] - 定位时相机的最小高度值，用于控制避免异常数据
     * @param [options.maxHeight] - 定位时相机的最大高度值，用于控制避免异常数据
     * @param [options.height] - 矩形区域时的高度值, 默认取地形高度值
     * @param [options.duration] - 飞行时间（单位：秒）。如果省略，SDK内部会根据飞行距离计算出理想的飞行时间。
     * @param [options.complete] - 飞行完成后要执行的函数。
     * @param [options.cancel] - 飞行取消时要执行的函数。
     * @param [options.endTransform] - 变换矩阵表示飞行结束时相机所处的参照系。
     * @param [options.maximumHeight] - 飞行高峰时的最大高度。
     * @param [options.pitchAdjustHeight] - 如果相机飞得比这个值高，在飞行过程中调整俯仰以向下看，并保持地球在视口。
     * @param [options.flyOverLongitude] - 地球上的两点之间总有两条路。这个选项迫使相机选择战斗方向飞过那个经度。
     * @param [options.flyOverLongitudeWeight] - 仅在通过flyOverLongitude指定的lon上空飞行，只要该方式的时间不超过flyOverLongitudeWeight的短途时间。
     * @param [options.convert = true] - 是否将目的地从世界坐标转换为场景坐标（仅在不使用3D时相关）。
     * @param [options.easingFunction] - 控制在飞行过程中如何插值时间。
     * @returns 如果飞行成功则解析为true的承诺，如果当前未在场景中可视化目标或取消飞行，则为false的Promise
     */
    flyTo(options?: {
        radius?: number;
        scale?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        minHeight?: number;
        maxHeight?: number;
        height?: number;
        duration?: number;
        complete?: Cesium.Camera.FlightCompleteCallback;
        cancel?: Cesium.Camera.FlightCancelledCallback;
        endTransform?: Cesium.Matrix4;
        maximumHeight?: number;
        pitchAdjustHeight?: number;
        flyOverLongitude?: number;
        flyOverLongitudeWeight?: number;
        convert?: boolean;
        easingFunction?: Cesium.EasingFunction.Callback;
    }): Promise<boolean>;
}

/**
 * WFS图层
 * @param [options] - 参数对象，包括以下：
 * @param options.url - WFS服务地址
 * @param [options.parameters] - 要在URL中 传递给WFS服务GetFeature请求的其他参数。
 * @param [options.parameters.maxFeatures] - 返回结果最大数量
 * @param [options.parameters.cql_filter] - 筛选服务数据的[SQL语句]{@link https://docs.geoserver.org/2.12.2/user/services/wfs/vendor.html#wfs-vendor-parameters}
 * @param [options.parameters.sortBy] - 排序的属性名称，默认升序，降序时+D
 * @param [options.parameters.service = 'WFS'] - 服务类型
 * @param [options.parameters.version = '1.0.0'] - 服务版本
 * @param [options.geometryName = 'the_geom'] - geometry字段名称, 比如：geom 或 the_geom
 * @param [options.headers] - 将被添加到HTTP请求头。
 * @param [options.proxy] - 加载资源时使用的代理。
 * @param options.layer - 图层名称（命名空间:图层名称），多个图层名称用逗号隔开
 * @param [options.IdField = 'id'] - 数据中唯一标识的属性字段名称
 * @param [options.getCapabilities = true] - 是否通过服务本身的GetCapabilities来读取一些参数，减少options配置项
 * @param [options.minimumLevel = 0] - 图层所支持的最低层级，当地图小于该级别时，平台不去请求服务数据。【影响效率的重要参数】
 * @param [options.maximumLevel] - 图层所支持的最大层级,当地图大于该级别时，平台不去请求服务数据。
 * @param options.rectangle - 瓦片数据的矩形区域范围
 * @param options.rectangle.xmin - 最小经度值, -180 至 180
 * @param options.rectangle.xmax - 最大经度值, -180 至 180
 * @param options.rectangle.ymin - 最小纬度值, -90 至 90
 * @param options.rectangle.ymax - 最大纬度值, -90 至 90
 * @param [options.bbox] - bbox规范的瓦片数据的矩形区域范围,与rectangle二选一即可。
 * @param options.debuggerTileInfo - 是否开启测试显示瓦片信息
 * @param [options.zIndex] - 控制图层的叠加层次（部分图层），默认按加载的顺序进行叠加，但也可以自定义叠加顺序，数字大的在上面。
 * @param [options.symbol] - 矢量数据的style样式,为Function时是完全自定义的回调处理 symbol(attr, style, feature)
 * @param [options.symbol.type] - 标识数据类型，默认是根据数据生成 point、polyline、polygon
 * @param options.symbol.styleOptions - Style样式，每种不同类型数据都有不同的样式，具体见各矢量数据的style参数。{@link GraphicType}
 * @param [options.symbol.styleField] - 按 styleField 属性设置不同样式。
 * @param [options.symbol.styleFieldOptions] - 按styleField值与对应style样式的键值对象。
 * @param [options.symbol.merge] - 是否合并并覆盖json中已有的style，默认不合并。
 * @param [options.symbol.callback] - 自定义判断处理返回style ，示例：callback: function (attr, styleOpt){  return { color: "#ff0000" };  }
 * @param [options.graphicOptions] - 默认的graphic的构造参数，每种不同类型数据都有不同的属性，具体见各{@link GraphicType}矢量数据的构造参数。
 * @param [options.chinaCRS] - 标识数据的国内坐标系（用于自动纠偏或加偏）
 * @param [options.allowDrillPick] - 是否允许鼠标穿透拾取
 * @param [options.buildings] - 标识当前图层为建筑物白膜类型数据
 * @param [options.buildings.bottomHeight] - 建筑物底部高度（如:0） 属性字段名称（如:{bottomHeight}）
 * @param [options.buildings.cloumn = 1] - 层数，楼的实际高度 = height*cloumn
 * @param [options.buildings.height = 3.5] - 层高的  固定层高数值（如:10） 或 属性字段名称（如:{height}）
 * @param [options.clustering] - Entity点数据时，设置聚合相关参数：
 * @param [options.clustering.enabled = false] - 是否开启聚合
 * @param [options.clustering.pixelRange = 20] - 多少像素矩形范围内聚合
 * @param [options.clustering.clampToGround = true] - 是否贴地
 * @param [options.clustering.style] - 聚合点的样式参数
 * @param [options.clustering.radius = 26] - 内置样式时，圆形图标的半径大小（单位：像素）
 * @param [options.clustering.fontColor = '#ffffff'] - 内置样式时，数字的颜色
 * @param [options.clustering.color = 'rgba(181, 226, 140, 0.6)'] - 内置样式时，圆形图标的背景颜色
 * @param [options.clustering.opacity = 0.5] - 内置样式时，圆形图标的透明度
 * @param [options.clustering.borderWidth = 5] - 圆形图标的边框宽度（单位：像素），0不显示
 * @param [options.clustering.borderColor = 'rgba(110, 204, 57, 0.5)'] - 内置样式时，圆形图标的边框颜色
 * @param [options.clustering.borderOpacity = 0.6] - 内置样式时，圆形图标边框的透明度
 * @param [options.clustering.getImage] - 自定义聚合的图标样式，例如：getImage:function(count) { return image}
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定，支持：'all'、数组、字符串模板
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数,还包括：
 * @param [options.popupOptions.title] - 固定的标题名称
 * @param [options.popupOptions.titleField] - 标题对应的属性字段名称
 * @param [options.popupOptions.noTitle] - 不显示标题
 * @param [options.tooltip] - 绑定的tooltip弹窗值，也可以bindTooltip方法绑定，参数与popup属性完全相同。
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数,还包括：
 * @param [options.tooltipOptions.title] - 固定的标题名称
 * @param [options.tooltipOptions.titleField] - 标题对应的属性字段名称
 * @param [options.tooltipOptions.noTitle] - 不显示标题
 * @param [options.contextmenuItems] - 绑定的右键菜单值，也可以bindContextMenu方法绑定
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.extent] - 图层自定义定位的矩形区域，与center二选一即可。 {@link Map#flyToExtent}
 * @param options.extent.xmin - 最小经度值, -180 至 180
 * @param options.extent.xmax - 最大经度值, -180 至 180
 * @param options.extent.ymin - 最小纬度值, -90 至 90
 * @param options.extent.ymax - 最大纬度值, -90 至 90
 * @param [options.extent.height = 0] - 矩形高度值
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class WfsLayer extends LodGraphicLayer {
    constructor(options?: {
        url: string;
        parameters?: {
            maxFeatures?: number;
            cql_filter?: string;
            sortBy?: string;
            service?: string;
            version?: string;
        };
        geometryName?: string;
        headers?: any;
        proxy?: Cesium.Proxy;
        layer: string;
        IdField?: string;
        getCapabilities?: boolean;
        minimumLevel?: number;
        maximumLevel?: number;
        rectangle: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
        };
        bbox?: number[];
        debuggerTileInfo: boolean;
        zIndex?: number;
        symbol?: {
            type?: GraphicType | string;
            styleOptions: any;
            styleField?: string;
            styleFieldOptions?: any;
            merge?: boolean;
            callback?: (...params: any[]) => any;
        };
        graphicOptions?: any;
        chinaCRS?: ChinaCRS;
        allowDrillPick?: boolean | ((...params: any[]) => any);
        buildings?: {
            bottomHeight?: string;
            cloumn?: string;
            height?: string | number;
        };
        clustering?: {
            enabled?: boolean;
            pixelRange?: number;
            clampToGround?: boolean;
            style?: BillboardEntity.StyleOptions | any;
            radius?: number;
            fontColor?: string;
            color?: string;
            opacity?: number;
            borderWidth?: number;
            borderColor?: string;
            borderOpacity?: number;
            getImage?: (...params: any[]) => any;
        };
        popup?: string | Globe.getTemplateHtml_template[] | ((...params: any[]) => any);
        popupOptions?: {
            title?: string;
            titleField?: string;
            noTitle?: string;
        };
        tooltip?: string | Globe.getTemplateHtml_template[] | ((...params: any[]) => any) | any;
        tooltipOptions?: {
            title?: string;
            titleField?: string;
            noTitle?: string;
        };
        contextmenuItems?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        extent?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
            height?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
}

/**
 * 图层组，可以用于将多个图层组合起来方便控制（比如将 卫星底图 和 文字注记层 放在一起控制管理），或用于 图层管理 的图层分组节点（虚拟节点）。
 * @param [options] - 参数对象，包括以下：
 * @param [options.layers] - 子图层数组，每个子图层的配置见按各类型图层配置即可。
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class GroupLayer extends BaseGraphicLayer {
    constructor(options?: {
        layers?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 子图层对象数组
     */
    readonly arrLayer: BaseLayer[] | GraphicLayer[];
    /**
     * 是否空组 ，空组目前就图层管理用于图层分组节点（虚拟节点）。
     */
    readonly hasEmptyGroup: boolean;
    /**
     * 是否有子图层
     */
    readonly hasChildLayer: boolean;
    /**
     * 子图层的个数
     */
    readonly length: number;
    /**
     * 是否可以调整透明度
     */
    readonly hasOpacity: boolean;
    /**
     * 是否可以调整图层顺序（在同类型图层间）
     */
    readonly hasZIndex: boolean;
    /**
     * 图层顺序，数字大的在上面。（当hasZIndex为true时）
     */
    zIndex: number;
    /**
     * 添加所有子图层到map上
     * @returns 当前对象本身，可以链式调用
     */
    addChildsToMap(): GroupLayer;
    /**
     * 将所有子图层从map中移除
     * @returns 当前对象本身，可以链式调用
     */
    removeMapChilds(): GroupLayer;
    /**
     * 添加子图层，并绑定关联关系。
     * @param childlayer - 子图层对象
     * @returns 当前对象本身，可以链式调用
     */
    addLayer(childlayer: BaseLayer | GraphicLayer): GroupLayer;
    /**
     * 移除子图层，并解除关联关系。
     * @param childlayer - 子图层对象
     * @returns 当前对象本身，可以链式调用
     */
    removeLayer(childlayer: BaseLayer | GraphicLayer): GroupLayer;
    /**
     * 遍历每一个子图层并将其作为参数传递给回调函数
     * @param method - 回调方法
     * @param [context] - 侦听器的上下文(this关键字将指向的对象)。
     * @returns 当前对象本身,可以链式调用
     */
    eachLayer(method: (...params: any[]) => any, context?: any): GroupLayer;
    /**
     * 获取所有内置子图层对象
     * @returns 所有子图层对象
     */
    getLayers(): BaseLayer[] | GraphicLayer[];
    /**
     * 获取地图所有的子图层对象(包括pid和id关联的图层)
     * @returns 所有子图层对象
     */
    getInMapChilds(): BaseLayer[] | GraphicLayer[];
    /**
     * 根据ID或取图层
     * @param id - 图层id或uuid
     * @returns 图层对象
     */
    getLayerById(id: string | number): BaseLayer | GraphicLayer | any;
    /**
     * 根据id或name属性获取图层
     * @param name - 图层id或uuid或name值
     * @returns 图层对象
     */
    getLayer(name: string | number): BaseLayer | GraphicLayer;
    /**
     * 是否有同名的子图层，一般用于新增时判断
     * @param name - 图层名称
     * @param [excludedLayer] - 可以指定不进行判断的图层，比如当前图层本身
     * @returns 是否同名
     */
    hasLayer(name: string, excludedLayer?: BaseLayer): boolean;
    /**
     * 获取图层内所有数据的 矩形边界值
     * @param [isFormat = false] - 是否格式化，格式化时示例： { xmin: 73.16895, xmax: 134.86816, ymin: 12.2023, ymax: 54.11485 }
     * @returns isFormat：true时，返回格式化对象，isFormat：false时返回Cesium.Rectangle对象
     */
    getRectangle(isFormat?: boolean): Cesium.Rectangle | any;
    /**
     * 将当前图层在map中层级进行 置顶
     * @returns 无
     */
    toTop(): void;
    /**
     * 将当前图层在map中层级进行 置底
     * @returns 无
     */
    toBottom(): void;
}

/**
 * 地形服务图层，一个地图中只会生效一个地形服务图层（单选）
 * @param [options] - 参数对象，包括以下：
 * @param options.terrain - 地形服务配置
 * @param [options.terrain.type = 'xyz'] - 地形类型
 * @param options.terrain.url - 地形服务地址
 * @param [options.terrain.requestVertexNormals = true] - 是否应该从服务器请求额外的光照信息，如果可用，以每个顶点法线的形式。
 * @param [options.terrain.requestWaterMask = false] - 是否应该向服务器请求每个瓦的水掩膜(如果有的话)。
 * @param [options.terrain.requestMetadata = true] - 是否应该从服务器请求每个块元数据(如果可用)。
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示（多个地形服务时，请只设置一个TerrainLayer图层的show为tue）
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class TerrainLayer extends BaseLayer {
    constructor(options?: {
        terrain: {
            type?: TerrainType;
            url: string | Cesium.Resource;
            requestVertexNormals?: boolean;
            requestWaterMask?: boolean;
            requestMetadata?: boolean;
        };
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        flyTo?: boolean;
        flyToOptions?: any;
    });
}

/**
 * ArcGIS生成的金字塔瓦片数据
 * @example
 * let tileLayer = new mars3d.layer.ArcGisCacheLayer({
 *   url: 'http://data.mars3d.cn/tile/hf/guihua/_alllayers/{z}/{y}/{x}.png',
 *   minimumLevel: 1,
 *   maximumLevel: 17,
 *   minimumTerrainLevel: 1,
 *   // "maximumTerrainLevel": 17, //如果需要大于maximumTerrainLevel层时不显示瓦片，则取消注释
 *   rectangle: { xmin: 116.846, xmax: 117.642, ymin: 31.533, ymax: 32.185 }, // 控制切片如果在矩形坐标内才显示，如果不在矩形坐标内不显示
 * })
 * map.addLayer(tileLayer)
 * @param [options] - 参数对象，包括以下：
 * @param options.url - 用于请求瓦片图块的URL模板。它具有以下关键字:
 * <ul>
 *     <li><code>{z}</code>: 切片方案中切片的级别。零级是四叉树金字塔的根。</li>
 *     <li><code>{x}</code>:切片方案中的图块X坐标，其中0是最西端的图块。</li>
 *     <li><code>{y}</code>: 切片方案中的图块Y坐标，其中0是最北的图块。</li>
 *     <li><code>{s}</code>:可用的子域之一，用于克服浏览器对每个主机的并发请求数的限制。</li>
 * </ul>
 * @param [options.subdomains] - URL模板中用于 {s} 占位符的子域。 如果此参数是单个字符串，则字符串中的每个字符都是一个子域。如果是一个数组，数组中的每个元素都是一个子域。
 * @param [options.upperCase] - url请求的瓦片图片名称是否大写。
 * @param [options.minimumLevel = 0] - 瓦片所支持的最低层级，如果数据没有第0层，该参数必须配置,当地图小于该级别时，平台不去请求服务数据。
 * @param [options.maximumLevel] - 瓦片所支持的最大层级,大于该层级时会显示上一层拉伸后的瓦片，当地图大于该级别时，平台不去请求服务数据。
 * @param [options.minimumTerrainLevel] - 展示影像图层的最小地形细节级别，小于该级别时，平台不显示影像数据。
 * @param [options.maximumTerrainLevel] - 展示影像图层的最大地形细节级别，大于该级别时，平台不显示影像数据。
 * @param [options.rectangle] - 瓦片数据的矩形区域范围
 * @param options.rectangle.xmin - 最小经度值, -180 至 180
 * @param options.rectangle.xmax - 最大经度值, -180 至 180
 * @param options.rectangle.ymin - 最小纬度值, -90 至 90
 * @param options.rectangle.ymax - 最大纬度值, -90 至 90
 * @param [options.bbox] - bbox规范的瓦片数据的矩形区域范围,与rectangle二选一即可。
 * @param [options.zIndex] - 控制图层的叠加层次，默认按加载的顺序进行叠加，但也可以自定义叠加顺序，数字大的在上面(只对同类型图层间有效)。
 * @param [options.crs = CRS.EPSG:3857] - 瓦片数据的坐标系信息，默认为墨卡托投影
 * @param [options.chinaCRS] - 标识瓦片的国内坐标系（用于自动纠偏或加偏），自动将瓦片转为map对应的chinaCRS类型坐标系。
 * @param [options.proxy] - 加载资源时要使用的代理服务url。
 * @param [options.templateValues] - 一个对象，用于替换Url中的模板值的键/值对
 * @param [options.queryParameters] - 一个对象，其中包含在检索资源时将发送的查询参数。比如：queryParameters: {'access_token': '123-435-456-000'},
 * @param [options.headers] - 一个对象，将发送的其他HTTP标头。比如：headers: { 'X-My-Header': 'valueOfHeader' },
 * @param [options.enablePickFeatures = true] - 如果为true，则 {@link UrlTemplateImageryProvider#pickFeatures} 请求 pickFeaturesUrl 并尝试解释响应中包含的功能。
 *        如果为 false{@link UrlTemplateImageryProvider#pickFeatures} 会立即返回未定义（表示没有可拾取的内容） 功能）而无需与服务器通信。如果您知道数据，则将此属性设置为false 源不支持选择功能，或者您不希望该提供程序的功能可供选择。注意 可以通过修改 {@link UriTemplateImageryProvider#enablePickFeatures}来动态覆盖 属性。
 * @param [options.getFeatureInfoFormats] - 在某处获取功能信息的格式 调用 {@link UrlTemplateImageryProvider#pickFeatures} 的特定位置。如果这 参数未指定，功能选择已禁用。
 * @param [options.opacity = 1.0] - 透明度，取值范围：0.0-1.0。
 * @param [options.alpha = 1.0] - 同opacity。
 * @param [options.nightAlpha = 1.0] - 当 enableLighting 为 true 时 ，在地球的夜晚区域的透明度，取值范围：0.0-1.0。
 * @param [options.dayAlpha = 1.0] - 当 enableLighting 为 true 时，在地球的白天区域的透明度，取值范围：0.0-1.0。
 * @param [options.brightness = 1.0] - 亮度
 * @param [options.contrast = 1.0] - 对比度。 1.0使用未修改的图像颜色，小于1.0会降低对比度，而大于1.0则会提高对比度。
 * @param [options.hue = 0.0] - 色调。 0.0 时未修改的图像颜色。
 * @param [options.saturation = 1.0] - 饱和度。 1.0使用未修改的图像颜色，小于1.0会降低饱和度，而大于1.0则会增加饱和度。
 * @param [options.gamma = 1.0] - 伽马校正值。 1.0使用未修改的图像颜色。
 * @param [options.invertColor] - 是否反向颜色，内部计算规则: color.r = 1.0 - color.r
 * @param [options.filterColor] - 滤镜颜色，内部计算规则: color.r = color.r * filterColor.r
 * @param [options.maximumAnisotropy = maximum supported] - 使用的最大各向异性水平 用于纹理过滤。如果未指定此参数，则支持最大各向异性 将使用WebGL堆栈。较大的值可使影像在水平方向上看起来更好 视图。
 * @param [options.cutoutRectangle] - 制图矩形，用于裁剪此ImageryLayer的一部分。
 * @param [options.colorToAlpha] - 用作Alpha的颜色。
 * @param [options.colorToAlphaThreshold = 0.004] - 颜色到Alpha的阈值。
 * @param [options.hasAlphaChannel = true] - 如果此图像提供者提供的图像为真 包括一个Alpha通道；否则为假。如果此属性为false，则为Alpha通道，如果 目前，将被忽略。如果此属性为true，则任何没有Alpha通道的图像都将 它们的alpha随处可见。当此属性为false时，内存使用情况 和纹理上传时间可能会减少。
 * @param [options.tileWidth = 256] - 图像图块的像素宽度。
 * @param [options.tileHeight = 256] - 图像图块的像素高度。
 * @param [options.customTags] - 允许替换网址模板中的自定义关键字。该对象必须具有字符串作为键，并且必须具有值。
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class ArcGisCacheLayer extends BaseTileLayer {
    constructor(options?: {
        url: Cesium.Resource | string;
        subdomains?: string | string[];
        upperCase?: boolean;
        minimumLevel?: number;
        maximumLevel?: number;
        minimumTerrainLevel?: number;
        maximumTerrainLevel?: number;
        rectangle?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
        };
        bbox?: number[];
        zIndex?: number;
        crs?: CRS;
        chinaCRS?: ChinaCRS;
        proxy?: string;
        templateValues?: any;
        queryParameters?: any;
        headers?: any;
        enablePickFeatures?: boolean;
        getFeatureInfoFormats?: Cesium.GetFeatureInfoFormat[];
        opacity?: number;
        alpha?: number | ((...params: any[]) => any);
        nightAlpha?: number | ((...params: any[]) => any);
        dayAlpha?: number | ((...params: any[]) => any);
        brightness?: number | ((...params: any[]) => any);
        contrast?: number | ((...params: any[]) => any);
        hue?: number | ((...params: any[]) => any);
        saturation?: number | ((...params: any[]) => any);
        gamma?: number | ((...params: any[]) => any);
        invertColor?: boolean;
        filterColor?: string | Cesium.Color;
        maximumAnisotropy?: number;
        cutoutRectangle?: Cesium.Rectangle;
        colorToAlpha?: Cesium.Color;
        colorToAlphaThreshold?: number;
        hasAlphaChannel?: boolean;
        tileWidth?: number;
        tileHeight?: number;
        customTags?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 创建用于图层的 ImageryProvider对象
     * @param options - Provider参数，同图层构造参数。
     * @returns ImageryProvider类
     */
    static createImageryProvider(options: any): any;
    /**
     * 创建瓦片图层对应的ImageryProvider对象
     * @param [options = {}] - 参数对象，具体每类瓦片图层都不一样。
     * @returns 创建完成的 ImageryProvider 对象
     */
    _createImageryProvider(options?: any): Cesium.UrlTemplateImageryProvider | any;
}

declare namespace ArcGisLayer {
    /**
     * ArcGIS服务图层支持的{@link EventType}事件类型
     * @example
     * //绑定监听事件
     * layer.on(mars3d.EventType.loadConfig, function (event) {
     *   console.log('loadConfig', event)
     * })
     * @property loadConfig - 加载metadata配置信息完成事件
     * @property click - 鼠标单击事件【enablePickFeatures:true时,支持单击获取对应的矢量对象】
     */
    type EventType = {
        loadConfig: string;
        click: string;
    };
}

/**
 * ArcGIS标准服务图层
 * @param [options] - 参数对象，包括以下：
 * @param options.url - ArcGIS MapServer服务的网址。
 * @param [options.subdomains] - URL模板中用于 {s} 占位符的子域。 如果此参数是单个字符串，则字符串中的每个字符都是一个子域。如果是一个数组，数组中的每个元素都是一个子域。
 * @param [options.layers] - 要显示的图层的逗号分隔列表，如果应显示所有图层，则未定义。
 * @param [options.layerDefs] - 可以对动态服务加条件筛选数据，示例："{\"0\":\"用地编号 = 'R'\"}"，具体可以参阅arcgis官方帮助文档理解layerDefs参数。
 * @param [options.usePreCachedTilesIfAvailable = true] - 如果为true，则表示优先使用服务的瓦片图片，没有瓦片时再使用动态服务。如果为false，则将忽略所有瓦片，直接使用动态服务。
 * @param [options.maxTileLevel] - 指定在小于此层级时用瓦片加载，大于该层级用动态服务.可以在瓦片服务类型时，同时使用瓦片和动态服务。
 * @param [options.wkid] - 当非标准EPSG标号时，可以指定wkid值。
 * @param [options.token] - 用于通过ArcGIS MapServer服务进行身份验证的ArcGIS令牌。
 * @param [options.tileDiscardPolicy] - 于确定图块是否为 无效，应将其丢弃。如果未指定此值，则为默认 {@link DiscardMissingTileImagePolicy} 用于平铺的地图服务器，并且{@link NeverTileDiscardPolicy} 用于非平铺地图服务器。在前一种情况下， 我们要求最大图块级别的图块0,0并检查像素（0,0），（200,20），（20,200）， （80,110）和（160，130）。如果所有这些像素都是透明的，则丢弃检查为 禁用，并且不会丢弃任何图块。如果它们中的任何一种具有不透明的颜色， 在这些像素位置具有相同值的图块将被丢弃。的最终结果 对于标准ArcGIS Server，这些默认值应该是正确的图块丢弃。确保 不会丢弃任何图块，为此构造并传递 {@link NeverTileDiscardPolicy} 参数。
 * @param [options.proxy] - 加载资源时要使用的代理服务url。
 * @param [options.templateValues] - 一个对象，用于替换Url中的模板值的键/值对
 * @param [options.queryParameters] - 一个对象，其中包含在检索资源时将发送的查询参数。比如：queryParameters: {'access_token': '123-435-456-000'},
 * @param [options.headers] - 一个对象，将发送的其他HTTP标头。比如：headers: { 'X-My-Header': 'valueOfHeader' },
 * @param [options.minimumLevel = 0] - 瓦片所支持的最低层级，如果数据没有第0层，该参数必须配置,当地图小于该级别时，平台不去请求服务数据。
 * @param [options.maximumLevel] - 瓦片所支持的最大层级,大于该层级时会显示上一层拉伸后的瓦片，当地图大于该级别时，平台不去请求服务数据。
 * @param [options.minimumTerrainLevel] - 展示影像图层的最小地形细节级别，小于该级别时，平台不显示影像数据。
 * @param [options.maximumTerrainLevel] - 展示影像图层的最大地形细节级别，大于该级别时，平台不显示影像数据。
 * @param [options.rectangle] - 瓦片数据的矩形区域范围
 * @param options.rectangle.xmin - 最小经度值, -180 至 180
 * @param options.rectangle.xmax - 最大经度值, -180 至 180
 * @param options.rectangle.ymin - 最小纬度值, -90 至 90
 * @param options.rectangle.ymax - 最大纬度值, -90 至 90
 * @param [options.bbox] - bbox规范的瓦片数据的矩形区域范围,与rectangle二选一即可。
 * @param [options.zIndex] - 控制图层的叠加层次，默认按加载的顺序进行叠加，但也可以自定义叠加顺序，数字大的在上面(只对同类型图层间有效)。
 * @param [options.crs = CRS.EPSG4326] - 瓦片数据的坐标系信息，默认为墨卡托投影
 * @param [options.chinaCRS] - 标识瓦片的国内坐标系（用于自动纠偏或加偏），自动将瓦片转为map对应的chinaCRS类型坐标系。
 * @param [options.enablePickFeatures = true] - 如果为true，则请求 单击坐标处服务中对应的矢量数据 并尝试解释响应中包含的功能。为false时不去服务请求。
 * @param [options.featureToGraphic = mars3d.Util.geoJsonToGraphics] - 解析单击返回的矢量数据信息为Graphic构造参数，可以按需自定义。
 * @param [options.hasToGraphic] - 筛选或判断是否解析，单击获取到的数据进行按需筛选解析，大数据解析很卡，可以设定阀值屏蔽大数据，避免卡顿，number类型时代表字符串长度值。
 * @param [options.highlight] - 鼠标单击高亮显示对应的矢量数据 及其样式，具体见各{@link GraphicType}矢量数据的style参数。
 * @param [options.highlight.type] - 构造成的矢量数据类型。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定，支持：'all'、数组、字符串模板
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数,还包括：
 * @param [options.popupOptions.title] - 固定的标题名称
 * @param [options.popupOptions.titleField] - 标题对应的属性字段名称
 * @param [options.popupOptions.noTitle] - 不显示标题
 * @param [options.opacity = 1.0] - 透明度，取值范围：0.0-1.0。
 * @param [options.alpha = 1.0] - 同opacity。
 * @param [options.nightAlpha = 1.0] - 当 enableLighting 为 true 时 ，在地球的夜晚区域的透明度，取值范围：0.0-1.0。
 * @param [options.dayAlpha = 1.0] - 当 enableLighting 为 true 时，在地球的白天区域的透明度，取值范围：0.0-1.0。
 * @param [options.brightness = 1.0] - 亮度
 * @param [options.contrast = 1.0] - 对比度。 1.0使用未修改的图像颜色，小于1.0会降低对比度，而大于1.0则会提高对比度。
 * @param [options.hue = 0.0] - 色调。 0.0 时未修改的图像颜色。
 * @param [options.saturation = 1.0] - 饱和度。 1.0使用未修改的图像颜色，小于1.0会降低饱和度，而大于1.0则会增加饱和度。
 * @param [options.gamma = 1.0] - 伽马校正值。 1.0使用未修改的图像颜色。
 * @param [options.invertColor] - 是否反向颜色，内部计算规则: color.r = 1.0 - color.r
 * @param [options.filterColor] - 滤镜颜色，内部计算规则: color.r = color.r * filterColor.r
 * @param [options.maximumAnisotropy = maximum supported] - 使用的最大各向异性水平 用于纹理过滤。如果未指定此参数，则支持最大各向异性 将使用WebGL堆栈。较大的值可使影像在水平方向上看起来更好 视图。
 * @param [options.cutoutRectangle] - 制图矩形，用于裁剪此ImageryLayer的一部分。
 * @param [options.colorToAlpha] - 用作Alpha的颜色。
 * @param [options.colorToAlphaThreshold = 0.004] - 颜色到Alpha的阈值。
 * @param [options.hasAlphaChannel = true] - 如果此图像提供者提供的图像为真 包括一个Alpha通道；否则为假。如果此属性为false，则为Alpha通道，如果 目前，将被忽略。如果此属性为true，则任何没有Alpha通道的图像都将 它们的alpha随处可见。当此属性为false时，内存使用情况 和纹理上传时间可能会减少。
 * @param [options.tileWidth = 256] - 图像图块的像素宽度。
 * @param [options.tileHeight = 256] - 图像图块的像素高度。
 * @param [options.customTags] - 允许替换网址模板中的自定义关键字。该对象必须具有字符串作为键，并且必须具有值。
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class ArcGisLayer extends BaseTileLayer {
    constructor(options?: {
        url: Cesium.Resource | string;
        subdomains?: string | string[];
        layers?: string;
        layerDefs?: string;
        usePreCachedTilesIfAvailable?: boolean;
        maxTileLevel?: number;
        wkid?: number;
        token?: string;
        tileDiscardPolicy?: Cesium.TileDiscardPolicy;
        proxy?: string;
        templateValues?: any;
        queryParameters?: any;
        headers?: any;
        minimumLevel?: number;
        maximumLevel?: number;
        minimumTerrainLevel?: number;
        maximumTerrainLevel?: number;
        rectangle?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
        };
        bbox?: number[];
        zIndex?: number;
        crs?: CRS;
        chinaCRS?: ChinaCRS;
        enablePickFeatures?: boolean;
        featureToGraphic?: (...params: any[]) => any;
        hasToGraphic?: number | boolean | ((...params: any[]) => any);
        highlight?: {
            type?: GraphicType | string;
        };
        popup?: string | Globe.getTemplateHtml_template[] | ((...params: any[]) => any);
        popupOptions?: {
            title?: string;
            titleField?: string;
            noTitle?: string;
        };
        opacity?: number;
        alpha?: number | ((...params: any[]) => any);
        nightAlpha?: number | ((...params: any[]) => any);
        dayAlpha?: number | ((...params: any[]) => any);
        brightness?: number | ((...params: any[]) => any);
        contrast?: number | ((...params: any[]) => any);
        hue?: number | ((...params: any[]) => any);
        saturation?: number | ((...params: any[]) => any);
        gamma?: number | ((...params: any[]) => any);
        invertColor?: boolean;
        filterColor?: string | Cesium.Color;
        maximumAnisotropy?: number;
        cutoutRectangle?: Cesium.Rectangle;
        colorToAlpha?: Cesium.Color;
        colorToAlphaThreshold?: number;
        hasAlphaChannel?: boolean;
        tileWidth?: number;
        tileHeight?: number;
        customTags?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 坐标系
     */
    readonly crs: CRS | string;
    /**
     * 是否存在Popup绑定
     * @returns 是否存在Popup绑定
     */
    hasPopup(): boolean;
    /**
     * 绑定鼠标单击对象后的弹窗。
     * @param content - 弹窗内容html字符串，或者回调方法。
     * @param [options] - 控制参数
     * @returns 当前对象本身，可以链式调用
     */
    bindPopup(content: string | ((...params: any[]) => any), options?: Popup.StyleOptions | any): ArcGisLayer;
    /**
     * 解除绑定的鼠标单击对象后的弹窗。
     * @returns 当前对象本身，可以链式调用
     */
    unbindPopup(): BaseGraphicLayer;
    /**
     * 关闭弹窗
     * @returns 当前对象本身，可以链式调用
     */
    closePopup(): BaseGraphicLayer;
    /**
     * 创建用于图层的 ImageryProvider对象
     * @param options - Provider参数，同图层构造参数。
     * @returns ImageryProvider类
     */
    static createImageryProvider(options: any): any;
    /**
     * 创建瓦片图层对应的ImageryProvider对象
     * @param [options = {}] - 参数对象，具体每类瓦片图层都不一样。
     * @returns 创建完成的 ImageryProvider 对象
     */
    _createImageryProvider(options?: any): Cesium.UrlTemplateImageryProvider | any;
    /**
     * 对象添加到地图上的创建钩子方法，
     * 每次add时都会调用
     * @returns 无
     */
    _addedHook(): void;
}

/**
 * ArcGIS瓦片服务（使用XYZ瓦片方式请求读取），可用于ArcGisLayer读取异常时。
 * @example
 * let tileLayer = new mars3d.layer.ArcGisTileLayer({
 *   url: 'http://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer',
 *   minimumLevel: 1,
 *   maximumLevel: 17,
 *   minimumTerrainLevel: 1,
 *   // "maximumTerrainLevel": 17, //如果需要大于maximumTerrainLevel层时不显示瓦片，则取消注释
 *   rectangle: { xmin: 116.846, xmax: 117.642, ymin: 31.533, ymax: 32.185 }, // 控制切片如果在矩形坐标内才显示，如果不在矩形坐标内不显示
 * })
 * map.addLayer(tileLayer)
 * @param [options] - 参数对象，包括以下：
 * @param options.url - 用于请求瓦片图块的URL模板，比如："http://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer"
 * @param [options.subdomains] - URL模板中用于 {s} 占位符的子域。 如果此参数是单个字符串，则字符串中的每个字符都是一个子域。如果是一个数组，数组中的每个元素都是一个子域。
 * @param [options.minimumLevel = 0] - 瓦片所支持的最低层级，如果数据没有第0层，该参数必须配置,当地图小于该级别时，平台不去请求服务数据。
 * @param [options.maximumLevel] - 瓦片所支持的最大层级,大于该层级时会显示上一层拉伸后的瓦片，当地图大于该级别时，平台不去请求服务数据。
 * @param [options.minimumTerrainLevel] - 展示影像图层的最小地形细节级别，小于该级别时，平台不显示影像数据。
 * @param [options.maximumTerrainLevel] - 展示影像图层的最大地形细节级别，大于该级别时，平台不显示影像数据。
 * @param [options.rectangle] - 瓦片数据的矩形区域范围
 * @param options.rectangle.xmin - 最小经度值, -180 至 180
 * @param options.rectangle.xmax - 最大经度值, -180 至 180
 * @param options.rectangle.ymin - 最小纬度值, -90 至 90
 * @param options.rectangle.ymax - 最大纬度值, -90 至 90
 * @param [options.bbox] - bbox规范的瓦片数据的矩形区域范围,与rectangle二选一即可。
 * @param [options.zIndex] - 控制图层的叠加层次，默认按加载的顺序进行叠加，但也可以自定义叠加顺序，数字大的在上面(只对同类型图层间有效)。
 * @param [options.crs = CRS.EPSG:3857] - 瓦片数据的坐标系信息，默认为墨卡托投影
 * @param [options.chinaCRS] - 标识瓦片的国内坐标系（用于自动纠偏或加偏），自动将瓦片转为map对应的chinaCRS类型坐标系。
 * @param [options.proxy] - 加载资源时要使用的代理服务url。
 * @param [options.templateValues] - 一个对象，用于替换Url中的模板值的键/值对
 * @param [options.queryParameters] - 一个对象，其中包含在检索资源时将发送的查询参数。比如：queryParameters: {'access_token': '123-435-456-000'},
 * @param [options.headers] - 一个对象，将发送的其他HTTP标头。比如：headers: { 'X-My-Header': 'valueOfHeader' },
 * @param [options.enablePickFeatures = true] - 如果为true，则 {@link UrlTemplateImageryProvider#pickFeatures} 请求 pickFeaturesUrl 并尝试解释响应中包含的功能。
 *        如果为 false{@link UrlTemplateImageryProvider#pickFeatures} 会立即返回未定义（表示没有可拾取的内容） 功能）而无需与服务器通信。如果您知道数据，则将此属性设置为false 源不支持选择功能，或者您不希望该提供程序的功能可供选择。注意 可以通过修改 {@link UriTemplateImageryProvider#enablePickFeatures}来动态覆盖 属性。
 * @param [options.getFeatureInfoFormats] - 在某处获取功能信息的格式 调用 {@link UrlTemplateImageryProvider#pickFeatures} 的特定位置。如果这 参数未指定，功能选择已禁用。
 * @param [options.opacity = 1.0] - 透明度，取值范围：0.0-1.0。
 * @param [options.alpha = 1.0] - 同opacity。
 * @param [options.nightAlpha = 1.0] - 当 enableLighting 为 true 时 ，在地球的夜晚区域的透明度，取值范围：0.0-1.0。
 * @param [options.dayAlpha = 1.0] - 当 enableLighting 为 true 时，在地球的白天区域的透明度，取值范围：0.0-1.0。
 * @param [options.brightness = 1.0] - 亮度
 * @param [options.contrast = 1.0] - 对比度。 1.0使用未修改的图像颜色，小于1.0会降低对比度，而大于1.0则会提高对比度。
 * @param [options.hue = 0.0] - 色调。 0.0 时未修改的图像颜色。
 * @param [options.saturation = 1.0] - 饱和度。 1.0使用未修改的图像颜色，小于1.0会降低饱和度，而大于1.0则会增加饱和度。
 * @param [options.gamma = 1.0] - 伽马校正值。 1.0使用未修改的图像颜色。
 * @param [options.invertColor] - 是否反向颜色，内部计算规则: color.r = 1.0 - color.r
 * @param [options.filterColor] - 滤镜颜色，内部计算规则: color.r = color.r * filterColor.r
 * @param [options.maximumAnisotropy = maximum supported] - 使用的最大各向异性水平 用于纹理过滤。如果未指定此参数，则支持最大各向异性 将使用WebGL堆栈。较大的值可使影像在水平方向上看起来更好 视图。
 * @param [options.cutoutRectangle] - 制图矩形，用于裁剪此ImageryLayer的一部分。
 * @param [options.colorToAlpha] - 用作Alpha的颜色。
 * @param [options.colorToAlphaThreshold = 0.004] - 颜色到Alpha的阈值。
 * @param [options.hasAlphaChannel = true] - 如果此图像提供者提供的图像为真 包括一个Alpha通道；否则为假。如果此属性为false，则为Alpha通道，如果 目前，将被忽略。如果此属性为true，则任何没有Alpha通道的图像都将 它们的alpha随处可见。当此属性为false时，内存使用情况 和纹理上传时间可能会减少。
 * @param [options.tileWidth = 256] - 图像图块的像素宽度。
 * @param [options.tileHeight = 256] - 图像图块的像素高度。
 * @param [options.customTags] - 允许替换网址模板中的自定义关键字。该对象必须具有字符串作为键，并且必须具有值。
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class ArcGisTileLayer extends BaseTileLayer {
    constructor(options?: {
        url: string;
        subdomains?: string | string[];
        minimumLevel?: number;
        maximumLevel?: number;
        minimumTerrainLevel?: number;
        maximumTerrainLevel?: number;
        rectangle?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
        };
        bbox?: number[];
        zIndex?: number;
        crs?: CRS;
        chinaCRS?: ChinaCRS;
        proxy?: string;
        templateValues?: any;
        queryParameters?: any;
        headers?: any;
        enablePickFeatures?: boolean;
        getFeatureInfoFormats?: Cesium.GetFeatureInfoFormat[];
        opacity?: number;
        alpha?: number | ((...params: any[]) => any);
        nightAlpha?: number | ((...params: any[]) => any);
        dayAlpha?: number | ((...params: any[]) => any);
        brightness?: number | ((...params: any[]) => any);
        contrast?: number | ((...params: any[]) => any);
        hue?: number | ((...params: any[]) => any);
        saturation?: number | ((...params: any[]) => any);
        gamma?: number | ((...params: any[]) => any);
        invertColor?: boolean;
        filterColor?: string | Cesium.Color;
        maximumAnisotropy?: number;
        cutoutRectangle?: Cesium.Rectangle;
        colorToAlpha?: Cesium.Color;
        colorToAlphaThreshold?: number;
        hasAlphaChannel?: boolean;
        tileWidth?: number;
        tileHeight?: number;
        customTags?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 创建用于图层的 ImageryProvider对象
     * @param options - Provider参数，同图层构造参数。
     * @returns ImageryProvider类
     */
    static createImageryProvider(options: any): any;
    /**
     * 创建瓦片图层对应的ImageryProvider对象
     * @param [options = {}] - 参数对象，具体每类瓦片图层都不一样。
     * @returns 创建完成的 ImageryProvider 对象
     */
    _createImageryProvider(options?: any): Cesium.UrlTemplateImageryProvider | any;
}

/**
 * 百度地图
 * @param [options] - 参数对象，包括以下：
 * @param [options.layer] - 图层类型，以及以下内容:<br />
 * <ul>
 *     <li><code>vec</code>: 电子图层</li>
 *     <li><code>img_d</code>: 卫星影像</li>
 *     <li><code>img_z</code>: 影像注记</li>
 *     <li><code>custom</code>: 自定义样式图层</li>
 *     <li><code>time</code>: 实时路况信息</li>
 *     <li><code>streetview</code>: 街景覆盖图层</li>
 * </ul>
 * @param [options.url] - 当未指定layer类型时，可以传入外部指定url的服务地址，常用于离线服务。
 * @param [options.subdomains] - URL模板中用于 {s} 占位符的子域。 如果此参数是单个字符串，则字符串中的每个字符都是一个子域。如果是一个数组，数组中的每个元素都是一个子域。
 * @param [options.bigfont] - 当layer为vec或img_z时，来标识使用是否大写字体。
 * @param [options.style] - 当layer为custom时，标识的样式，可选值：dark,midnight,grayscale,hardedge,light,redalert,googlelite,grassgreen,pink,darkgreen,bluish
 * @param [options.minimumLevel = 0] - 瓦片所支持的最低层级，如果数据没有第0层，该参数必须配置,当地图小于该级别时，平台不去请求服务数据。
 * @param [options.maximumLevel] - 瓦片所支持的最大层级,大于该层级时会显示上一层拉伸后的瓦片，当地图大于该级别时，平台不去请求服务数据。
 * @param [options.minimumTerrainLevel] - 展示影像图层的最小地形细节级别，小于该级别时，平台不显示影像数据。
 * @param [options.maximumTerrainLevel] - 展示影像图层的最大地形细节级别，大于该级别时，平台不显示影像数据。
 * @param [options.rectangle] - 瓦片数据的矩形区域范围
 * @param options.rectangle.xmin - 最小经度值, -180 至 180
 * @param options.rectangle.xmax - 最大经度值, -180 至 180
 * @param options.rectangle.ymin - 最小纬度值, -90 至 90
 * @param options.rectangle.ymax - 最大纬度值, -90 至 90
 * @param [options.bbox] - bbox规范的瓦片数据的矩形区域范围,与rectangle二选一即可。
 * @param [options.zIndex] - 控制图层的叠加层次，默认按加载的顺序进行叠加，但也可以自定义叠加顺序，数字大的在上面(只对同类型图层间有效)。
 * @param [options.chinaCRS = ChinaCRS.BAIDU] - 标识瓦片的国内坐标系（用于自动纠偏或加偏），自动将瓦片转为map对应的chinaCRS类型坐标系。
 * @param [options.proxy] - 加载资源时要使用的代理服务url。
 * @param [options.templateValues] - 一个对象，用于替换Url中的模板值的键/值对
 * @param [options.queryParameters] - 一个对象，其中包含在检索资源时将发送的查询参数。比如：queryParameters: {'access_token': '123-435-456-000'},
 * @param [options.headers] - 一个对象，将发送的其他HTTP标头。比如：headers: { 'X-My-Header': 'valueOfHeader' },
 * @param [options.opacity = 1.0] - 透明度，取值范围：0.0-1.0。
 * @param [options.alpha = 1.0] - 同opacity。
 * @param [options.nightAlpha = 1.0] - 当 enableLighting 为 true 时 ，在地球的夜晚区域的透明度，取值范围：0.0-1.0。
 * @param [options.dayAlpha = 1.0] - 当 enableLighting 为 true 时，在地球的白天区域的透明度，取值范围：0.0-1.0。
 * @param [options.brightness = 1.0] - 亮度
 * @param [options.contrast = 1.0] - 对比度。 1.0使用未修改的图像颜色，小于1.0会降低对比度，而大于1.0则会提高对比度。
 * @param [options.hue = 0.0] - 色调。 0.0 时未修改的图像颜色。
 * @param [options.saturation = 1.0] - 饱和度。 1.0使用未修改的图像颜色，小于1.0会降低饱和度，而大于1.0则会增加饱和度。
 * @param [options.gamma = 1.0] - 伽马校正值。 1.0使用未修改的图像颜色。
 * @param [options.invertColor] - 是否反向颜色，内部计算规则: color.r = 1.0 - color.r
 * @param [options.filterColor] - 滤镜颜色，内部计算规则: color.r = color.r * filterColor.r
 * @param [options.maximumAnisotropy = maximum supported] - 使用的最大各向异性水平 用于纹理过滤。如果未指定此参数，则支持最大各向异性 将使用WebGL堆栈。较大的值可使影像在水平方向上看起来更好 视图。
 * @param [options.cutoutRectangle] - 制图矩形，用于裁剪此ImageryLayer的一部分。
 * @param [options.colorToAlpha] - 用作Alpha的颜色。
 * @param [options.colorToAlphaThreshold = 0.004] - 颜色到Alpha的阈值。
 * @param [options.hasAlphaChannel = true] - 如果此图像提供者提供的图像为真 包括一个Alpha通道；否则为假。如果此属性为false，则为Alpha通道，如果 目前，将被忽略。如果此属性为true，则任何没有Alpha通道的图像都将 它们的alpha随处可见。当此属性为false时，内存使用情况 和纹理上传时间可能会减少。
 * @param [options.tileWidth = 256] - 图像图块的像素宽度。
 * @param [options.tileHeight = 256] - 图像图块的像素高度。
 * @param [options.customTags] - 允许替换网址模板中的自定义关键字。该对象必须具有字符串作为键，并且必须具有值。
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class BaiduLayer extends BaseTileLayer {
    constructor(options?: {
        layer?: string;
        url?: string;
        subdomains?: string | string[];
        bigfont?: boolean;
        style?: string;
        minimumLevel?: number;
        maximumLevel?: number;
        minimumTerrainLevel?: number;
        maximumTerrainLevel?: number;
        rectangle?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
        };
        bbox?: number[];
        zIndex?: number;
        chinaCRS?: ChinaCRS;
        proxy?: string;
        templateValues?: any;
        queryParameters?: any;
        headers?: any;
        opacity?: number;
        alpha?: number | ((...params: any[]) => any);
        nightAlpha?: number | ((...params: any[]) => any);
        dayAlpha?: number | ((...params: any[]) => any);
        brightness?: number | ((...params: any[]) => any);
        contrast?: number | ((...params: any[]) => any);
        hue?: number | ((...params: any[]) => any);
        saturation?: number | ((...params: any[]) => any);
        gamma?: number | ((...params: any[]) => any);
        invertColor?: boolean;
        filterColor?: string | Cesium.Color;
        maximumAnisotropy?: number;
        cutoutRectangle?: Cesium.Rectangle;
        colorToAlpha?: Cesium.Color;
        colorToAlphaThreshold?: number;
        hasAlphaChannel?: boolean;
        tileWidth?: number;
        tileHeight?: number;
        customTags?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 创建用于图层的 ImageryProvider对象
     * @param options - Provider参数，同图层构造参数。
     * @returns ImageryProvider类
     */
    static createImageryProvider(options: any): any;
    /**
     * 创建瓦片图层对应的ImageryProvider对象
     * @param [options = {}] - 参数对象，具体每类瓦片图层都不一样。
     * @returns 创建完成的 ImageryProvider 对象
     */
    _createImageryProvider(options?: any): Cesium.UrlTemplateImageryProvider | any;
}

declare namespace BaseTileLayer {
    /**
     * 当前栅格瓦片图层支持的{@link EventType}事件类型
     * @example
     * //绑定监听事件
     * layer.on(mars3d.EventType.addTile, function (event) {
     *   console.log('addTile', event)
     * })
     * @property add - 添加对象
     * @property remove - 移除对象
     * @property show - 显示了对象
     * @property hide - 隐藏了对象
     * @property load - 瓦片图层初始化完成
     * @property addTile - 栅格瓦片图层，开始加载瓦片
     * @property addTileSuccess - 栅格瓦片图层，加载瓦片完成
     * @property addTileError - 栅格瓦片图层，加载瓦片出错了
     * @property click - 鼠标单击事件【WMS等动态服务enablePickFeatures:true时,支持单击获取对应的矢量对象】
     * @property popupOpen - 当存在popup时，popup弹窗打开后
     * @property popupClose - 当存在popup时，popup弹窗关闭
     * @property highlightOpen - highlight高亮后
     * @property highlightClose - highlight关闭后
     */
    type EventType = {
        add: string;
        remove: string;
        show: string;
        hide: string;
        load: string;
        addTile: string;
        addTileSuccess: string;
        addTileError: string;
        click: string;
        popupOpen: string;
        popupClose: string;
        highlightOpen: string;
        highlightClose: string;
    };
}

/**
 * 栅格Tile瓦片图层 基类
 * @param [options] - 参数对象，包括以下：
 * @param [options.minimumLevel = 0] - 瓦片所支持的最低层级，如果数据没有第0层，该参数必须配置,当地图小于该级别时，平台不去请求服务数据。
 * @param [options.maximumLevel] - 瓦片所支持的最大层级,大于该层级时会显示上一层拉伸后的瓦片，当地图大于该级别时，平台不去请求服务数据。
 * @param [options.minimumTerrainLevel] - 展示影像图层的最小地形细节级别，小于该级别时，平台不显示影像数据。
 * @param [options.maximumTerrainLevel] - 展示影像图层的最大地形细节级别，大于该级别时，平台不显示影像数据。
 * @param [options.rectangle] - 瓦片数据的矩形区域范围
 * @param options.rectangle.xmin - 最小经度值, -180 至 180
 * @param options.rectangle.xmax - 最大经度值, -180 至 180
 * @param options.rectangle.ymin - 最小纬度值, -90 至 90
 * @param options.rectangle.ymax - 最大纬度值, -90 至 90
 * @param [options.bbox] - bbox规范的瓦片数据的矩形区域范围,与rectangle二选一即可。
 * @param [options.zIndex] - 控制图层的叠加层次，默认按加载的顺序进行叠加，但也可以自定义叠加顺序，数字大的在上面(只对同类型图层间有效)。
 * @param [options.crs = CRS.EPSG:3857] - 瓦片数据的坐标系信息，默认为墨卡托投影
 * @param [options.chinaCRS] - 标识瓦片的国内坐标系（用于自动纠偏或加偏），自动将瓦片转为map对应的chinaCRS类型坐标系。
 * @param [options.proxy] - 加载资源时要使用的代理服务url。
 * @param [options.templateValues] - 一个对象，用于替换Url中的模板值的键/值对
 * @param [options.queryParameters] - 一个对象，其中包含在检索资源时将发送的查询参数。比如：queryParameters: {'access_token': '123-435-456-000'},
 * @param [options.headers] - 一个对象，将发送的其他HTTP标头。比如：headers: { 'X-My-Header': 'valueOfHeader' },
 * @param [options.subdomains] - URL模板中用于 {s} 占位符的子域。 如果此参数是单个字符串，则字符串中的每个字符都是一个子域。如果是 一个数组，数组中的每个元素都是一个子域。
 * @param [options.enablePickFeatures = true] - 如果为true，则 {@link UrlTemplateImageryProvider#pickFeatures} 请求 pickFeaturesUrl 并尝试解释响应中包含的功能。
 *        如果为 false{@link UrlTemplateImageryProvider#pickFeatures} 会立即返回未定义（表示没有可拾取的内容） 功能）而无需与服务器通信。如果您知道数据，则将此属性设置为false 源不支持选择功能，或者您不希望该提供程序的功能可供选择。注意 可以通过修改 {@link UriTemplateImageryProvider#enablePickFeatures}来动态覆盖 属性。
 * @param [options.getFeatureInfoFormats] - 在某处获取功能信息的格式 调用 {@link UrlTemplateImageryProvider#pickFeatures} 的特定位置。如果这 参数未指定，功能选择已禁用。
 * @param [options.opacity = 1.0] - 透明度，取值范围：0.0-1.0。
 * @param [options.alpha = 1.0] - 同opacity。
 * @param [options.nightAlpha = 1.0] - 当 enableLighting 为 true 时 ，在地球的夜晚区域的透明度，取值范围：0.0-1.0。
 * @param [options.dayAlpha = 1.0] - 当 enableLighting 为 true 时，在地球的白天区域的透明度，取值范围：0.0-1.0。
 * @param [options.brightness = 1.0] - 亮度
 * @param [options.contrast = 1.0] - 对比度。 1.0使用未修改的图像颜色，小于1.0会降低对比度，而大于1.0则会提高对比度。
 * @param [options.hue = 0.0] - 色调。 0.0 时未修改的图像颜色。
 * @param [options.saturation = 1.0] - 饱和度。 1.0使用未修改的图像颜色，小于1.0会降低饱和度，而大于1.0则会增加饱和度。
 * @param [options.gamma = 1.0] - 伽马校正值。 1.0使用未修改的图像颜色。
 * @param [options.invertColor] - 是否反向颜色，内部计算规则: color.r = 1.0 - color.r
 * @param [options.filterColor] - 滤镜颜色，内部计算规则: color.r = color.r * filterColor.r
 * @param [options.maximumAnisotropy = maximum supported] - 使用的最大各向异性水平 用于纹理过滤。如果未指定此参数，则支持最大各向异性 将使用WebGL堆栈。较大的值可使影像在水平方向上看起来更好 视图。
 * @param [options.cutoutRectangle] - 制图矩形，用于裁剪此ImageryLayer的一部分。
 * @param [options.colorToAlpha] - 用作Alpha的颜色。
 * @param [options.colorToAlphaThreshold = 0.004] - 颜色到Alpha的阈值。
 * @param [options.hasAlphaChannel = true] - 如果此图像提供者提供的图像为真 包括一个Alpha通道；否则为假。如果此属性为false，则为Alpha通道，如果 目前，将被忽略。如果此属性为true，则任何没有Alpha通道的图像都将 它们的alpha随处可见。当此属性为false时，内存使用情况 和纹理上传时间可能会减少。
 * @param [options.tileWidth = 256] - 图像图块的像素宽度。
 * @param [options.tileHeight = 256] - 图像图块的像素高度。
 * @param [options.customTags] - 允许替换网址模板中的自定义关键字。该对象必须具有字符串作为键，并且必须具有值。
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class BaseTileLayer extends BaseLayer {
    constructor(options?: {
        minimumLevel?: number;
        maximumLevel?: number;
        minimumTerrainLevel?: number;
        maximumTerrainLevel?: number;
        rectangle?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
        };
        bbox?: number[];
        zIndex?: number;
        crs?: CRS;
        chinaCRS?: ChinaCRS;
        proxy?: string;
        templateValues?: any;
        queryParameters?: any;
        headers?: any;
        subdomains?: string | string[];
        enablePickFeatures?: boolean;
        getFeatureInfoFormats?: Cesium.GetFeatureInfoFormat[];
        opacity?: number;
        alpha?: number | ((...params: any[]) => any);
        nightAlpha?: number | ((...params: any[]) => any);
        dayAlpha?: number | ((...params: any[]) => any);
        brightness?: number | ((...params: any[]) => any);
        contrast?: number | ((...params: any[]) => any);
        hue?: number | ((...params: any[]) => any);
        saturation?: number | ((...params: any[]) => any);
        gamma?: number | ((...params: any[]) => any);
        invertColor?: boolean;
        filterColor?: string | Cesium.Color;
        maximumAnisotropy?: number;
        cutoutRectangle?: Cesium.Rectangle;
        colorToAlpha?: Cesium.Color;
        colorToAlphaThreshold?: number;
        hasAlphaChannel?: boolean;
        tileWidth?: number;
        tileHeight?: number;
        customTags?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 当前是否为瓦片图层
     */
    readonly isTile: boolean;
    /**
     * 瓦片图层对应的内部ImageryLayer对象
     */
    readonly layer: Cesium.ImageryLayer;
    /**
     * 瓦片图层对应的内部ImageryProvider对象
     */
    readonly imageryProvider: Cesium.ImageryProvider;
    /**
     * 坐标系
     */
    readonly crs: CRS | string;
    /**
     * 透明度，同opacity。从0.0到1.0。
     */
    alpha: number;
    /**
     * 亮度，取值范围：0.0-1.0。
     */
    brightness: number;
    /**
     * 对比度。 1.0使用未修改的图像颜色，小于1.0会降低对比度，而大于1.0则会提高对比度。
     */
    contrast: number;
    /**
     * 色调。 0.0 时未修改的图像颜色。
     */
    hue: number;
    /**
     * 饱和度。 1.0使用未修改的图像颜色，小于1.0会降低饱和度，而大于1.0则会增加饱和度。
     */
    saturation: number;
    /**
     * 伽马校正值。 1.0使用未修改的图像颜色。
     */
    gamma: number;
    /**
     * 是否可以调整图层顺序（在同类型图层间）
     */
    readonly hasZIndex: boolean;
    /**
     * 图层顺序，数字大的在上面。（当hasZIndex为true时）
     */
    zIndex: number;
    /**
     * 瓦片数据范围
     */
    rectangle: Cesium.Rectangle;
    /**
     * 创建瓦片图层对应的ImageryProvider对象
     * @param [options = {}] - 参数对象，具体每类瓦片图层都不一样。
     * @returns 创建完成的 ImageryProvider 对象
     */
    _createImageryProvider(options?: any): Cesium.UrlTemplateImageryProvider | any;
    /**
     * 重新加载图层
     * @returns 无
     */
    reload(): void;
    /**
     * 设置透明度
     * @param value - 透明度
     * @returns 无
     */
    setOpacity(value: number): void;
    /**
     * 将当前图层在map中层级进行 置顶
     * @returns 无
     */
    toTop(): void;
    /**
     * 将当前图层在map中层级进行 置底
     * @returns 无
     */
    toBottom(): void;
    /**
     * 绑定鼠标移入或单击后的 对象高亮
     * @param [options] - 高亮的样式，具体见各{@link GraphicType}矢量数据的style参数。
     * @param [options.type] - 事件类型，默认为鼠标移入高亮，也可以指定'click'单击高亮.
     * @returns 无
     */
    bindHighlight(options?: {
        type?: string;
    }): void;
    /**
     * 解绑鼠标移入或单击后的高亮处理
     * @returns 无
     */
    unbindHighlight(): void;
    /**
     * 高亮对象。
     * @param [highlightStyle] - 高亮的样式，具体见各{@link GraphicType}矢量数据的style参数。
     * @param [closeLast = true] - 是否清除地图上上一次的高亮对象
     * @returns 无
     */
    openHighlight(highlightStyle?: any, closeLast?: boolean): void;
    /**
     * 清除已选中的高亮，原有style的配置项需要与highlightStyle配置有一一对应关系，否则无法清除
     * @returns 无
     */
    closeHighlight(): void;
    /**
     * 透明度，取值范围：0.0-1.0
     */
    opacity: number;
    /**
     * 对象添加到地图上的创建钩子方法，
     * 每次add时都会调用
     * @returns 无
     */
    _addedHook(): void;
    /**
     * 飞行定位至图层数据所在的视角
     * @param [options = {}] - 参数对象:
     * @param [options.radius] - 点状数据时，相机距离目标点的距离（单位：米）
     * @param [options.scale = 1.2] - 线面数据时，缩放比例，可以控制视角比矩形略大一些，这样效果更友好。
     * @param [options.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
     * @param [options.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
     * @param [options.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
     * @param [options.minHeight] - 定位时相机的最小高度值，用于控制避免异常数据
     * @param [options.maxHeight] - 定位时相机的最大高度值，用于控制避免异常数据
     * @param [options.height] - 矩形区域时的高度值, 默认取地形高度值
     * @param [options.duration] - 飞行时间（单位：秒）。如果省略，SDK内部会根据飞行距离计算出理想的飞行时间。
     * @param [options.complete] - 飞行完成后要执行的函数。
     * @param [options.cancel] - 飞行取消时要执行的函数。
     * @param [options.endTransform] - 变换矩阵表示飞行结束时相机所处的参照系。
     * @param [options.maximumHeight] - 飞行高峰时的最大高度。
     * @param [options.pitchAdjustHeight] - 如果相机飞得比这个值高，在飞行过程中调整俯仰以向下看，并保持地球在视口。
     * @param [options.flyOverLongitude] - 地球上的两点之间总有两条路。这个选项迫使相机选择战斗方向飞过那个经度。
     * @param [options.flyOverLongitudeWeight] - 仅在通过flyOverLongitude指定的lon上空飞行，只要该方式的时间不超过flyOverLongitudeWeight的短途时间。
     * @param [options.convert = true] - 是否将目的地从世界坐标转换为场景坐标（仅在不使用3D时相关）。
     * @param [options.easingFunction] - 控制在飞行过程中如何插值时间。
     * @returns 如果飞行成功则解析为true的承诺，如果当前未在场景中可视化目标或取消飞行，则为false的Promise
     */
    flyTo(options?: {
        radius?: number;
        scale?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        minHeight?: number;
        maxHeight?: number;
        height?: number;
        duration?: number;
        complete?: Cesium.Camera.FlightCompleteCallback;
        cancel?: Cesium.Camera.FlightCancelledCallback;
        endTransform?: Cesium.Matrix4;
        maximumHeight?: number;
        pitchAdjustHeight?: number;
        flyOverLongitude?: number;
        flyOverLongitudeWeight?: number;
        convert?: boolean;
        easingFunction?: Cesium.EasingFunction.Callback;
    }): Promise<boolean>;
}

/**
 * 微软bing地图
 * @property [options.key = mars3d.Token.bing] - 您的应用程序的Bing Maps密钥，可以在{@link https://www.bingmapsportal.com/}中创建
 * @property [mapStyle = Cesium.BingMapsStyle.AERIAL] - 要加载的必应地图图像的类型。
 * @property [tileProtocol] - 加载图块时要使用的协议，例如' http'或' https'。 默认情况下，将使用与页面相同的协议来加载图块。
 * @property [culture = 'zh-Hans'] - 请求Bing Maps图像时要使用的区域性标记。不支持所有文化。请参阅   {@link http://msdn.microsoft.com/en-us/library/hh441729.aspx}了解有关支持的文化的信息。
 * @param [options] - 参数对象，包括以下：
 * @param [options.url = 'https://dev.virtualearth.net'] - 托管影像图像的Bing Maps服务器的网址。
 * @param [options.tileDiscardPolicy] - 于确定图块是否为无效，应将其丢弃。如果未指定此值，则为默认 {@link DiscardMissingTileImagePolicy} 用于平铺的地图服务器，并且{@link NeverTileDiscardPolicy} 用于非平铺地图服务器。在前一种情况下， 我们要求最大图块级别的图块0,0并检查像素（0,0），（200,20），（20,200）， （80,110）和（160，130）。如果所有这些像素都是透明的，则丢弃检查为 禁用，并且不会丢弃任何图块。如果它们中的任何一种具有不透明的颜色， 在这些像素位置具有相同值的图块将被丢弃。的最终结果 对于标准ArcGIS Server，这些默认值应该是正确的图块丢弃。确保 不会丢弃任何图块，为此构造并传递 {@link NeverTileDiscardPolicy} 参数。
 * @param [options.minimumLevel = 0] - 瓦片所支持的最低层级，如果数据没有第0层，该参数必须配置,当地图小于该级别时，平台不去请求服务数据。
 * @param [options.maximumLevel] - 瓦片所支持的最大层级,大于该层级时会显示上一层拉伸后的瓦片，当地图大于该级别时，平台不去请求服务数据。
 * @param [options.minimumTerrainLevel] - 展示影像图层的最小地形细节级别，小于该级别时，平台不显示影像数据。
 * @param [options.maximumTerrainLevel] - 展示影像图层的最大地形细节级别，大于该级别时，平台不显示影像数据。
 * @param [options.rectangle] - 瓦片数据的矩形区域范围
 * @param options.rectangle.xmin - 最小经度值, -180 至 180
 * @param options.rectangle.xmax - 最大经度值, -180 至 180
 * @param options.rectangle.ymin - 最小纬度值, -90 至 90
 * @param options.rectangle.ymax - 最大纬度值, -90 至 90
 * @param [options.bbox] - bbox规范的瓦片数据的矩形区域范围,与rectangle二选一即可。
 * @param [options.zIndex] - 控制图层的叠加层次，默认按加载的顺序进行叠加，但也可以自定义叠加顺序，数字大的在上面(只对同类型图层间有效)。
 * @param [options.crs = CRS.EPSG:3857] - 瓦片数据的坐标系信息，默认为墨卡托投影
 * @param [options.chinaCRS] - 标识瓦片的国内坐标系（用于自动纠偏或加偏），自动将瓦片转为map对应的chinaCRS类型坐标系。
 * @param [options.proxy] - 加载资源时要使用的代理服务url。
 * @param [options.templateValues] - 一个对象，用于替换Url中的模板值的键/值对
 * @param [options.queryParameters] - 一个对象，其中包含在检索资源时将发送的查询参数。比如：queryParameters: {'access_token': '123-435-456-000'},
 * @param [options.headers] - 一个对象，将发送的其他HTTP标头。比如：headers: { 'X-My-Header': 'valueOfHeader' },
 * @param [options.subdomains] - URL模板中用于 {s} 占位符的子域。 如果此参数是单个字符串，则字符串中的每个字符都是一个子域。如果是 一个数组，数组中的每个元素都是一个子域。
 * @param [options.enablePickFeatures = true] - 如果为true，则 {@link UrlTemplateImageryProvider#pickFeatures} 请求 pickFeaturesUrl 并尝试解释响应中包含的功能。
 *        如果为 false{@link UrlTemplateImageryProvider#pickFeatures} 会立即返回未定义（表示没有可拾取的内容） 功能）而无需与服务器通信。如果您知道数据，则将此属性设置为false 源不支持选择功能，或者您不希望该提供程序的功能可供选择。注意 可以通过修改 {@link UriTemplateImageryProvider#enablePickFeatures}来动态覆盖 属性。
 * @param [options.getFeatureInfoFormats] - 在某处获取功能信息的格式 调用 {@link UrlTemplateImageryProvider#pickFeatures} 的特定位置。如果这 参数未指定，功能选择已禁用。
 * @param [options.opacity = 1.0] - 透明度，取值范围：0.0-1.0。
 * @param [options.alpha = 1.0] - 同opacity。
 * @param [options.nightAlpha = 1.0] - 当 enableLighting 为 true 时 ，在地球的夜晚区域的透明度，取值范围：0.0-1.0。
 * @param [options.dayAlpha = 1.0] - 当 enableLighting 为 true 时，在地球的白天区域的透明度，取值范围：0.0-1.0。
 * @param [options.brightness = 1.0] - 亮度
 * @param [options.contrast = 1.0] - 对比度。 1.0使用未修改的图像颜色，小于1.0会降低对比度，而大于1.0则会提高对比度。
 * @param [options.hue = 0.0] - 色调。 0.0 时未修改的图像颜色。
 * @param [options.saturation = 1.0] - 饱和度。 1.0使用未修改的图像颜色，小于1.0会降低饱和度，而大于1.0则会增加饱和度。
 * @param [options.gamma = 1.0] - 伽马校正值。 1.0使用未修改的图像颜色。
 * @param [options.invertColor] - 是否反向颜色，内部计算规则: color.r = 1.0 - color.r
 * @param [options.filterColor] - 滤镜颜色，内部计算规则: color.r = color.r * filterColor.r
 * @param [options.maximumAnisotropy = maximum supported] - 使用的最大各向异性水平 用于纹理过滤。如果未指定此参数，则支持最大各向异性 将使用WebGL堆栈。较大的值可使影像在水平方向上看起来更好 视图。
 * @param [options.cutoutRectangle] - 制图矩形，用于裁剪此ImageryLayer的一部分。
 * @param [options.colorToAlpha] - 用作Alpha的颜色。
 * @param [options.colorToAlphaThreshold = 0.004] - 颜色到Alpha的阈值。
 * @param [options.hasAlphaChannel = true] - 如果此图像提供者提供的图像为真 包括一个Alpha通道；否则为假。如果此属性为false，则为Alpha通道，如果 目前，将被忽略。如果此属性为true，则任何没有Alpha通道的图像都将 它们的alpha随处可见。当此属性为false时，内存使用情况 和纹理上传时间可能会减少。
 * @param [options.tileWidth = 256] - 图像图块的像素宽度。
 * @param [options.tileHeight = 256] - 图像图块的像素高度。
 * @param [options.customTags] - 允许替换网址模板中的自定义关键字。该对象必须具有字符串作为键，并且必须具有值。
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class BingLayer extends BaseTileLayer {
    constructor(options?: {
        url?: Cesium.Resource | string;
        tileDiscardPolicy?: Cesium.TileDiscardPolicy;
        minimumLevel?: number;
        maximumLevel?: number;
        minimumTerrainLevel?: number;
        maximumTerrainLevel?: number;
        rectangle?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
        };
        bbox?: number[];
        zIndex?: number;
        crs?: CRS;
        chinaCRS?: ChinaCRS;
        proxy?: string;
        templateValues?: any;
        queryParameters?: any;
        headers?: any;
        subdomains?: string | string[];
        enablePickFeatures?: boolean;
        getFeatureInfoFormats?: Cesium.GetFeatureInfoFormat[];
        opacity?: number;
        alpha?: number | ((...params: any[]) => any);
        nightAlpha?: number | ((...params: any[]) => any);
        dayAlpha?: number | ((...params: any[]) => any);
        brightness?: number | ((...params: any[]) => any);
        contrast?: number | ((...params: any[]) => any);
        hue?: number | ((...params: any[]) => any);
        saturation?: number | ((...params: any[]) => any);
        gamma?: number | ((...params: any[]) => any);
        invertColor?: boolean;
        filterColor?: string | Cesium.Color;
        maximumAnisotropy?: number;
        cutoutRectangle?: Cesium.Rectangle;
        colorToAlpha?: Cesium.Color;
        colorToAlphaThreshold?: number;
        hasAlphaChannel?: boolean;
        tileWidth?: number;
        tileHeight?: number;
        customTags?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 创建用于图层的 ImageryProvider对象
     * @param options - Provider参数，同图层构造参数。
     * @returns ImageryProvider类
     */
    static createImageryProvider(options: any): any;
    /**
     * 创建瓦片图层对应的ImageryProvider对象
     * @param [options = {}] - 参数对象，具体每类瓦片图层都不一样。
     * @returns 创建完成的 ImageryProvider 对象
     */
    _createImageryProvider(options?: any): Cesium.UrlTemplateImageryProvider | any;
    /**
     * 要加载的必应地图图像的类型。
    */
    mapStyle?: Cesium.BingMapsStyle;
    /**
     * 加载图块时要使用的协议，例如' http'或' https'。 默认情况下，将使用与页面相同的协议来加载图块。
    */
    tileProtocol?: string;
    /**
     * 请求Bing Maps图像时要使用的区域性标记。不支持所有文化。请参阅   {@link http://msdn.microsoft.com/en-us/library/hh441729.aspx}了解有关支持的文化的信息。
    */
    culture?: string;
}

/**
 * 空白图层，目前主要在Lod矢量数据加载作为事件触发使用。
 * @param [options] - 参数对象，包括以下：
 * @param [options.minimumLevel = 0] - 瓦片所支持的最低层级，如果数据没有第0层，该参数必须配置,当地图小于该级别时，平台不去请求服务数据。
 * @param [options.maximumLevel] - 瓦片所支持的最大层级,大于该层级时会显示上一层拉伸后的瓦片，当地图大于该级别时，平台不去请求服务数据。
 * @param [options.minimumTerrainLevel] - 展示影像图层的最小地形细节级别，小于该级别时，平台不显示影像数据。
 * @param [options.maximumTerrainLevel] - 展示影像图层的最大地形细节级别，大于该级别时，平台不显示影像数据。
 * @param [options.rectangle] - 瓦片数据的矩形区域范围
 * @param options.rectangle.xmin - 最小经度值, -180 至 180
 * @param options.rectangle.xmax - 最大经度值, -180 至 180
 * @param options.rectangle.ymin - 最小纬度值, -90 至 90
 * @param options.rectangle.ymax - 最大纬度值, -90 至 90
 * @param [options.bbox] - bbox规范的瓦片数据的矩形区域范围,与rectangle二选一即可。
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class EmptyTileLayer extends BaseTileLayer {
    constructor(options?: {
        minimumLevel?: number;
        maximumLevel?: number;
        minimumTerrainLevel?: number;
        maximumTerrainLevel?: number;
        rectangle?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
        };
        bbox?: number[];
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 判断级别是否在当前图层的最大最小层级范围内
     * @param level - 判断的级别
     * @returns 是否在限定的范围内
     */
    isInRange(level: number): boolean;
    /**
     * 判断所有瓦片 是否都在最大最小层级范围外，用于判断清除数据
     * @param level - 判断的级别
     * @returns 是否都在范围外
     */
    isAllOutRange(level: number): boolean;
    /**
     * 创建瓦片图层对应的ImageryProvider对象
     * @param [options = {}] - 参数对象，具体每类瓦片图层都不一样。
     * @returns 创建完成的 ImageryProvider 对象
     */
    _createImageryProvider(options?: any): Cesium.UrlTemplateImageryProvider | any;
}

/**
 * 高德
 * @param [options] - 参数对象，包括以下：
 * @param [options.layer] - 图层类型，以及以下内容:<br />
 * <ul>
 *     <li><code>vec</code>: 电子图层</li>
 *     <li><code>img_d</code>: 卫星影像</li>
 *     <li><code>img_z</code>: 影像注记</li>
 *     <li><code>time</code>: 实时路况信息</li>
 * </ul>
 * @param [options.url] - 当未指定layer类型时，可以传入外部指定url的服务地址，常用于离线服务。
 * @param [options.subdomains] - URL模板中用于 {s} 占位符的子域。 如果此参数是单个字符串，则字符串中的每个字符都是一个子域。如果是 一个数组，数组中的每个元素都是一个子域。
 * @param [options.bigfont] - 当layer为vec时，来标识使用是否大写字体。
 * @param [options.minimumLevel = 0] - 瓦片所支持的最低层级，如果数据没有第0层，该参数必须配置,当地图小于该级别时，平台不去请求服务数据。
 * @param [options.maximumLevel] - 瓦片所支持的最大层级,大于该层级时会显示上一层拉伸后的瓦片，当地图大于该级别时，平台不去请求服务数据。
 * @param [options.minimumTerrainLevel] - 展示影像图层的最小地形细节级别，小于该级别时，平台不显示影像数据。
 * @param [options.maximumTerrainLevel] - 展示影像图层的最大地形细节级别，大于该级别时，平台不显示影像数据。
 * @param [options.rectangle] - 瓦片数据的矩形区域范围
 * @param options.rectangle.xmin - 最小经度值, -180 至 180
 * @param options.rectangle.xmax - 最大经度值, -180 至 180
 * @param options.rectangle.ymin - 最小纬度值, -90 至 90
 * @param options.rectangle.ymax - 最大纬度值, -90 至 90
 * @param [options.bbox] - bbox规范的瓦片数据的矩形区域范围,与rectangle二选一即可。
 * @param [options.zIndex] - 控制图层的叠加层次，默认按加载的顺序进行叠加，但也可以自定义叠加顺序，数字大的在上面(只对同类型图层间有效)。
 * @param [options.chinaCRS = ChinaCRS.GCJ02] - 标识瓦片的国内坐标系（用于自动纠偏或加偏），自动将瓦片转为map对应的chinaCRS类型坐标系。
 * @param [options.proxy] - 加载资源时要使用的代理服务url。
 * @param [options.templateValues] - 一个对象，用于替换Url中的模板值的键/值对
 * @param [options.queryParameters] - 一个对象，其中包含在检索资源时将发送的查询参数。比如：queryParameters: {'access_token': '123-435-456-000'},
 * @param [options.headers] - 一个对象，将发送的其他HTTP标头。比如：headers: { 'X-My-Header': 'valueOfHeader' },
 * @param [options.enablePickFeatures = true] - 如果为true，则 {@link UrlTemplateImageryProvider#pickFeatures} 请求 pickFeaturesUrl 并尝试解释响应中包含的功能。
 *        如果为 false{@link UrlTemplateImageryProvider#pickFeatures} 会立即返回未定义（表示没有可拾取的内容） 功能）而无需与服务器通信。如果您知道数据，则将此属性设置为false 源不支持选择功能，或者您不希望该提供程序的功能可供选择。注意 可以通过修改 {@link UriTemplateImageryProvider#enablePickFeatures}来动态覆盖 属性。
 * @param [options.getFeatureInfoFormats] - 在某处获取功能信息的格式 调用 {@link UrlTemplateImageryProvider#pickFeatures} 的特定位置。如果这 参数未指定，功能选择已禁用。
 * @param [options.opacity = 1.0] - 透明度，取值范围：0.0-1.0。
 * @param [options.alpha = 1.0] - 同opacity。
 * @param [options.nightAlpha = 1.0] - 当 enableLighting 为 true 时 ，在地球的夜晚区域的透明度，取值范围：0.0-1.0。
 * @param [options.dayAlpha = 1.0] - 当 enableLighting 为 true 时，在地球的白天区域的透明度，取值范围：0.0-1.0。
 * @param [options.brightness = 1.0] - 亮度
 * @param [options.contrast = 1.0] - 对比度。 1.0使用未修改的图像颜色，小于1.0会降低对比度，而大于1.0则会提高对比度。
 * @param [options.hue = 0.0] - 色调。 0.0 时未修改的图像颜色。
 * @param [options.saturation = 1.0] - 饱和度。 1.0使用未修改的图像颜色，小于1.0会降低饱和度，而大于1.0则会增加饱和度。
 * @param [options.gamma = 1.0] - 伽马校正值。 1.0使用未修改的图像颜色。
 * @param [options.invertColor] - 是否反向颜色，内部计算规则: color.r = 1.0 - color.r
 * @param [options.filterColor] - 滤镜颜色，内部计算规则: color.r = color.r * filterColor.r
 * @param [options.maximumAnisotropy = maximum supported] - 使用的最大各向异性水平 用于纹理过滤。如果未指定此参数，则支持最大各向异性 将使用WebGL堆栈。较大的值可使影像在水平方向上看起来更好 视图。
 * @param [options.cutoutRectangle] - 制图矩形，用于裁剪此ImageryLayer的一部分。
 * @param [options.colorToAlpha] - 用作Alpha的颜色。
 * @param [options.colorToAlphaThreshold = 0.004] - 颜色到Alpha的阈值。
 * @param [options.hasAlphaChannel = true] - 如果此图像提供者提供的图像为真 包括一个Alpha通道；否则为假。如果此属性为false，则为Alpha通道，如果 目前，将被忽略。如果此属性为true，则任何没有Alpha通道的图像都将 它们的alpha随处可见。当此属性为false时，内存使用情况 和纹理上传时间可能会减少。
 * @param [options.tileWidth = 256] - 图像图块的像素宽度。
 * @param [options.tileHeight = 256] - 图像图块的像素高度。
 * @param [options.customTags] - 允许替换网址模板中的自定义关键字。该对象必须具有字符串作为键，并且必须具有值。
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class GaodeLayer extends BaseTileLayer {
    constructor(options?: {
        layer?: string;
        url?: string;
        subdomains?: string | string[];
        bigfont?: boolean;
        minimumLevel?: number;
        maximumLevel?: number;
        minimumTerrainLevel?: number;
        maximumTerrainLevel?: number;
        rectangle?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
        };
        bbox?: number[];
        zIndex?: number;
        chinaCRS?: ChinaCRS;
        proxy?: string;
        templateValues?: any;
        queryParameters?: any;
        headers?: any;
        enablePickFeatures?: boolean;
        getFeatureInfoFormats?: Cesium.GetFeatureInfoFormat[];
        opacity?: number;
        alpha?: number | ((...params: any[]) => any);
        nightAlpha?: number | ((...params: any[]) => any);
        dayAlpha?: number | ((...params: any[]) => any);
        brightness?: number | ((...params: any[]) => any);
        contrast?: number | ((...params: any[]) => any);
        hue?: number | ((...params: any[]) => any);
        saturation?: number | ((...params: any[]) => any);
        gamma?: number | ((...params: any[]) => any);
        invertColor?: boolean;
        filterColor?: string | Cesium.Color;
        maximumAnisotropy?: number;
        cutoutRectangle?: Cesium.Rectangle;
        colorToAlpha?: Cesium.Color;
        colorToAlphaThreshold?: number;
        hasAlphaChannel?: boolean;
        tileWidth?: number;
        tileHeight?: number;
        customTags?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 创建用于图层的 ImageryProvider对象
     * @param options - Provider参数，同图层构造参数。
     * @returns ImageryProvider类
     */
    static createImageryProvider(options: any): any;
    /**
     * 创建瓦片图层对应的ImageryProvider对象
     * @param [options = {}] - 参数对象，具体每类瓦片图层都不一样。
     * @returns 创建完成的 ImageryProvider 对象
     */
    _createImageryProvider(options?: any): Cesium.UrlTemplateImageryProvider | any;
}

/**
 * GoogleEarth Enterprise企业版本 影像服务
 * @param [options] - 参数对象，包括以下：
 * @param options.url - 承载瓦片服务的谷歌地球企业服务器的url
 * @param [options.subdomains] - URL模板中用于 {s} 占位符的子域。 如果此参数是单个字符串，则字符串中的每个字符都是一个子域。如果是 一个数组，数组中的每个元素都是一个子域。
 * @param [options.minimumLevel = 0] - 瓦片所支持的最低层级，如果数据没有第0层，该参数必须配置,当地图小于该级别时，平台不去请求服务数据。
 * @param [options.maximumLevel] - 瓦片所支持的最大层级,大于该层级时会显示上一层拉伸后的瓦片，当地图大于该级别时，平台不去请求服务数据。
 * @param [options.minimumTerrainLevel] - 展示影像图层的最小地形细节级别，小于该级别时，平台不显示影像数据。
 * @param [options.maximumTerrainLevel] - 展示影像图层的最大地形细节级别，大于该级别时，平台不显示影像数据。
 * @param [options.rectangle] - 瓦片数据的矩形区域范围
 * @param options.rectangle.xmin - 最小经度值, -180 至 180
 * @param options.rectangle.xmax - 最大经度值, -180 至 180
 * @param options.rectangle.ymin - 最小纬度值, -90 至 90
 * @param options.rectangle.ymax - 最大纬度值, -90 至 90
 * @param [options.bbox] - bbox规范的瓦片数据的矩形区域范围,与rectangle二选一即可。
 * @param [options.zIndex] - 控制图层的叠加层次，默认按加载的顺序进行叠加，但也可以自定义叠加顺序，数字大的在上面(只对同类型图层间有效)。
 * @param [options.crs = CRS.EPSG:3857] - 瓦片数据的坐标系信息，默认为墨卡托投影
 * @param [options.chinaCRS] - 标识瓦片的国内坐标系（用于自动纠偏或加偏），自动将瓦片转为map对应的chinaCRS类型坐标系。
 * @param [options.proxy] - 加载资源时要使用的代理服务url。
 * @param [options.templateValues] - 一个对象，用于替换Url中的模板值的键/值对
 * @param [options.queryParameters] - 一个对象，其中包含在检索资源时将发送的查询参数。比如：queryParameters: {'access_token': '123-435-456-000'},
 * @param [options.headers] - 一个对象，将发送的其他HTTP标头。比如：headers: { 'X-My-Header': 'valueOfHeader' },
 * @param [options.enablePickFeatures = true] - 如果为true，则 {@link UrlTemplateImageryProvider#pickFeatures} 请求 pickFeaturesUrl 并尝试解释响应中包含的功能。
 *        如果为 false{@link UrlTemplateImageryProvider#pickFeatures} 会立即返回未定义（表示没有可拾取的内容） 功能）而无需与服务器通信。如果您知道数据，则将此属性设置为false 源不支持选择功能，或者您不希望该提供程序的功能可供选择。注意 可以通过修改 {@link UriTemplateImageryProvider#enablePickFeatures}来动态覆盖 属性。
 * @param [options.getFeatureInfoFormats] - 在某处获取功能信息的格式 调用 {@link UrlTemplateImageryProvider#pickFeatures} 的特定位置。如果这 参数未指定，功能选择已禁用。
 * @param [options.opacity = 1.0] - 透明度，取值范围：0.0-1.0。
 * @param [options.alpha = 1.0] - 同opacity。
 * @param [options.nightAlpha = 1.0] - 当 enableLighting 为 true 时 ，在地球的夜晚区域的透明度，取值范围：0.0-1.0。
 * @param [options.dayAlpha = 1.0] - 当 enableLighting 为 true 时，在地球的白天区域的透明度，取值范围：0.0-1.0。
 * @param [options.brightness = 1.0] - 亮度
 * @param [options.contrast = 1.0] - 对比度。 1.0使用未修改的图像颜色，小于1.0会降低对比度，而大于1.0则会提高对比度。
 * @param [options.hue = 0.0] - 色调。 0.0 时未修改的图像颜色。
 * @param [options.saturation = 1.0] - 饱和度。 1.0使用未修改的图像颜色，小于1.0会降低饱和度，而大于1.0则会增加饱和度。
 * @param [options.gamma = 1.0] - 伽马校正值。 1.0使用未修改的图像颜色。
 * @param [options.invertColor] - 是否反向颜色，内部计算规则: color.r = 1.0 - color.r
 * @param [options.filterColor] - 滤镜颜色，内部计算规则: color.r = color.r * filterColor.r
 * @param [options.maximumAnisotropy = maximum supported] - 使用的最大各向异性水平 用于纹理过滤。如果未指定此参数，则支持最大各向异性 将使用WebGL堆栈。较大的值可使影像在水平方向上看起来更好 视图。
 * @param [options.cutoutRectangle] - 制图矩形，用于裁剪此ImageryLayer的一部分。
 * @param [options.colorToAlpha] - 用作Alpha的颜色。
 * @param [options.colorToAlphaThreshold = 0.004] - 颜色到Alpha的阈值。
 * @param [options.hasAlphaChannel = true] - 如果此图像提供者提供的图像为真 包括一个Alpha通道；否则为假。如果此属性为false，则为Alpha通道，如果 目前，将被忽略。如果此属性为true，则任何没有Alpha通道的图像都将 它们的alpha随处可见。当此属性为false时，内存使用情况 和纹理上传时间可能会减少。
 * @param [options.tileWidth = 256] - 图像图块的像素宽度。
 * @param [options.tileHeight = 256] - 图像图块的像素高度。
 * @param [options.customTags] - 允许替换网址模板中的自定义关键字。该对象必须具有字符串作为键，并且必须具有值。
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class GeeLayer extends BaseTileLayer {
    constructor(options?: {
        url: Cesium.Resource | string;
        subdomains?: string | string[];
        minimumLevel?: number;
        maximumLevel?: number;
        minimumTerrainLevel?: number;
        maximumTerrainLevel?: number;
        rectangle?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
        };
        bbox?: number[];
        zIndex?: number;
        crs?: CRS;
        chinaCRS?: ChinaCRS;
        proxy?: string;
        templateValues?: any;
        queryParameters?: any;
        headers?: any;
        enablePickFeatures?: boolean;
        getFeatureInfoFormats?: Cesium.GetFeatureInfoFormat[];
        opacity?: number;
        alpha?: number | ((...params: any[]) => any);
        nightAlpha?: number | ((...params: any[]) => any);
        dayAlpha?: number | ((...params: any[]) => any);
        brightness?: number | ((...params: any[]) => any);
        contrast?: number | ((...params: any[]) => any);
        hue?: number | ((...params: any[]) => any);
        saturation?: number | ((...params: any[]) => any);
        gamma?: number | ((...params: any[]) => any);
        invertColor?: boolean;
        filterColor?: string | Cesium.Color;
        maximumAnisotropy?: number;
        cutoutRectangle?: Cesium.Rectangle;
        colorToAlpha?: Cesium.Color;
        colorToAlphaThreshold?: number;
        hasAlphaChannel?: boolean;
        tileWidth?: number;
        tileHeight?: number;
        customTags?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 创建用于图层的 ImageryProvider对象
     * @param options - Provider参数，同图层构造参数。
     * @returns ImageryProvider类
     */
    static createImageryProvider(options: any): any;
    /**
     * 创建瓦片图层对应的ImageryProvider对象
     * @param [options = {}] - 参数对象，具体每类瓦片图层都不一样。
     * @returns 创建完成的 ImageryProvider 对象
     */
    _createImageryProvider(options?: any): Cesium.UrlTemplateImageryProvider | any;
}

/**
 * 谷歌
 * @param [options] - 参数对象，包括以下：
 * @param [options.layer] - 图层类型，以及以下内容:<br />
 * <ul>
 *     <li><code>vec</code>: 电子图层</li>
 *     <li><code>img_d</code>: 卫星影像</li>
 *     <li><code>img_z</code>: 影像注记</li>
 *     <li><code>ter</code>: 地形渲染图</li>
 * </ul>
 * @param [options.url] - 当未指定layer类型时，可以传入外部指定url的服务地址，常用于离线服务。
 * @param [options.subdomains] - URL模板中用于 {s} 占位符的子域。 如果此参数是单个字符串，则字符串中的每个字符都是一个子域。如果是 一个数组，数组中的每个元素都是一个子域。
 * @param [options.minimumLevel = 0] - 瓦片所支持的最低层级，如果数据没有第0层，该参数必须配置,当地图小于该级别时，平台不去请求服务数据。
 * @param [options.maximumLevel] - 瓦片所支持的最大层级,大于该层级时会显示上一层拉伸后的瓦片，当地图大于该级别时，平台不去请求服务数据。
 * @param [options.minimumTerrainLevel] - 展示影像图层的最小地形细节级别，小于该级别时，平台不显示影像数据。
 * @param [options.maximumTerrainLevel] - 展示影像图层的最大地形细节级别，大于该级别时，平台不显示影像数据。
 * @param [options.rectangle] - 瓦片数据的矩形区域范围
 * @param options.rectangle.xmin - 最小经度值, -180 至 180
 * @param options.rectangle.xmax - 最大经度值, -180 至 180
 * @param options.rectangle.ymin - 最小纬度值, -90 至 90
 * @param options.rectangle.ymax - 最大纬度值, -90 至 90
 * @param [options.bbox] - bbox规范的瓦片数据的矩形区域范围,与rectangle二选一即可。
 * @param [options.zIndex] - 控制图层的叠加层次，默认按加载的顺序进行叠加，但也可以自定义叠加顺序，数字大的在上面(只对同类型图层间有效)。
 * @param [options.crs = CRS.EPSG:3857] - 瓦片数据的坐标系信息，默认为墨卡托投影
 * @param [options.chinaCRS = 'GCJ02'] - 标识瓦片的国内坐标系（用于自动纠偏或加偏），自动将瓦片转为map对应的chinaCRS类型坐标系。
 * @param [options.proxy] - 加载资源时要使用的代理服务url。
 * @param [options.templateValues] - 一个对象，用于替换Url中的模板值的键/值对
 * @param [options.queryParameters] - 一个对象，其中包含在检索资源时将发送的查询参数。比如：queryParameters: {'access_token': '123-435-456-000'},
 * @param [options.headers] - 一个对象，将发送的其他HTTP标头。比如：headers: { 'X-My-Header': 'valueOfHeader' },
 * @param [options.enablePickFeatures = true] - 如果为true，则 {@link UrlTemplateImageryProvider#pickFeatures} 请求 pickFeaturesUrl 并尝试解释响应中包含的功能。
 *        如果为 false{@link UrlTemplateImageryProvider#pickFeatures} 会立即返回未定义（表示没有可拾取的内容） 功能）而无需与服务器通信。如果您知道数据，则将此属性设置为false 源不支持选择功能，或者您不希望该提供程序的功能可供选择。注意 可以通过修改 {@link UriTemplateImageryProvider#enablePickFeatures}来动态覆盖 属性。
 * @param [options.getFeatureInfoFormats] - 在某处获取功能信息的格式 调用 {@link UrlTemplateImageryProvider#pickFeatures} 的特定位置。如果这 参数未指定，功能选择已禁用。
 * @param [options.opacity = 1.0] - 透明度，取值范围：0.0-1.0。
 * @param [options.alpha = 1.0] - 同opacity。
 * @param [options.nightAlpha = 1.0] - 当 enableLighting 为 true 时 ，在地球的夜晚区域的透明度，取值范围：0.0-1.0。
 * @param [options.dayAlpha = 1.0] - 当 enableLighting 为 true 时，在地球的白天区域的透明度，取值范围：0.0-1.0。
 * @param [options.brightness = 1.0] - 亮度
 * @param [options.contrast = 1.0] - 对比度。 1.0使用未修改的图像颜色，小于1.0会降低对比度，而大于1.0则会提高对比度。
 * @param [options.hue = 0.0] - 色调。 0.0 时未修改的图像颜色。
 * @param [options.saturation = 1.0] - 饱和度。 1.0使用未修改的图像颜色，小于1.0会降低饱和度，而大于1.0则会增加饱和度。
 * @param [options.gamma = 1.0] - 伽马校正值。 1.0使用未修改的图像颜色。
 * @param [options.invertColor] - 是否反向颜色，内部计算规则: color.r = 1.0 - color.r
 * @param [options.filterColor] - 滤镜颜色，内部计算规则: color.r = color.r * filterColor.r
 * @param [options.maximumAnisotropy = maximum supported] - 使用的最大各向异性水平 用于纹理过滤。如果未指定此参数，则支持最大各向异性 将使用WebGL堆栈。较大的值可使影像在水平方向上看起来更好 视图。
 * @param [options.cutoutRectangle] - 制图矩形，用于裁剪此ImageryLayer的一部分。
 * @param [options.colorToAlpha] - 用作Alpha的颜色。
 * @param [options.colorToAlphaThreshold = 0.004] - 颜色到Alpha的阈值。
 * @param [options.hasAlphaChannel = true] - 如果此图像提供者提供的图像为真 包括一个Alpha通道；否则为假。如果此属性为false，则为Alpha通道，如果 目前，将被忽略。如果此属性为true，则任何没有Alpha通道的图像都将 它们的alpha随处可见。当此属性为false时，内存使用情况 和纹理上传时间可能会减少。
 * @param [options.tileWidth = 256] - 图像图块的像素宽度。
 * @param [options.tileHeight = 256] - 图像图块的像素高度。
 * @param [options.customTags] - 允许替换网址模板中的自定义关键字。该对象必须具有字符串作为键，并且必须具有值。
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class GoogleLayer extends BaseTileLayer {
    constructor(options?: {
        layer?: string;
        url?: string;
        subdomains?: string | string[];
        minimumLevel?: number;
        maximumLevel?: number;
        minimumTerrainLevel?: number;
        maximumTerrainLevel?: number;
        rectangle?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
        };
        bbox?: number[];
        zIndex?: number;
        crs?: CRS;
        chinaCRS?: ChinaCRS;
        proxy?: string;
        templateValues?: any;
        queryParameters?: any;
        headers?: any;
        enablePickFeatures?: boolean;
        getFeatureInfoFormats?: Cesium.GetFeatureInfoFormat[];
        opacity?: number;
        alpha?: number | ((...params: any[]) => any);
        nightAlpha?: number | ((...params: any[]) => any);
        dayAlpha?: number | ((...params: any[]) => any);
        brightness?: number | ((...params: any[]) => any);
        contrast?: number | ((...params: any[]) => any);
        hue?: number | ((...params: any[]) => any);
        saturation?: number | ((...params: any[]) => any);
        gamma?: number | ((...params: any[]) => any);
        invertColor?: boolean;
        filterColor?: string | Cesium.Color;
        maximumAnisotropy?: number;
        cutoutRectangle?: Cesium.Rectangle;
        colorToAlpha?: Cesium.Color;
        colorToAlphaThreshold?: number;
        hasAlphaChannel?: boolean;
        tileWidth?: number;
        tileHeight?: number;
        customTags?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 创建用于图层的 ImageryProvider对象
     * @param options - Provider参数，同图层构造参数。
     * @returns ImageryProvider类
     */
    static createImageryProvider(options: any): any;
    /**
     * 创建瓦片图层对应的ImageryProvider对象
     * @param [options = {}] - 参数对象，具体每类瓦片图层都不一样。
     * @returns 创建完成的 ImageryProvider 对象
     */
    _createImageryProvider(options?: any): Cesium.UrlTemplateImageryProvider | any;
}

/**
 * 网格线
 * @param [options] - 参数对象，包括以下：
 * @param [options.cells = 2] - 网格单元格的数量。
 * @param [options.color = rgba(255,255,255,1)] - 绘制网格线的颜色。
 * @param [options.glowColor = color.withAlpha(0.3)] - 为网格线绘制渲染线发光效果的颜色。
 * @param [options.glowWidth = 3] - 用于渲染线发光效果的线的宽度。
 * @param [options.backgroundColor = 'rgba(0,0,0,0)'] - 背景填充颜色。
 * @param [options.canvasSize = 256] - 用于渲染的画布的大小。
 * @param [options.minimumLevel = 0] - 瓦片所支持的最低层级，如果数据没有第0层，该参数必须配置,当地图小于该级别时，平台不去请求服务数据。
 * @param [options.maximumLevel] - 瓦片所支持的最大层级,大于该层级时会显示上一层拉伸后的瓦片，当地图大于该级别时，平台不去请求服务数据。
 * @param [options.minimumTerrainLevel] - 展示影像图层的最小地形细节级别，小于该级别时，平台不显示影像数据。
 * @param [options.maximumTerrainLevel] - 展示影像图层的最大地形细节级别，大于该级别时，平台不显示影像数据。
 * @param [options.rectangle] - 瓦片数据的矩形区域范围
 * @param options.rectangle.xmin - 最小经度值, -180 至 180
 * @param options.rectangle.xmax - 最大经度值, -180 至 180
 * @param options.rectangle.ymin - 最小纬度值, -90 至 90
 * @param options.rectangle.ymax - 最大纬度值, -90 至 90
 * @param [options.bbox] - bbox规范的瓦片数据的矩形区域范围,与rectangle二选一即可。
 * @param [options.zIndex] - 控制图层的叠加层次，默认按加载的顺序进行叠加，但也可以自定义叠加顺序，数字大的在上面(只对同类型图层间有效)。
 * @param [options.crs = CRS.EPSG:3857] - 瓦片数据的坐标系信息，默认为墨卡托投影
 * @param [options.chinaCRS] - 标识瓦片的国内坐标系（用于自动纠偏或加偏），自动将瓦片转为map对应的chinaCRS类型坐标系。
 * @param [options.opacity = 1.0] - 透明度，取值范围：0.0-1.0。
 * @param [options.alpha = 1.0] - 同opacity。
 * @param [options.nightAlpha = 1.0] - 当 enableLighting 为 true 时 ，在地球的夜晚区域的透明度，取值范围：0.0-1.0。
 * @param [options.dayAlpha = 1.0] - 当 enableLighting 为 true 时，在地球的白天区域的透明度，取值范围：0.0-1.0。
 * @param [options.brightness = 1.0] - 亮度
 * @param [options.contrast = 1.0] - 对比度。 1.0使用未修改的图像颜色，小于1.0会降低对比度，而大于1.0则会提高对比度。
 * @param [options.hue = 0.0] - 色调。 0.0 时未修改的图像颜色。
 * @param [options.saturation = 1.0] - 饱和度。 1.0使用未修改的图像颜色，小于1.0会降低饱和度，而大于1.0则会增加饱和度。
 * @param [options.gamma = 1.0] - 伽马校正值。 1.0使用未修改的图像颜色。
 * @param [options.invertColor] - 是否反向颜色，内部计算规则: color.r = 1.0 - color.r
 * @param [options.filterColor] - 滤镜颜色，内部计算规则: color.r = color.r * filterColor.r
 * @param [options.maximumAnisotropy = maximum supported] - 使用的最大各向异性水平 用于纹理过滤。如果未指定此参数，则支持最大各向异性 将使用WebGL堆栈。较大的值可使影像在水平方向上看起来更好 视图。
 * @param [options.cutoutRectangle] - 制图矩形，用于裁剪此ImageryLayer的一部分。
 * @param [options.colorToAlpha] - 用作Alpha的颜色。
 * @param [options.colorToAlphaThreshold = 0.004] - 颜色到Alpha的阈值。
 * @param [options.hasAlphaChannel = true] - 如果此图像提供者提供的图像为真 包括一个Alpha通道；否则为假。如果此属性为false，则为Alpha通道，如果 目前，将被忽略。如果此属性为true，则任何没有Alpha通道的图像都将 它们的alpha随处可见。当此属性为false时，内存使用情况 和纹理上传时间可能会减少。
 * @param [options.tileWidth = 256] - 图像图块的像素宽度。
 * @param [options.tileHeight = 256] - 图像图块的像素高度。
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class GridLayer extends BaseTileLayer {
    constructor(options?: {
        cells?: number;
        color?: string;
        glowColor?: string;
        glowWidth?: number;
        backgroundColor?: string;
        canvasSize?: number;
        minimumLevel?: number;
        maximumLevel?: number;
        minimumTerrainLevel?: number;
        maximumTerrainLevel?: number;
        rectangle?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
        };
        bbox?: number[];
        zIndex?: number;
        crs?: CRS;
        chinaCRS?: ChinaCRS;
        opacity?: number;
        alpha?: number | ((...params: any[]) => any);
        nightAlpha?: number | ((...params: any[]) => any);
        dayAlpha?: number | ((...params: any[]) => any);
        brightness?: number | ((...params: any[]) => any);
        contrast?: number | ((...params: any[]) => any);
        hue?: number | ((...params: any[]) => any);
        saturation?: number | ((...params: any[]) => any);
        gamma?: number | ((...params: any[]) => any);
        invertColor?: boolean;
        filterColor?: string | Cesium.Color;
        maximumAnisotropy?: number;
        cutoutRectangle?: Cesium.Rectangle;
        colorToAlpha?: Cesium.Color;
        colorToAlphaThreshold?: number;
        hasAlphaChannel?: boolean;
        tileWidth?: number;
        tileHeight?: number;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 创建瓦片图层对应的ImageryProvider对象
     * @param [options = {}] - 参数对象，具体每类瓦片图层都不一样。
     * @returns 创建完成的 ImageryProvider 对象
     */
    _createImageryProvider(options?: any): Cesium.UrlTemplateImageryProvider | any;
}

/**
 * 单张图片图层
 * @param [options] - 参数对象，包括以下：
 * @param options.url - 图片url地址
 * @param [options.subdomains] - URL模板中用于 {s} 占位符的子域。 如果此参数是单个字符串，则字符串中的每个字符都是一个子域。如果是 一个数组，数组中的每个元素都是一个子域。
 * @param [options.minimumLevel = 0] - 瓦片所支持的最低层级，如果数据没有第0层，该参数必须配置,当地图小于该级别时，平台不去请求服务数据。
 * @param [options.maximumLevel] - 瓦片所支持的最大层级,大于该层级时会显示上一层拉伸后的瓦片，当地图大于该级别时，平台不去请求服务数据。
 * @param [options.minimumTerrainLevel] - 展示影像图层的最小地形细节级别，小于该级别时，平台不显示影像数据。
 * @param [options.maximumTerrainLevel] - 展示影像图层的最大地形细节级别，大于该级别时，平台不显示影像数据。
 * @param [options.rectangle] - 瓦片数据的矩形区域范围
 * @param options.rectangle.xmin - 最小经度值, -180 至 180
 * @param options.rectangle.xmax - 最大经度值, -180 至 180
 * @param options.rectangle.ymin - 最小纬度值, -90 至 90
 * @param options.rectangle.ymax - 最大纬度值, -90 至 90
 * @param [options.bbox] - bbox规范的瓦片数据的矩形区域范围,与rectangle二选一即可。
 * @param [options.zIndex] - 控制图层的叠加层次，默认按加载的顺序进行叠加，但也可以自定义叠加顺序，数字大的在上面(只对同类型图层间有效)。
 * @param [options.crs = CRS.EPSG:3857] - 瓦片数据的坐标系信息，默认为墨卡托投影
 * @param [options.chinaCRS] - 标识瓦片的国内坐标系（用于自动纠偏或加偏），自动将瓦片转为map对应的chinaCRS类型坐标系。
 * @param [options.proxy] - 加载资源时要使用的代理服务url。
 * @param [options.templateValues] - 一个对象，用于替换Url中的模板值的键/值对
 * @param [options.queryParameters] - 一个对象，其中包含在检索资源时将发送的查询参数。比如：queryParameters: {'access_token': '123-435-456-000'},
 * @param [options.headers] - 一个对象，将发送的其他HTTP标头。比如：headers: { 'X-My-Header': 'valueOfHeader' },
 * @param [options.opacity = 1.0] - 透明度，取值范围：0.0-1.0。
 * @param [options.alpha = 1.0] - 同opacity。
 * @param [options.nightAlpha = 1.0] - 当 enableLighting 为 true 时 ，在地球的夜晚区域的透明度，取值范围：0.0-1.0。
 * @param [options.dayAlpha = 1.0] - 当 enableLighting 为 true 时，在地球的白天区域的透明度，取值范围：0.0-1.0。
 * @param [options.brightness = 1.0] - 亮度
 * @param [options.contrast = 1.0] - 对比度。 1.0使用未修改的图像颜色，小于1.0会降低对比度，而大于1.0则会提高对比度。
 * @param [options.hue = 0.0] - 色调。 0.0 时未修改的图像颜色。
 * @param [options.saturation = 1.0] - 饱和度。 1.0使用未修改的图像颜色，小于1.0会降低饱和度，而大于1.0则会增加饱和度。
 * @param [options.gamma = 1.0] - 伽马校正值。 1.0使用未修改的图像颜色。
 * @param [options.invertColor] - 是否反向颜色，内部计算规则: color.r = 1.0 - color.r
 * @param [options.filterColor] - 滤镜颜色，内部计算规则: color.r = color.r * filterColor.r
 * @param [options.maximumAnisotropy = maximum supported] - 使用的最大各向异性水平 用于纹理过滤。如果未指定此参数，则支持最大各向异性 将使用WebGL堆栈。较大的值可使影像在水平方向上看起来更好 视图。
 * @param [options.cutoutRectangle] - 制图矩形，用于裁剪此ImageryLayer的一部分。
 * @param [options.colorToAlpha] - 用作Alpha的颜色。
 * @param [options.colorToAlphaThreshold = 0.004] - 颜色到Alpha的阈值。
 * @param [options.hasAlphaChannel = true] - 如果此图像提供者提供的图像为真 包括一个Alpha通道；否则为假。如果此属性为false，则为Alpha通道，如果 目前，将被忽略。如果此属性为true，则任何没有Alpha通道的图像都将 它们的alpha随处可见。当此属性为false时，内存使用情况 和纹理上传时间可能会减少。
 * @param [options.tileWidth = 256] - 图像图块的像素宽度。
 * @param [options.tileHeight = 256] - 图像图块的像素高度。
 * @param [options.customTags] - 允许替换网址模板中的自定义关键字。该对象必须具有字符串作为键，并且必须具有值。
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class ImageLayer extends BaseTileLayer {
    constructor(options?: {
        url: Cesium.Resource | string;
        subdomains?: string | string[];
        minimumLevel?: number;
        maximumLevel?: number;
        minimumTerrainLevel?: number;
        maximumTerrainLevel?: number;
        rectangle?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
        };
        bbox?: number[];
        zIndex?: number;
        crs?: CRS;
        chinaCRS?: ChinaCRS;
        proxy?: string;
        templateValues?: any;
        queryParameters?: any;
        headers?: any;
        opacity?: number;
        alpha?: number | ((...params: any[]) => any);
        nightAlpha?: number | ((...params: any[]) => any);
        dayAlpha?: number | ((...params: any[]) => any);
        brightness?: number | ((...params: any[]) => any);
        contrast?: number | ((...params: any[]) => any);
        hue?: number | ((...params: any[]) => any);
        saturation?: number | ((...params: any[]) => any);
        gamma?: number | ((...params: any[]) => any);
        invertColor?: boolean;
        filterColor?: string | Cesium.Color;
        maximumAnisotropy?: number;
        cutoutRectangle?: Cesium.Rectangle;
        colorToAlpha?: Cesium.Color;
        colorToAlphaThreshold?: number;
        hasAlphaChannel?: boolean;
        tileWidth?: number;
        tileHeight?: number;
        customTags?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 创建用于图层的 ImageryProvider对象
     * @param options - Provider参数，同图层构造参数。
     * @returns ImageryProvider类
     */
    static createImageryProvider(options: any): any;
    /**
     * 创建瓦片图层对应的ImageryProvider对象
     * @param [options = {}] - 参数对象，具体每类瓦片图层都不一样。
     * @returns 创建完成的 ImageryProvider 对象
     */
    _createImageryProvider(options?: any): Cesium.UrlTemplateImageryProvider | any;
}

/**
 * cesium ion资源地图，官网： {@link https://cesium.com/ion/signin/}
 * @param [options] - 参数对象，包括以下：
 * @param options.assetId - ION服务 assetId
 * @param [options.accessToken = mars3d.Token.ion] - ION服务 token令牌
 * @param [options.server = Ion.defaultServer] - Cesium ion API服务器的资源。
 * @param [options.minimumLevel = 0] - 瓦片所支持的最低层级，如果数据没有第0层，该参数必须配置,当地图小于该级别时，平台不去请求服务数据。
 * @param [options.maximumLevel] - 瓦片所支持的最大层级,大于该层级时会显示上一层拉伸后的瓦片，当地图大于该级别时，平台不去请求服务数据。
 * @param [options.minimumTerrainLevel] - 展示影像图层的最小地形细节级别，小于该级别时，平台不显示影像数据。
 * @param [options.maximumTerrainLevel] - 展示影像图层的最大地形细节级别，大于该级别时，平台不显示影像数据。
 * @param [options.rectangle] - 瓦片数据的矩形区域范围
 * @param options.rectangle.xmin - 最小经度值, -180 至 180
 * @param options.rectangle.xmax - 最大经度值, -180 至 180
 * @param options.rectangle.ymin - 最小纬度值, -90 至 90
 * @param options.rectangle.ymax - 最大纬度值, -90 至 90
 * @param [options.bbox] - bbox规范的瓦片数据的矩形区域范围,与rectangle二选一即可。
 * @param [options.zIndex] - 控制图层的叠加层次，默认按加载的顺序进行叠加，但也可以自定义叠加顺序，数字大的在上面(只对同类型图层间有效)。
 * @param [options.crs = CRS.EPSG:3857] - 瓦片数据的坐标系信息，默认为墨卡托投影
 * @param [options.chinaCRS] - 标识瓦片的国内坐标系（用于自动纠偏或加偏），自动将瓦片转为map对应的chinaCRS类型坐标系。
 * @param [options.proxy] - 加载资源时要使用的代理服务url。
 * @param [options.templateValues] - 一个对象，用于替换Url中的模板值的键/值对
 * @param [options.queryParameters] - 一个对象，其中包含在检索资源时将发送的查询参数。比如：queryParameters: {'access_token': '123-435-456-000'},
 * @param [options.headers] - 一个对象，将发送的其他HTTP标头。比如：headers: { 'X-My-Header': 'valueOfHeader' },
 * @param [options.subdomains] - URL模板中用于 {s} 占位符的子域。 如果此参数是单个字符串，则字符串中的每个字符都是一个子域。如果是 一个数组，数组中的每个元素都是一个子域。
 * @param [options.enablePickFeatures = true] - 如果为true，则 {@link UrlTemplateImageryProvider#pickFeatures} 请求 pickFeaturesUrl 并尝试解释响应中包含的功能。
 *        如果为 false{@link UrlTemplateImageryProvider#pickFeatures} 会立即返回未定义（表示没有可拾取的内容） 功能）而无需与服务器通信。如果您知道数据，则将此属性设置为false 源不支持选择功能，或者您不希望该提供程序的功能可供选择。注意 可以通过修改 {@link UriTemplateImageryProvider#enablePickFeatures}来动态覆盖 属性。
 * @param [options.getFeatureInfoFormats] - 在某处获取功能信息的格式 调用 {@link UrlTemplateImageryProvider#pickFeatures} 的特定位置。如果这 参数未指定，功能选择已禁用。
 * @param [options.opacity = 1.0] - 透明度，取值范围：0.0-1.0。
 * @param [options.alpha = 1.0] - 同opacity。
 * @param [options.nightAlpha = 1.0] - 当 enableLighting 为 true 时 ，在地球的夜晚区域的透明度，取值范围：0.0-1.0。
 * @param [options.dayAlpha = 1.0] - 当 enableLighting 为 true 时，在地球的白天区域的透明度，取值范围：0.0-1.0。
 * @param [options.brightness = 1.0] - 亮度
 * @param [options.contrast = 1.0] - 对比度。 1.0使用未修改的图像颜色，小于1.0会降低对比度，而大于1.0则会提高对比度。
 * @param [options.hue = 0.0] - 色调。 0.0 时未修改的图像颜色。
 * @param [options.saturation = 1.0] - 饱和度。 1.0使用未修改的图像颜色，小于1.0会降低饱和度，而大于1.0则会增加饱和度。
 * @param [options.gamma = 1.0] - 伽马校正值。 1.0使用未修改的图像颜色。
 * @param [options.invertColor] - 是否反向颜色，内部计算规则: color.r = 1.0 - color.r
 * @param [options.filterColor] - 滤镜颜色，内部计算规则: color.r = color.r * filterColor.r
 * @param [options.maximumAnisotropy = maximum supported] - 使用的最大各向异性水平 用于纹理过滤。如果未指定此参数，则支持最大各向异性 将使用WebGL堆栈。较大的值可使影像在水平方向上看起来更好 视图。
 * @param [options.cutoutRectangle] - 制图矩形，用于裁剪此ImageryLayer的一部分。
 * @param [options.colorToAlpha] - 用作Alpha的颜色。
 * @param [options.colorToAlphaThreshold = 0.004] - 颜色到Alpha的阈值。
 * @param [options.hasAlphaChannel = true] - 如果此图像提供者提供的图像为真 包括一个Alpha通道；否则为假。如果此属性为false，则为Alpha通道，如果 目前，将被忽略。如果此属性为true，则任何没有Alpha通道的图像都将 它们的alpha随处可见。当此属性为false时，内存使用情况 和纹理上传时间可能会减少。
 * @param [options.tileWidth = 256] - 图像图块的像素宽度。
 * @param [options.tileHeight = 256] - 图像图块的像素高度。
 * @param [options.customTags] - 允许替换网址模板中的自定义关键字。该对象必须具有字符串作为键，并且必须具有值。
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class IonLayer extends BaseTileLayer {
    constructor(options?: {
        assetId: number;
        accessToken?: string;
        server?: string | Cesium.Resource;
        minimumLevel?: number;
        maximumLevel?: number;
        minimumTerrainLevel?: number;
        maximumTerrainLevel?: number;
        rectangle?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
        };
        bbox?: number[];
        zIndex?: number;
        crs?: CRS;
        chinaCRS?: ChinaCRS;
        proxy?: string;
        templateValues?: any;
        queryParameters?: any;
        headers?: any;
        subdomains?: string | string[];
        enablePickFeatures?: boolean;
        getFeatureInfoFormats?: Cesium.GetFeatureInfoFormat[];
        opacity?: number;
        alpha?: number | ((...params: any[]) => any);
        nightAlpha?: number | ((...params: any[]) => any);
        dayAlpha?: number | ((...params: any[]) => any);
        brightness?: number | ((...params: any[]) => any);
        contrast?: number | ((...params: any[]) => any);
        hue?: number | ((...params: any[]) => any);
        saturation?: number | ((...params: any[]) => any);
        gamma?: number | ((...params: any[]) => any);
        invertColor?: boolean;
        filterColor?: string | Cesium.Color;
        maximumAnisotropy?: number;
        cutoutRectangle?: Cesium.Rectangle;
        colorToAlpha?: Cesium.Color;
        colorToAlphaThreshold?: number;
        hasAlphaChannel?: boolean;
        tileWidth?: number;
        tileHeight?: number;
        customTags?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 创建用于图层的 ImageryProvider对象
     * @param options - Provider参数，同图层构造参数。
     * @returns ImageryProvider类
     */
    static createImageryProvider(options: any): any;
    /**
     * 创建瓦片图层对应的ImageryProvider对象
     * @param [options = {}] - 参数对象，具体每类瓦片图层都不一样。
     * @returns 创建完成的 ImageryProvider 对象
     */
    _createImageryProvider(options?: any): Cesium.UrlTemplateImageryProvider | any;
}

/**
 * Mapbox地图服务
 * @param [options] - 参数对象，包括以下：
 * @param [options.url = 'https://api.mapbox.com/styles/v1/'] - Mapbox服务器网址。
 * @param [options.username = 'marsgis'] - 地图帐户的用户名。
 * @param options.styleId - Mapbox样式ID。
 * @param [options.accessToken = mars3d.Token.mapbox] - 图像的Token公共访问令牌。
 * @param [options.tilesize = 512] - 图像块的大小。
 * @param [options.scaleFactor = true] - 确定贴图是否以 @2x 比例因子渲染。
 * @param [options.minimumLevel = 0] - 瓦片所支持的最低层级，如果数据没有第0层，该参数必须配置,当地图小于该级别时，平台不去请求服务数据。
 * @param [options.maximumLevel] - 瓦片所支持的最大层级,大于该层级时会显示上一层拉伸后的瓦片，当地图大于该级别时，平台不去请求服务数据。
 * @param [options.minimumTerrainLevel] - 展示影像图层的最小地形细节级别，小于该级别时，平台不显示影像数据。
 * @param [options.maximumTerrainLevel] - 展示影像图层的最大地形细节级别，大于该级别时，平台不显示影像数据。
 * @param [options.rectangle] - 瓦片数据的矩形区域范围
 * @param options.rectangle.xmin - 最小经度值, -180 至 180
 * @param options.rectangle.xmax - 最大经度值, -180 至 180
 * @param options.rectangle.ymin - 最小纬度值, -90 至 90
 * @param options.rectangle.ymax - 最大纬度值, -90 至 90
 * @param [options.bbox] - bbox规范的瓦片数据的矩形区域范围,与rectangle二选一即可。
 * @param [options.zIndex] - 控制图层的叠加层次，默认按加载的顺序进行叠加，但也可以自定义叠加顺序，数字大的在上面(只对同类型图层间有效)。
 * @param [options.crs = CRS.EPSG:3857] - 瓦片数据的坐标系信息，默认为墨卡托投影
 * @param [options.chinaCRS] - 标识瓦片的国内坐标系（用于自动纠偏或加偏），自动将瓦片转为map对应的chinaCRS类型坐标系。
 * @param [options.proxy] - 加载资源时要使用的代理服务url。
 * @param [options.templateValues] - 一个对象，用于替换Url中的模板值的键/值对
 * @param [options.queryParameters] - 一个对象，其中包含在检索资源时将发送的查询参数。比如：queryParameters: {'access_token': '123-435-456-000'},
 * @param [options.headers] - 一个对象，将发送的其他HTTP标头。比如：headers: { 'X-My-Header': 'valueOfHeader' },
 * @param [options.subdomains] - URL模板中用于 {s} 占位符的子域。 如果此参数是单个字符串，则字符串中的每个字符都是一个子域。如果是 一个数组，数组中的每个元素都是一个子域。
 * @param [options.enablePickFeatures = true] - 如果为true，则 {@link UrlTemplateImageryProvider#pickFeatures} 请求 pickFeaturesUrl 并尝试解释响应中包含的功能。
 *        如果为 false{@link UrlTemplateImageryProvider#pickFeatures} 会立即返回未定义（表示没有可拾取的内容） 功能）而无需与服务器通信。如果您知道数据，则将此属性设置为false 源不支持选择功能，或者您不希望该提供程序的功能可供选择。注意 可以通过修改 {@link UriTemplateImageryProvider#enablePickFeatures}来动态覆盖 属性。
 * @param [options.getFeatureInfoFormats] - 在某处获取功能信息的格式 调用 {@link UrlTemplateImageryProvider#pickFeatures} 的特定位置。如果这 参数未指定，功能选择已禁用。
 * @param [options.opacity = 1.0] - 透明度，取值范围：0.0-1.0。
 * @param [options.alpha = 1.0] - 同opacity。
 * @param [options.nightAlpha = 1.0] - 当 enableLighting 为 true 时 ，在地球的夜晚区域的透明度，取值范围：0.0-1.0。
 * @param [options.dayAlpha = 1.0] - 当 enableLighting 为 true 时，在地球的白天区域的透明度，取值范围：0.0-1.0。
 * @param [options.brightness = 1.0] - 亮度
 * @param [options.contrast = 1.0] - 对比度。 1.0使用未修改的图像颜色，小于1.0会降低对比度，而大于1.0则会提高对比度。
 * @param [options.hue = 0.0] - 色调。 0.0 时未修改的图像颜色。
 * @param [options.saturation = 1.0] - 饱和度。 1.0使用未修改的图像颜色，小于1.0会降低饱和度，而大于1.0则会增加饱和度。
 * @param [options.gamma = 1.0] - 伽马校正值。 1.0使用未修改的图像颜色。
 * @param [options.invertColor] - 是否反向颜色，内部计算规则: color.r = 1.0 - color.r
 * @param [options.filterColor] - 滤镜颜色，内部计算规则: color.r = color.r * filterColor.r
 * @param [options.maximumAnisotropy = maximum supported] - 使用的最大各向异性水平 用于纹理过滤。如果未指定此参数，则支持最大各向异性 将使用WebGL堆栈。较大的值可使影像在水平方向上看起来更好 视图。
 * @param [options.cutoutRectangle] - 制图矩形，用于裁剪此ImageryLayer的一部分。
 * @param [options.colorToAlpha] - 用作Alpha的颜色。
 * @param [options.colorToAlphaThreshold = 0.004] - 颜色到Alpha的阈值。
 * @param [options.hasAlphaChannel = true] - 如果此图像提供者提供的图像为真 包括一个Alpha通道；否则为假。如果此属性为false，则为Alpha通道，如果 目前，将被忽略。如果此属性为true，则任何没有Alpha通道的图像都将 它们的alpha随处可见。当此属性为false时，内存使用情况 和纹理上传时间可能会减少。
 * @param [options.tileWidth = 256] - 图像图块的像素宽度。
 * @param [options.tileHeight = 256] - 图像图块的像素高度。
 * @param [options.customTags] - 允许替换网址模板中的自定义关键字。该对象必须具有字符串作为键，并且必须具有值。
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class MapboxLayer extends BaseTileLayer {
    constructor(options?: {
        url?: Cesium.Resource | string;
        username?: string;
        styleId: string;
        accessToken?: string;
        tilesize?: number;
        scaleFactor?: boolean;
        minimumLevel?: number;
        maximumLevel?: number;
        minimumTerrainLevel?: number;
        maximumTerrainLevel?: number;
        rectangle?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
        };
        bbox?: number[];
        zIndex?: number;
        crs?: CRS;
        chinaCRS?: ChinaCRS;
        proxy?: string;
        templateValues?: any;
        queryParameters?: any;
        headers?: any;
        subdomains?: string | string[];
        enablePickFeatures?: boolean;
        getFeatureInfoFormats?: Cesium.GetFeatureInfoFormat[];
        opacity?: number;
        alpha?: number | ((...params: any[]) => any);
        nightAlpha?: number | ((...params: any[]) => any);
        dayAlpha?: number | ((...params: any[]) => any);
        brightness?: number | ((...params: any[]) => any);
        contrast?: number | ((...params: any[]) => any);
        hue?: number | ((...params: any[]) => any);
        saturation?: number | ((...params: any[]) => any);
        gamma?: number | ((...params: any[]) => any);
        invertColor?: boolean;
        filterColor?: string | Cesium.Color;
        maximumAnisotropy?: number;
        cutoutRectangle?: Cesium.Rectangle;
        colorToAlpha?: Cesium.Color;
        colorToAlphaThreshold?: number;
        hasAlphaChannel?: boolean;
        tileWidth?: number;
        tileHeight?: number;
        customTags?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 创建用于图层的 ImageryProvider对象
     * @param options - Provider参数，同图层构造参数。
     * @returns ImageryProvider类
     */
    static createImageryProvider(options: any): any;
    /**
     * 创建瓦片图层对应的ImageryProvider对象
     * @param [options = {}] - 参数对象，具体每类瓦片图层都不一样。
     * @returns 创建完成的 ImageryProvider 对象
     */
    _createImageryProvider(options?: any): Cesium.UrlTemplateImageryProvider | any;
}

/**
 * OSM开源地图
 * @param [options] - 参数对象，包括以下：
 * @param [options.url = 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'] - 服务url地址
 * @param [options.subdomains = 'abc'] - URL模板中用于 {s} 占位符的子域。 如果此参数是单个字符串，则字符串中的每个字符都是一个子域。如果是 一个数组，数组中的每个元素都是一个子域。
 * @param [options.minimumLevel = 0] - 瓦片所支持的最低层级，如果数据没有第0层，该参数必须配置,当地图小于该级别时，平台不去请求服务数据。
 * @param [options.maximumLevel = 18] - 瓦片所支持的最大层级,大于该层级时会显示上一层拉伸后的瓦片，当地图大于该级别时，平台不去请求服务数据。
 * @param [options.minimumTerrainLevel] - 展示影像图层的最小地形细节级别，小于该级别时，平台不显示影像数据。
 * @param [options.maximumTerrainLevel] - 展示影像图层的最大地形细节级别，大于该级别时，平台不显示影像数据。
 * @param [options.rectangle] - 瓦片数据的矩形区域范围
 * @param options.rectangle.xmin - 最小经度值, -180 至 180
 * @param options.rectangle.xmax - 最大经度值, -180 至 180
 * @param options.rectangle.ymin - 最小纬度值, -90 至 90
 * @param options.rectangle.ymax - 最大纬度值, -90 至 90
 * @param [options.bbox] - bbox规范的瓦片数据的矩形区域范围,与rectangle二选一即可。
 * @param [options.zIndex] - 控制图层的叠加层次，默认按加载的顺序进行叠加，但也可以自定义叠加顺序，数字大的在上面(只对同类型图层间有效)。
 * @param [options.proxy] - 加载资源时要使用的代理服务url。
 * @param [options.templateValues] - 一个对象，用于替换Url中的模板值的键/值对
 * @param [options.queryParameters] - 一个对象，其中包含在检索资源时将发送的查询参数。比如：queryParameters: {'access_token': '123-435-456-000'},
 * @param [options.headers] - 一个对象，将发送的其他HTTP标头。比如：headers: { 'X-My-Header': 'valueOfHeader' },
 * @param [options.opacity = 1.0] - 透明度，取值范围：0.0-1.0。
 * @param [options.alpha = 1.0] - 同opacity。
 * @param [options.nightAlpha = 1.0] - 当 enableLighting 为 true 时 ，在地球的夜晚区域的透明度，取值范围：0.0-1.0。
 * @param [options.dayAlpha = 1.0] - 当 enableLighting 为 true 时，在地球的白天区域的透明度，取值范围：0.0-1.0。
 * @param [options.brightness = 1.0] - 亮度
 * @param [options.contrast = 1.0] - 对比度。 1.0使用未修改的图像颜色，小于1.0会降低对比度，而大于1.0则会提高对比度。
 * @param [options.hue = 0.0] - 色调。 0.0 时未修改的图像颜色。
 * @param [options.saturation = 1.0] - 饱和度。 1.0使用未修改的图像颜色，小于1.0会降低饱和度，而大于1.0则会增加饱和度。
 * @param [options.gamma = 1.0] - 伽马校正值。 1.0使用未修改的图像颜色。
 * @param [options.invertColor] - 是否反向颜色，内部计算规则: color.r = 1.0 - color.r
 * @param [options.filterColor] - 滤镜颜色，内部计算规则: color.r = color.r * filterColor.r
 * @param [options.maximumAnisotropy = maximum supported] - 使用的最大各向异性水平 用于纹理过滤。如果未指定此参数，则支持最大各向异性 将使用WebGL堆栈。较大的值可使影像在水平方向上看起来更好 视图。
 * @param [options.cutoutRectangle] - 制图矩形，用于裁剪此ImageryLayer的一部分。
 * @param [options.colorToAlpha] - 用作Alpha的颜色。
 * @param [options.colorToAlphaThreshold = 0.004] - 颜色到Alpha的阈值。
 * @param [options.hasAlphaChannel = true] - 如果此图像提供者提供的图像为真 包括一个Alpha通道；否则为假。如果此属性为false，则为Alpha通道，如果 目前，将被忽略。如果此属性为true，则任何没有Alpha通道的图像都将 它们的alpha随处可见。当此属性为false时，内存使用情况 和纹理上传时间可能会减少。
 * @param [options.tileWidth = 256] - 图像图块的像素宽度。
 * @param [options.tileHeight = 256] - 图像图块的像素高度。
 * @param [options.customTags] - 允许替换网址模板中的自定义关键字。该对象必须具有字符串作为键，并且必须具有值。
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class OsmLayer extends BaseTileLayer {
    constructor(options?: {
        url?: Cesium.Resource | string;
        subdomains?: string | string[];
        minimumLevel?: number;
        maximumLevel?: number;
        minimumTerrainLevel?: number;
        maximumTerrainLevel?: number;
        rectangle?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
        };
        bbox?: number[];
        zIndex?: number;
        proxy?: string;
        templateValues?: any;
        queryParameters?: any;
        headers?: any;
        opacity?: number;
        alpha?: number | ((...params: any[]) => any);
        nightAlpha?: number | ((...params: any[]) => any);
        dayAlpha?: number | ((...params: any[]) => any);
        brightness?: number | ((...params: any[]) => any);
        contrast?: number | ((...params: any[]) => any);
        hue?: number | ((...params: any[]) => any);
        saturation?: number | ((...params: any[]) => any);
        gamma?: number | ((...params: any[]) => any);
        invertColor?: boolean;
        filterColor?: string | Cesium.Color;
        maximumAnisotropy?: number;
        cutoutRectangle?: Cesium.Rectangle;
        colorToAlpha?: Cesium.Color;
        colorToAlphaThreshold?: number;
        hasAlphaChannel?: boolean;
        tileWidth?: number;
        tileHeight?: number;
        customTags?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 创建用于图层的 ImageryProvider对象
     * @param options - Provider参数，同图层构造参数。
     * @returns ImageryProvider类
     */
    static createImageryProvider(options: any): any;
    /**
     * 创建瓦片图层对应的ImageryProvider对象
     * @param [options = {}] - 参数对象，具体每类瓦片图层都不一样。
     * @returns 创建完成的 ImageryProvider 对象
     */
    _createImageryProvider(options?: any): Cesium.UrlTemplateImageryProvider | any;
}

/**
 * 天地图
 * @param [options] - 参数对象，包括以下：
 * @param [options.layer] - 图层类型，以及以下内容:<br />
 * <ul>
 *     <li><code>vec_d</code>: 电子图层</li>
 *     <li><code>vec_z</code>: 电子注记</li>
 *     <li><code>vec_e</code>: 电子注记英文</li>
 *     <li><code>img_d</code>: 卫星影像</li>
 *     <li><code>img_z</code>: 影像注记</li>
 *     <li><code>img_e</code>: 影像注记英文</li>
 *     <li><code>ter_d</code>: 地形渲染图</li>
 *     <li><code>ter_z</code>: 地形渲染图注记</li>
 * </ul>
 * @param [options.key = mars3d.Token.tiandituArr] - 天地图服务Token，可以自行注册官网： {@link https://console.tianditu.gov.cn/api/key}
 * @param [options.url] - 服务URL地址，同xyz服务
 * @param [options.minimumLevel = 0] - 瓦片所支持的最低层级，如果数据没有第0层，该参数必须配置,当地图小于该级别时，平台不去请求服务数据。
 * @param [options.maximumLevel] - 瓦片所支持的最大层级,大于该层级时会显示上一层拉伸后的瓦片，当地图大于该级别时，平台不去请求服务数据。
 * @param [options.minimumTerrainLevel] - 展示影像图层的最小地形细节级别，小于该级别时，平台不显示影像数据。
 * @param [options.maximumTerrainLevel] - 展示影像图层的最大地形细节级别，大于该级别时，平台不显示影像数据。
 * @param [options.rectangle] - 瓦片数据的矩形区域范围
 * @param options.rectangle.xmin - 最小经度值, -180 至 180
 * @param options.rectangle.xmax - 最大经度值, -180 至 180
 * @param options.rectangle.ymin - 最小纬度值, -90 至 90
 * @param options.rectangle.ymax - 最大纬度值, -90 至 90
 * @param [options.bbox] - bbox规范的瓦片数据的矩形区域范围,与rectangle二选一即可。
 * @param [options.zIndex] - 控制图层的叠加层次，默认按加载的顺序进行叠加，但也可以自定义叠加顺序，数字大的在上面(只对同类型图层间有效)。
 * @param [options.crs = CRS.EPSG:3857] - 瓦片数据的坐标系信息，默认为墨卡托投影,也支持传入EPSG4490坐标系
 * @param [options.chinaCRS] - 标识瓦片的国内坐标系（用于自动纠偏或加偏），自动将瓦片转为map对应的chinaCRS类型坐标系。
 * @param [options.proxy] - 加载资源时要使用的代理服务url。
 * @param [options.templateValues] - 一个对象，用于替换Url中的模板值的键/值对
 * @param [options.queryParameters] - 一个对象，其中包含在检索资源时将发送的查询参数。比如：queryParameters: {'access_token': '123-435-456-000'},
 * @param [options.headers] - 一个对象，将发送的其他HTTP标头。比如：headers: { 'X-My-Header': 'valueOfHeader' },
 * @param [options.subdomains = '01234567'] - URL模板中用于 {s} 占位符的子域。 如果此参数是单个字符串，则字符串中的每个字符都是一个子域。如果是 一个数组，数组中的每个元素都是一个子域。
 * @param [options.opacity = 1.0] - 透明度，取值范围：0.0-1.0。
 * @param [options.alpha = 1.0] - 同opacity。
 * @param [options.nightAlpha = 1.0] - 当 enableLighting 为 true 时 ，在地球的夜晚区域的透明度，取值范围：0.0-1.0。
 * @param [options.dayAlpha = 1.0] - 当 enableLighting 为 true 时，在地球的白天区域的透明度，取值范围：0.0-1.0。
 * @param [options.brightness = 1.0] - 亮度
 * @param [options.contrast = 1.0] - 对比度。 1.0使用未修改的图像颜色，小于1.0会降低对比度，而大于1.0则会提高对比度。
 * @param [options.hue = 0.0] - 色调。 0.0 时未修改的图像颜色。
 * @param [options.saturation = 1.0] - 饱和度。 1.0使用未修改的图像颜色，小于1.0会降低饱和度，而大于1.0则会增加饱和度。
 * @param [options.gamma = 1.0] - 伽马校正值。 1.0使用未修改的图像颜色。
 * @param [options.invertColor] - 是否反向颜色，内部计算规则: color.r = 1.0 - color.r
 * @param [options.filterColor] - 滤镜颜色，内部计算规则: color.r = color.r * filterColor.r
 * @param [options.maximumAnisotropy = maximum supported] - 使用的最大各向异性水平 用于纹理过滤。如果未指定此参数，则支持最大各向异性 将使用WebGL堆栈。较大的值可使影像在水平方向上看起来更好 视图。
 * @param [options.cutoutRectangle] - 制图矩形，用于裁剪此ImageryLayer的一部分。
 * @param [options.colorToAlpha] - 用作Alpha的颜色。
 * @param [options.colorToAlphaThreshold = 0.004] - 颜色到Alpha的阈值。
 * @param [options.hasAlphaChannel = true] - 如果此图像提供者提供的图像为真 包括一个Alpha通道；否则为假。如果此属性为false，则为Alpha通道，如果 目前，将被忽略。如果此属性为true，则任何没有Alpha通道的图像都将 它们的alpha随处可见。当此属性为false时，内存使用情况 和纹理上传时间可能会减少。
 * @param [options.tileWidth = 256] - 图像图块的像素宽度。
 * @param [options.tileHeight = 256] - 图像图块的像素高度。
 * @param [options.customTags] - 允许替换网址模板中的自定义关键字。该对象必须具有字符串作为键，并且必须具有值。
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class TdtLayer extends BaseTileLayer {
    constructor(options?: {
        layer?: string;
        key?: string[];
        url?: string;
        minimumLevel?: number;
        maximumLevel?: number;
        minimumTerrainLevel?: number;
        maximumTerrainLevel?: number;
        rectangle?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
        };
        bbox?: number[];
        zIndex?: number;
        crs?: CRS;
        chinaCRS?: ChinaCRS;
        proxy?: string;
        templateValues?: any;
        queryParameters?: any;
        headers?: any;
        subdomains?: string | string[];
        opacity?: number;
        alpha?: number | ((...params: any[]) => any);
        nightAlpha?: number | ((...params: any[]) => any);
        dayAlpha?: number | ((...params: any[]) => any);
        brightness?: number | ((...params: any[]) => any);
        contrast?: number | ((...params: any[]) => any);
        hue?: number | ((...params: any[]) => any);
        saturation?: number | ((...params: any[]) => any);
        gamma?: number | ((...params: any[]) => any);
        invertColor?: boolean;
        filterColor?: string | Cesium.Color;
        maximumAnisotropy?: number;
        cutoutRectangle?: Cesium.Rectangle;
        colorToAlpha?: Cesium.Color;
        colorToAlphaThreshold?: number;
        hasAlphaChannel?: boolean;
        tileWidth?: number;
        tileHeight?: number;
        customTags?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 创建用于图层的 ImageryProvider对象
     * @param options - Provider参数，同图层构造参数。
     * @returns ImageryProvider类
     */
    static createImageryProvider(options: any): any;
    /**
     * 创建瓦片图层对应的ImageryProvider对象
     * @param [options = {}] - 参数对象，具体每类瓦片图层都不一样。
     * @returns 创建完成的 ImageryProvider 对象
     */
    _createImageryProvider(options?: any): Cesium.UrlTemplateImageryProvider | any;
}

/**
 * 腾讯
 * @param [options] - 参数对象，包括以下：
 * @param [options.layer] - 图层类型，以及以下内容:<br />
 * <ul>
 *     <li><code>vec</code>: 电子图层</li>
 *     <li><code>img_d</code>: 卫星影像</li>
 *     <li><code>img_z</code>: 影像注记</li>
 *     <li><code>custom</code>: 地形渲染图</li>
 * </ul>
 * @param [options.style] - 当layer为custom时，标识的样式，可选值：灰白地图:3,暗色地图:4
 * @param [options.url] - 当未指定layer类型时，可以传入外部指定url的服务地址，常用于离线服务。
 * @param [options.subdomains] - URL模板中用于 {s} 占位符的子域。 如果此参数是单个字符串，则字符串中的每个字符都是一个子域。如果是一个数组，数组中的每个元素都是一个子域。
 * @param [options.minimumLevel = 0] - 瓦片所支持的最低层级，如果数据没有第0层，该参数必须配置,当地图小于该级别时，平台不去请求服务数据。
 * @param [options.maximumLevel] - 瓦片所支持的最大层级,大于该层级时会显示上一层拉伸后的瓦片，当地图大于该级别时，平台不去请求服务数据。
 * @param [options.minimumTerrainLevel] - 展示影像图层的最小地形细节级别，小于该级别时，平台不显示影像数据。
 * @param [options.maximumTerrainLevel] - 展示影像图层的最大地形细节级别，大于该级别时，平台不显示影像数据。
 * @param [options.rectangle] - 瓦片数据的矩形区域范围
 * @param options.rectangle.xmin - 最小经度值, -180 至 180
 * @param options.rectangle.xmax - 最大经度值, -180 至 180
 * @param options.rectangle.ymin - 最小纬度值, -90 至 90
 * @param options.rectangle.ymax - 最大纬度值, -90 至 90
 * @param [options.bbox] - bbox规范的瓦片数据的矩形区域范围,与rectangle二选一即可。
 * @param [options.zIndex] - 控制图层的叠加层次，默认按加载的顺序进行叠加，但也可以自定义叠加顺序，数字大的在上面(只对同类型图层间有效)。
 * @param [options.chinaCRS = ChinaCRS.GCJ02] - 标识瓦片的国内坐标系（用于自动纠偏或加偏），自动将瓦片转为map对应的chinaCRS类型坐标系。
 * @param [options.proxy] - 加载资源时要使用的代理服务url。
 * @param [options.templateValues] - 一个对象，用于替换Url中的模板值的键/值对
 * @param [options.queryParameters] - 一个对象，其中包含在检索资源时将发送的查询参数。比如：queryParameters: {'access_token': '123-435-456-000'},
 * @param [options.headers] - 一个对象，将发送的其他HTTP标头。比如：headers: { 'X-My-Header': 'valueOfHeader' },
 * @param [options.opacity = 1.0] - 透明度，取值范围：0.0-1.0。
 * @param [options.alpha = 1.0] - 同opacity。
 * @param [options.nightAlpha = 1.0] - 当 enableLighting 为 true 时 ，在地球的夜晚区域的透明度，取值范围：0.0-1.0。
 * @param [options.dayAlpha = 1.0] - 当 enableLighting 为 true 时，在地球的白天区域的透明度，取值范围：0.0-1.0。
 * @param [options.brightness = 1.0] - 亮度
 * @param [options.contrast = 1.0] - 对比度。 1.0使用未修改的图像颜色，小于1.0会降低对比度，而大于1.0则会提高对比度。
 * @param [options.hue = 0.0] - 色调。 0.0 时未修改的图像颜色。
 * @param [options.saturation = 1.0] - 饱和度。 1.0使用未修改的图像颜色，小于1.0会降低饱和度，而大于1.0则会增加饱和度。
 * @param [options.gamma = 1.0] - 伽马校正值。 1.0使用未修改的图像颜色。
 * @param [options.invertColor] - 是否反向颜色，内部计算规则: color.r = 1.0 - color.r
 * @param [options.filterColor] - 滤镜颜色，内部计算规则: color.r = color.r * filterColor.r
 * @param [options.maximumAnisotropy = maximum supported] - 使用的最大各向异性水平 用于纹理过滤。如果未指定此参数，则支持最大各向异性 将使用WebGL堆栈。较大的值可使影像在水平方向上看起来更好 视图。
 * @param [options.cutoutRectangle] - 制图矩形，用于裁剪此ImageryLayer的一部分。
 * @param [options.colorToAlpha] - 用作Alpha的颜色。
 * @param [options.colorToAlphaThreshold = 0.004] - 颜色到Alpha的阈值。
 * @param [options.hasAlphaChannel = true] - 如果此图像提供者提供的图像为真 包括一个Alpha通道；否则为假。如果此属性为false，则为Alpha通道，如果 目前，将被忽略。如果此属性为true，则任何没有Alpha通道的图像都将 它们的alpha随处可见。当此属性为false时，内存使用情况 和纹理上传时间可能会减少。
 * @param [options.tileWidth = 256] - 图像图块的像素宽度。
 * @param [options.tileHeight = 256] - 图像图块的像素高度。
 * @param [options.customTags] - 允许替换网址模板中的自定义关键字。该对象必须具有字符串作为键，并且必须具有值。
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class TencentLayer extends BaseTileLayer {
    constructor(options?: {
        layer?: string;
        style?: string;
        url?: string;
        subdomains?: string | string[];
        minimumLevel?: number;
        maximumLevel?: number;
        minimumTerrainLevel?: number;
        maximumTerrainLevel?: number;
        rectangle?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
        };
        bbox?: number[];
        zIndex?: number;
        chinaCRS?: ChinaCRS;
        proxy?: string;
        templateValues?: any;
        queryParameters?: any;
        headers?: any;
        opacity?: number;
        alpha?: number | ((...params: any[]) => any);
        nightAlpha?: number | ((...params: any[]) => any);
        dayAlpha?: number | ((...params: any[]) => any);
        brightness?: number | ((...params: any[]) => any);
        contrast?: number | ((...params: any[]) => any);
        hue?: number | ((...params: any[]) => any);
        saturation?: number | ((...params: any[]) => any);
        gamma?: number | ((...params: any[]) => any);
        invertColor?: boolean;
        filterColor?: string | Cesium.Color;
        maximumAnisotropy?: number;
        cutoutRectangle?: Cesium.Rectangle;
        colorToAlpha?: Cesium.Color;
        colorToAlphaThreshold?: number;
        hasAlphaChannel?: boolean;
        tileWidth?: number;
        tileHeight?: number;
        customTags?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 创建用于图层的 ImageryProvider对象
     * @param options - Provider参数，同图层构造参数。
     * @returns ImageryProvider类
     */
    static createImageryProvider(options: any): any;
    /**
     * 创建瓦片图层对应的ImageryProvider对象
     * @param [options = {}] - 参数对象，具体每类瓦片图层都不一样。
     * @returns 创建完成的 ImageryProvider 对象
     */
    _createImageryProvider(options?: any): Cesium.UrlTemplateImageryProvider | any;
}

/**
 * 瓦片信息，一般用于测试
 * @param [options] - 参数对象，包括以下：
 * @param [options.color = rgba(255,0,0,1)] - 画瓦片边框线和标签的颜色
 * @param [options.minimumLevel = 0] - 瓦片所支持的最低层级，如果数据没有第0层，该参数必须配置,当地图小于该级别时，平台不去请求服务数据。
 * @param [options.maximumLevel] - 瓦片所支持的最大层级,大于该层级时会显示上一层拉伸后的瓦片，当地图大于该级别时，平台不去请求服务数据。
 * @param [options.minimumTerrainLevel] - 展示影像图层的最小地形细节级别，小于该级别时，平台不显示影像数据。
 * @param [options.maximumTerrainLevel] - 展示影像图层的最大地形细节级别，大于该级别时，平台不显示影像数据。
 * @param [options.rectangle] - 瓦片数据的矩形区域范围
 * @param options.rectangle.xmin - 最小经度值, -180 至 180
 * @param options.rectangle.xmax - 最大经度值, -180 至 180
 * @param options.rectangle.ymin - 最小纬度值, -90 至 90
 * @param options.rectangle.ymax - 最大纬度值, -90 至 90
 * @param [options.bbox] - bbox规范的瓦片数据的矩形区域范围,与rectangle二选一即可。
 * @param [options.zIndex] - 控制图层的叠加层次，默认按加载的顺序进行叠加，但也可以自定义叠加顺序，数字大的在上面(只对同类型图层间有效)。
 * @param [options.opacity = 1.0] - 透明度，取值范围：0.0-1.0。
 * @param [options.alpha = 1.0] - 同opacity。
 * @param [options.nightAlpha = 1.0] - 当 enableLighting 为 true 时 ，在地球的夜晚区域的透明度，取值范围：0.0-1.0。
 * @param [options.dayAlpha = 1.0] - 当 enableLighting 为 true 时，在地球的白天区域的透明度，取值范围：0.0-1.0。
 * @param [options.brightness = 1.0] - 亮度
 * @param [options.contrast = 1.0] - 对比度。 1.0使用未修改的图像颜色，小于1.0会降低对比度，而大于1.0则会提高对比度。
 * @param [options.hue = 0.0] - 色调。 0.0 时未修改的图像颜色。
 * @param [options.saturation = 1.0] - 饱和度。 1.0使用未修改的图像颜色，小于1.0会降低饱和度，而大于1.0则会增加饱和度。
 * @param [options.gamma = 1.0] - 伽马校正值。 1.0使用未修改的图像颜色。
 * @param [options.invertColor] - 是否反向颜色，内部计算规则: color.r = 1.0 - color.r
 * @param [options.filterColor] - 滤镜颜色，内部计算规则: color.r = color.r * filterColor.r
 * @param [options.maximumAnisotropy = maximum supported] - 使用的最大各向异性水平 用于纹理过滤。如果未指定此参数，则支持最大各向异性 将使用WebGL堆栈。较大的值可使影像在水平方向上看起来更好 视图。
 * @param [options.cutoutRectangle] - 制图矩形，用于裁剪此ImageryLayer的一部分。
 * @param [options.colorToAlpha] - 用作Alpha的颜色。
 * @param [options.colorToAlphaThreshold = 0.004] - 颜色到Alpha的阈值。
 * @param [options.hasAlphaChannel = true] - 如果此图像提供者提供的图像为真 包括一个Alpha通道；否则为假。如果此属性为false，则为Alpha通道，如果 目前，将被忽略。如果此属性为true，则任何没有Alpha通道的图像都将 它们的alpha随处可见。当此属性为false时，内存使用情况 和纹理上传时间可能会减少。
 * @param [options.tileWidth = 256] - 图像图块的像素宽度。
 * @param [options.tileHeight = 256] - 图像图块的像素高度。
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class TileInfoLayer extends BaseTileLayer {
    constructor(options?: {
        color?: string;
        minimumLevel?: number;
        maximumLevel?: number;
        minimumTerrainLevel?: number;
        maximumTerrainLevel?: number;
        rectangle?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
        };
        bbox?: number[];
        zIndex?: number;
        opacity?: number;
        alpha?: number | ((...params: any[]) => any);
        nightAlpha?: number | ((...params: any[]) => any);
        dayAlpha?: number | ((...params: any[]) => any);
        brightness?: number | ((...params: any[]) => any);
        contrast?: number | ((...params: any[]) => any);
        hue?: number | ((...params: any[]) => any);
        saturation?: number | ((...params: any[]) => any);
        gamma?: number | ((...params: any[]) => any);
        invertColor?: boolean;
        filterColor?: string | Cesium.Color;
        maximumAnisotropy?: number;
        cutoutRectangle?: Cesium.Rectangle;
        colorToAlpha?: Cesium.Color;
        colorToAlphaThreshold?: number;
        hasAlphaChannel?: boolean;
        tileWidth?: number;
        tileHeight?: number;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 创建瓦片图层对应的ImageryProvider对象
     * @param [options = {}] - 参数对象，具体每类瓦片图层都不一样。
     * @returns 创建完成的 ImageryProvider 对象
     */
    _createImageryProvider(options?: any): Cesium.UrlTemplateImageryProvider | any;
}

/**
 * TMS服务，比如由MapTiler，GDAL2Tiles等生成的切片图像的加载。
 * @param [options] - 参数对象，包括以下：
 * @param [options.url] - 服务地址
 * @param [options.subdomains] - URL模板中用于 {s} 占位符的子域。 如果此参数是单个字符串，则字符串中的每个字符都是一个子域。如果是 一个数组，数组中的每个元素都是一个子域。
 * @param [options.fileExtension = 'png'] - 服务器上图像的文件扩展名。
 * @param [options.flipXY] - gdal2tiles.py的旧版本将tilemapresource.xml中的X和Y值翻转了。指定此选项将执行相同的操作，从而允许加载这些不正确的图块集。
 * @param [options.minimumLevel = 0] - 瓦片所支持的最低层级，如果数据没有第0层，该参数必须配置,当地图小于该级别时，平台不去请求服务数据。
 * @param [options.maximumLevel] - 瓦片所支持的最大层级,大于该层级时会显示上一层拉伸后的瓦片，当地图大于该级别时，平台不去请求服务数据。
 * @param [options.minimumTerrainLevel] - 展示影像图层的最小地形细节级别，小于该级别时，平台不显示影像数据。
 * @param [options.maximumTerrainLevel] - 展示影像图层的最大地形细节级别，大于该级别时，平台不显示影像数据。
 * @param [options.rectangle] - 瓦片数据的矩形区域范围
 * @param options.rectangle.xmin - 最小经度值, -180 至 180
 * @param options.rectangle.xmax - 最大经度值, -180 至 180
 * @param options.rectangle.ymin - 最小纬度值, -90 至 90
 * @param options.rectangle.ymax - 最大纬度值, -90 至 90
 * @param [options.bbox] - bbox规范的瓦片数据的矩形区域范围,与rectangle二选一即可。
 * @param [options.zIndex] - 控制图层的叠加层次，默认按加载的顺序进行叠加，但也可以自定义叠加顺序，数字大的在上面(只对同类型图层间有效)。
 * @param [options.crs = CRS.EPSG:3857] - 瓦片数据的坐标系信息，默认为墨卡托投影
 * @param [options.chinaCRS] - 标识瓦片的国内坐标系（用于自动纠偏或加偏），自动将瓦片转为map对应的chinaCRS类型坐标系。
 * @param [options.proxy] - 加载资源时要使用的代理服务url。
 * @param [options.templateValues] - 一个对象，用于替换Url中的模板值的键/值对
 * @param [options.queryParameters] - 一个对象，其中包含在检索资源时将发送的查询参数。比如：queryParameters: {'access_token': '123-435-456-000'},
 * @param [options.headers] - 一个对象，将发送的其他HTTP标头。比如：headers: { 'X-My-Header': 'valueOfHeader' },
 * @param [options.enablePickFeatures = true] - 如果为true，则 {@link UrlTemplateImageryProvider#pickFeatures} 请求 pickFeaturesUrl 并尝试解释响应中包含的功能。
 *        如果为 false{@link UrlTemplateImageryProvider#pickFeatures} 会立即返回未定义（表示没有可拾取的内容） 功能）而无需与服务器通信。如果您知道数据，则将此属性设置为false 源不支持选择功能，或者您不希望该提供程序的功能可供选择。注意 可以通过修改 {@link UriTemplateImageryProvider#enablePickFeatures}来动态覆盖 属性。
 * @param [options.getFeatureInfoFormats] - 在某处获取功能信息的格式 调用 {@link UrlTemplateImageryProvider#pickFeatures} 的特定位置。如果这 参数未指定，功能选择已禁用。
 * @param [options.opacity = 1.0] - 透明度，取值范围：0.0-1.0。
 * @param [options.alpha = 1.0] - 同opacity。
 * @param [options.nightAlpha = 1.0] - 当 enableLighting 为 true 时 ，在地球的夜晚区域的透明度，取值范围：0.0-1.0。
 * @param [options.dayAlpha = 1.0] - 当 enableLighting 为 true 时，在地球的白天区域的透明度，取值范围：0.0-1.0。
 * @param [options.brightness = 1.0] - 亮度
 * @param [options.contrast = 1.0] - 对比度。 1.0使用未修改的图像颜色，小于1.0会降低对比度，而大于1.0则会提高对比度。
 * @param [options.hue = 0.0] - 色调。 0.0 时未修改的图像颜色。
 * @param [options.saturation = 1.0] - 饱和度。 1.0使用未修改的图像颜色，小于1.0会降低饱和度，而大于1.0则会增加饱和度。
 * @param [options.gamma = 1.0] - 伽马校正值。 1.0使用未修改的图像颜色。
 * @param [options.invertColor] - 是否反向颜色，内部计算规则: color.r = 1.0 - color.r
 * @param [options.filterColor] - 滤镜颜色，内部计算规则: color.r = color.r * filterColor.r
 * @param [options.maximumAnisotropy = maximum supported] - 使用的最大各向异性水平 用于纹理过滤。如果未指定此参数，则支持最大各向异性 将使用WebGL堆栈。较大的值可使影像在水平方向上看起来更好 视图。
 * @param [options.cutoutRectangle] - 制图矩形，用于裁剪此ImageryLayer的一部分。
 * @param [options.colorToAlpha] - 用作Alpha的颜色。
 * @param [options.colorToAlphaThreshold = 0.004] - 颜色到Alpha的阈值。
 * @param [options.hasAlphaChannel = true] - 如果此图像提供者提供的图像为真 包括一个Alpha通道；否则为假。如果此属性为false，则为Alpha通道，如果 目前，将被忽略。如果此属性为true，则任何没有Alpha通道的图像都将 它们的alpha随处可见。当此属性为false时，内存使用情况 和纹理上传时间可能会减少。
 * @param [options.tileWidth = 256] - 图像图块的像素宽度。
 * @param [options.tileHeight = 256] - 图像图块的像素高度。
 * @param [options.customTags] - 允许替换网址模板中的自定义关键字。该对象必须具有字符串作为键，并且必须具有值。
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class TmsLayer extends BaseTileLayer {
    constructor(options?: {
        url?: Cesium.Resource | string | Promise<Cesium.Resource> | Promise<string>;
        subdomains?: string | string[];
        fileExtension?: string;
        flipXY?: boolean;
        minimumLevel?: number;
        maximumLevel?: number;
        minimumTerrainLevel?: number;
        maximumTerrainLevel?: number;
        rectangle?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
        };
        bbox?: number[];
        zIndex?: number;
        crs?: CRS;
        chinaCRS?: ChinaCRS;
        proxy?: string;
        templateValues?: any;
        queryParameters?: any;
        headers?: any;
        enablePickFeatures?: boolean;
        getFeatureInfoFormats?: Cesium.GetFeatureInfoFormat[];
        opacity?: number;
        alpha?: number | ((...params: any[]) => any);
        nightAlpha?: number | ((...params: any[]) => any);
        dayAlpha?: number | ((...params: any[]) => any);
        brightness?: number | ((...params: any[]) => any);
        contrast?: number | ((...params: any[]) => any);
        hue?: number | ((...params: any[]) => any);
        saturation?: number | ((...params: any[]) => any);
        gamma?: number | ((...params: any[]) => any);
        invertColor?: boolean;
        filterColor?: string | Cesium.Color;
        maximumAnisotropy?: number;
        cutoutRectangle?: Cesium.Rectangle;
        colorToAlpha?: Cesium.Color;
        colorToAlphaThreshold?: number;
        hasAlphaChannel?: boolean;
        tileWidth?: number;
        tileHeight?: number;
        customTags?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 创建用于图层的 ImageryProvider对象
     * @param options - Provider参数，同图层构造参数。
     * @returns ImageryProvider类
     */
    static createImageryProvider(options: any): any;
    /**
     * 创建瓦片图层对应的ImageryProvider对象
     * @param [options = {}] - 参数对象，具体每类瓦片图层都不一样。
     * @returns 创建完成的 ImageryProvider 对象
     */
    _createImageryProvider(options?: any): Cesium.UrlTemplateImageryProvider | any;
}

/**
 * WMS服务
 * @param [options] - 参数对象，包括以下：
 * @param options.url - WMS服务的URL。
 * @param [options.subdomains] - URL模板中用于 {s} 占位符的子域。 如果此参数是单个字符串，则字符串中的每个字符都是一个子域。如果是 一个数组，数组中的每个元素都是一个子域。
 * @param options.layers - 要包含的图层，用逗号分隔。
 * @param [options.parameters = Cesium.WebMapServiceImageryProvider.DefaultParameters] - 要在URL中 传递给[WMS服务]{@link https://docs.geoserver.org/stable/en/user/services/wms/index.html}GetMap请求的其他参数。
 * @param [options.parameters.format = 'image/jpeg'] - 瓦片格式
 * @param [options.parameters.transparent] - 是否透明
 * @param [options.parameters.cql_filter] - 筛选服务数据的SQL语句
 * @param [options.parameters.service = 'WMS'] - 服务类型
 * @param [options.parameters.version = '1.1.1'] - 服务版本
 * @param [options.parameters.request = 'GetMap'] - 请求方法
 * @param [options.parameters.styles = ''] - 样式
 * @param [options.crs = 'EPSG:3857'] - 瓦片数据的坐标系信息，默认为墨卡托投影，CRS规范，用于WMS规范>= 1.3.0。
 * @param [options.srs] - SRS规范，与WMS规范1.1.0或1.1.1一起使用
 * @param [options.getCapabilities = true] - 是否通过服务本身的GetCapabilities来读取一些参数，减少options配置项
 * @param [options.clock] - 一个时钟实例，用于确定时间维度的值。指定' times '时需要。
 * @param [options.times] - TimeIntervalCollection 的数据属性是一个包含时间动态维度及其值的对象。
 * @param [options.enablePickFeatures = true] - 如果为true，则请求 单击坐标处服务中对应的矢量数据 并尝试解释响应中包含的功能。为false时不去服务请求。
 * @param [options.featureToGraphic = mars3d.Util.geoJsonToGraphics] - 解析单击返回的矢量数据信息为Graphic构造参数，可以按需自定义。
 * @param [options.hasToGraphic] - 筛选或判断是否解析，单击获取到的数据进行按需筛选解析，大数据解析很卡，可以设定阀值屏蔽大数据，避免卡顿，number类型时代表字符串长度值。
 * @param [options.getFeatureInfoParameters] - 在单击坐标处通过GetFeatureInfo请求接口时,传递给WMS服务器的附加参数。
 * @param [options.highlight] - 鼠标单击高亮显示对应的矢量数据 及其样式，包括type参数指定构造的类型，其他参数见各{@link GraphicType}矢量数据的style参数项。
 * @param [options.popup] - 绑定的popup弹窗值，也可以bindPopup方法绑定，支持：'all'、数组、字符串模板
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数,还包括：
 * @param [options.popupOptions.title] - 固定的标题名称
 * @param [options.popupOptions.titleField] - 标题对应的属性字段名称
 * @param [options.popupOptions.noTitle] - 不显示标题
 * @param [options.minimumLevel = 0] - 瓦片所支持的最低层级，如果数据没有第0层，该参数必须配置,当地图小于该级别时，平台不去请求服务数据。
 * @param [options.maximumLevel] - 瓦片所支持的最大层级,大于该层级时会显示上一层拉伸后的瓦片，当地图大于该级别时，平台不去请求服务数据。
 * @param [options.minimumTerrainLevel] - 展示影像图层的最小地形细节级别，小于该级别时，平台不显示影像数据。
 * @param [options.maximumTerrainLevel] - 展示影像图层的最大地形细节级别，大于该级别时，平台不显示影像数据。
 * @param [options.rectangle] - 瓦片数据的矩形区域范围
 * @param options.rectangle.xmin - 最小经度值, -180 至 180
 * @param options.rectangle.xmax - 最大经度值, -180 至 180
 * @param options.rectangle.ymin - 最小纬度值, -90 至 90
 * @param options.rectangle.ymax - 最大纬度值, -90 至 90
 * @param [options.bbox] - bbox规范的瓦片数据的矩形区域范围,与rectangle二选一即可。
 * @param [options.zIndex] - 控制图层的叠加层次，默认按加载的顺序进行叠加，但也可以自定义叠加顺序，数字大的在上面(只对同类型图层间有效)。
 * @param [options.chinaCRS] - 标识瓦片的国内坐标系（用于自动纠偏或加偏），自动将瓦片转为map对应的chinaCRS类型坐标系。
 * @param [options.opacity = 1.0] - 透明度，取值范围：0.0-1.0。
 * @param [options.alpha = 1.0] - 同opacity。
 * @param [options.nightAlpha = 1.0] - 当 enableLighting 为 true 时 ，在地球的夜晚区域的透明度，取值范围：0.0-1.0。
 * @param [options.dayAlpha = 1.0] - 当 enableLighting 为 true 时，在地球的白天区域的透明度，取值范围：0.0-1.0。
 * @param [options.brightness = 1.0] - 亮度
 * @param [options.contrast = 1.0] - 对比度。 1.0使用未修改的图像颜色，小于1.0会降低对比度，而大于1.0则会提高对比度。
 * @param [options.hue = 0.0] - 色调。 0.0 时未修改的图像颜色。
 * @param [options.saturation = 1.0] - 饱和度。 1.0使用未修改的图像颜色，小于1.0会降低饱和度，而大于1.0则会增加饱和度。
 * @param [options.gamma = 1.0] - 伽马校正值。 1.0使用未修改的图像颜色。
 * @param [options.invertColor] - 是否反向颜色，内部计算规则: color.r = 1.0 - color.r
 * @param [options.filterColor] - 滤镜颜色，内部计算规则: color.r = color.r * filterColor.r
 * @param [options.maximumAnisotropy = maximum supported] - 使用的最大各向异性水平 用于纹理过滤。如果未指定此参数，则支持最大各向异性 将使用WebGL堆栈。较大的值可使影像在水平方向上看起来更好 视图。
 * @param [options.cutoutRectangle] - 制图矩形，用于裁剪此ImageryLayer的一部分。
 * @param [options.colorToAlpha] - 用作Alpha的颜色。
 * @param [options.colorToAlphaThreshold = 0.004] - 颜色到Alpha的阈值。
 * @param [options.hasAlphaChannel = true] - 如果此图像提供者提供的图像为真 包括一个Alpha通道；否则为假。如果此属性为false，则为Alpha通道，如果 目前，将被忽略。如果此属性为true，则任何没有Alpha通道的图像都将 它们的alpha随处可见。当此属性为false时，内存使用情况 和纹理上传时间可能会减少。
 * @param [options.tileWidth = 256] - 图像图块的像素宽度。
 * @param [options.tileHeight = 256] - 图像图块的像素高度。
 * @param [options.customTags] - 允许替换网址模板中的自定义关键字。该对象必须具有字符串作为键，并且必须具有值。
 * @param [options.proxy] - 加载资源时要使用的代理服务url。
 * @param [options.templateValues] - 一个对象，用于替换Url中的模板值的键/值对
 * @param [options.queryParameters] - 一个对象，其中包含在检索资源时将发送的查询参数。比如：queryParameters: {'access_token': '123-435-456-000'},
 * @param [options.headers] - 一个对象，将发送的其他HTTP标头。比如：headers: { 'X-My-Header': 'valueOfHeader' },
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度,-90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class WmsLayer extends BaseTileLayer {
    constructor(options?: {
        url: Cesium.Resource | string;
        subdomains?: string | string[];
        layers: string;
        parameters?: {
            format?: string;
            transparent?: boolean;
            cql_filter?: string;
            service?: string;
            version?: string;
            request?: string;
            styles?: string;
        };
        crs?: string | CRS;
        srs?: string;
        getCapabilities?: boolean;
        clock?: Cesium.Clock;
        times?: Cesium.TimeIntervalCollection;
        enablePickFeatures?: boolean;
        featureToGraphic?: (...params: any[]) => any;
        hasToGraphic?: number | boolean | ((...params: any[]) => any);
        getFeatureInfoParameters?: any;
        highlight?: any;
        popup?: string | Globe.getTemplateHtml_template[] | ((...params: any[]) => any);
        popupOptions?: {
            title?: string;
            titleField?: string;
            noTitle?: string;
        };
        minimumLevel?: number;
        maximumLevel?: number;
        minimumTerrainLevel?: number;
        maximumTerrainLevel?: number;
        rectangle?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
        };
        bbox?: number[];
        zIndex?: number;
        chinaCRS?: ChinaCRS;
        opacity?: number;
        alpha?: number | ((...params: any[]) => any);
        nightAlpha?: number | ((...params: any[]) => any);
        dayAlpha?: number | ((...params: any[]) => any);
        brightness?: number | ((...params: any[]) => any);
        contrast?: number | ((...params: any[]) => any);
        hue?: number | ((...params: any[]) => any);
        saturation?: number | ((...params: any[]) => any);
        gamma?: number | ((...params: any[]) => any);
        invertColor?: boolean;
        filterColor?: string | Cesium.Color;
        maximumAnisotropy?: number;
        cutoutRectangle?: Cesium.Rectangle;
        colorToAlpha?: Cesium.Color;
        colorToAlphaThreshold?: number;
        hasAlphaChannel?: boolean;
        tileWidth?: number;
        tileHeight?: number;
        customTags?: any;
        proxy?: string;
        templateValues?: any;
        queryParameters?: any;
        headers?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 是否存在Popup绑定
     * @returns 是否存在Popup绑定
     */
    hasPopup(): boolean;
    /**
     * 绑定鼠标单击对象后的弹窗。
     * @param content - 弹窗内容html字符串，或者回调方法。
     * @param [options] - 控制参数
     * @returns 当前对象本身，可以链式调用
     */
    bindPopup(content: string | ((...params: any[]) => any), options?: Popup.StyleOptions | any): WmsLayer;
    /**
     * 解除绑定的鼠标单击对象后的弹窗。
     * @returns 当前对象本身，可以链式调用
     */
    unbindPopup(): BaseGraphicLayer;
    /**
     * 关闭弹窗
     * @returns 当前对象本身，可以链式调用
     */
    closePopup(): BaseGraphicLayer;
    /**
     * 创建用于图层的 ImageryProvider对象
     * @param options - Provider参数，同图层构造参数。
     * @returns ImageryProvider类
     */
    static createImageryProvider(options: any): any;
    /**
     * 创建瓦片图层对应的ImageryProvider对象
     * @param [options = {}] - 参数对象，具体每类瓦片图层都不一样。
     * @returns 创建完成的 ImageryProvider 对象
     */
    _createImageryProvider(options?: any): Cesium.UrlTemplateImageryProvider | any;
    /**
     * 对象添加到地图上的创建钩子方法，
     * 每次add时都会调用
     * @returns 无
     */
    _addedHook(): void;
}

/**
 * WMTS服务
 * @param [options] - 参数对象，包括以下：
 * @param options.url - WMTS GetTile操作(用于kvp编码的请求)或tile-URL模板(用于RESTful请求)的基本URL。tile-URL模板应该包含以下变量:&#123;style&#125;, &#123;TileMatrixSet&#125;, &#123;TileMatrix&#125;, &#123;TileRow&#125;, &#123;TileCol&#125; 前两个是可选的，如果实际值是硬编码的或者服务器不需要。 &#123;s&#125;关键字可用于指定子域。
 * @param [options.subdomains] - URL模板中用于 {s} 占位符的子域。 如果此参数是单个字符串，则字符串中的每个字符都是一个子域。如果是 一个数组，数组中的每个元素都是一个子域。
 * @param [options.format = 'image/jpeg'] - 要从服务器检索的瓦片图像的MIME类型。
 * @param options.layer - WMTS请求的层名。
 * @param options.style - WMTS请求的样式名称。
 * @param options.tileMatrixSetID - 用于WMTS请求的TileMatrixSet的标识符。
 * @param [options.tileMatrixLabels] - 瓦片矩阵中用于WMTS请求的标识符列表，每个瓦片矩阵级别一个。
 * @param [options.clock] - 一个时钟实例，用于确定时间维度的值。指定' times '时需要。
 * @param [options.times] - TimeIntervalCollection 的数据属性是一个包含时间动态维度及其值的对象。
 * @param [options.getCapabilities = true] - 是否通过服务本身的GetCapabilities来读取一些参数，减少options配置项
 * @param [options.enablePickFeatures = false] - 如果为true，则请求 pickFeaturesUrl 并尝试解释响应中包含的功能。
 * @param [options.pickFeaturesUrl] - enablePickFeatures为true时，用于单击查看矢量对象功能的对应wms服务url。
 * @param [options.getFeatureInfoParameters] - 在单击坐标处通过GetFeatureInfo请求接口时,传递给WMS服务器的附加参数。
 * @param [options.pickFeatures] - 外部自定义单击请求对应矢量数据的处理。与pickFeaturesUrl二选一
 * @param [options.highlight] - 鼠标单击高亮显示对应的矢量数据 及其样式，具体见各{@link GraphicType}矢量数据的style参数。
 * @param [options.highlight.type] - 构造成的矢量数据类型。
 * @param [options.minimumLevel = 0] - 瓦片所支持的最低层级，如果数据没有第0层，该参数必须配置,当地图小于该级别时，平台不去请求服务数据。
 * @param [options.maximumLevel] - 瓦片所支持的最大层级,大于该层级时会显示上一层拉伸后的瓦片，当地图大于该级别时，平台不去请求服务数据。
 * @param [options.minimumTerrainLevel] - 展示影像图层的最小地形细节级别，小于该级别时，平台不显示影像数据。
 * @param [options.maximumTerrainLevel] - 展示影像图层的最大地形细节级别，大于该级别时，平台不显示影像数据。
 * @param [options.rectangle] - 瓦片数据的矩形区域范围
 * @param options.rectangle.xmin - 最小经度值, -180 至 180
 * @param options.rectangle.xmax - 最大经度值, -180 至 180
 * @param options.rectangle.ymin - 最小纬度值, -90 至 90
 * @param options.rectangle.ymax - 最大纬度值, -90 至 90
 * @param [options.bbox] - bbox规范的瓦片数据的矩形区域范围,与rectangle二选一即可。
 * @param [options.zIndex] - 控制图层的叠加层次，默认按加载的顺序进行叠加，但也可以自定义叠加顺序，数字大的在上面(只对同类型图层间有效)。
 * @param [options.crs = CRS.EPSG:3857] - 瓦片数据的坐标系信息，默认为墨卡托投影
 * @param [options.chinaCRS] - 标识瓦片的国内坐标系（用于自动纠偏或加偏），自动将瓦片转为map对应的chinaCRS类型坐标系。
 * @param [options.proxy] - 加载资源时要使用的代理服务url。
 * @param [options.templateValues] - 一个对象，用于替换Url中的模板值的键/值对
 * @param [options.queryParameters] - 一个对象，其中包含在检索资源时将发送的查询参数。比如：queryParameters: {'access_token': '123-435-456-000'},
 * @param [options.headers] - 一个对象，将发送的其他HTTP标头。比如：headers: { 'X-My-Header': 'valueOfHeader' },
 * @param [options.opacity = 1.0] - 透明度，取值范围：0.0-1.0。
 * @param [options.alpha = 1.0] - 同opacity。
 * @param [options.nightAlpha = 1.0] - 当 enableLighting 为 true 时 ，在地球的夜晚区域的透明度，取值范围：0.0-1.0。
 * @param [options.dayAlpha = 1.0] - 当 enableLighting 为 true 时，在地球的白天区域的透明度，取值范围：0.0-1.0。
 * @param [options.brightness = 1.0] - 亮度
 * @param [options.contrast = 1.0] - 对比度。 1.0使用未修改的图像颜色，小于1.0会降低对比度，而大于1.0则会提高对比度。
 * @param [options.hue = 0.0] - 色调。 0.0 时未修改的图像颜色。
 * @param [options.saturation = 1.0] - 饱和度。 1.0使用未修改的图像颜色，小于1.0会降低饱和度，而大于1.0则会增加饱和度。
 * @param [options.gamma = 1.0] - 伽马校正值。 1.0使用未修改的图像颜色。
 * @param [options.invertColor] - 是否反向颜色，内部计算规则: color.r = 1.0 - color.r
 * @param [options.filterColor] - 滤镜颜色，内部计算规则: color.r = color.r * filterColor.r
 * @param [options.maximumAnisotropy = maximum supported] - 使用的最大各向异性水平 用于纹理过滤。如果未指定此参数，则支持最大各向异性 将使用WebGL堆栈。较大的值可使影像在水平方向上看起来更好 视图。
 * @param [options.cutoutRectangle] - 制图矩形，用于裁剪此ImageryLayer的一部分。
 * @param [options.colorToAlpha] - 用作Alpha的颜色。
 * @param [options.colorToAlphaThreshold = 0.004] - 颜色到Alpha的阈值。
 * @param [options.hasAlphaChannel = true] - 如果此图像提供者提供的图像为真 包括一个Alpha通道；否则为假。如果此属性为false，则为Alpha通道，如果 目前，将被忽略。如果此属性为true，则任何没有Alpha通道的图像都将 它们的alpha随处可见。当此属性为false时，内存使用情况 和纹理上传时间可能会减少。
 * @param [options.tileWidth = 256] - 图像图块的像素宽度。
 * @param [options.tileHeight = 256] - 图像图块的像素高度。
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class WmtsLayer extends BaseTileLayer {
    constructor(options?: {
        url: Cesium.Resource | string;
        subdomains?: string | string[];
        format?: string;
        layer: string;
        style: string;
        tileMatrixSetID: string;
        tileMatrixLabels?: string[];
        clock?: Cesium.Clock;
        times?: Cesium.TimeIntervalCollection;
        getCapabilities?: boolean;
        enablePickFeatures?: boolean;
        pickFeaturesUrl?: Cesium.Resource | string;
        getFeatureInfoParameters?: any;
        pickFeatures?: (...params: any[]) => any;
        highlight?: {
            type?: GraphicType | string;
        };
        minimumLevel?: number;
        maximumLevel?: number;
        minimumTerrainLevel?: number;
        maximumTerrainLevel?: number;
        rectangle?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
        };
        bbox?: number[];
        zIndex?: number;
        crs?: CRS;
        chinaCRS?: ChinaCRS;
        proxy?: string;
        templateValues?: any;
        queryParameters?: any;
        headers?: any;
        opacity?: number;
        alpha?: number | ((...params: any[]) => any);
        nightAlpha?: number | ((...params: any[]) => any);
        dayAlpha?: number | ((...params: any[]) => any);
        brightness?: number | ((...params: any[]) => any);
        contrast?: number | ((...params: any[]) => any);
        hue?: number | ((...params: any[]) => any);
        saturation?: number | ((...params: any[]) => any);
        gamma?: number | ((...params: any[]) => any);
        invertColor?: boolean;
        filterColor?: string | Cesium.Color;
        maximumAnisotropy?: number;
        cutoutRectangle?: Cesium.Rectangle;
        colorToAlpha?: Cesium.Color;
        colorToAlphaThreshold?: number;
        hasAlphaChannel?: boolean;
        tileWidth?: number;
        tileHeight?: number;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 创建用于图层的 ImageryProvider对象
     * @param options - Provider参数，同图层构造参数。
     * @returns ImageryProvider类
     */
    static createImageryProvider(options: any): any;
    /**
     * 创建瓦片图层对应的ImageryProvider对象
     * @param [options = {}] - 参数对象，具体每类瓦片图层都不一样。
     * @returns 创建完成的 ImageryProvider 对象
     */
    _createImageryProvider(options?: any): Cesium.UrlTemplateImageryProvider | any;
    /**
     * 对象添加到地图上的创建钩子方法，
     * 每次add时都会调用
     * @returns 无
     */
    _addedHook(): void;
}

/**
 * 标准xyz金字塔
 * @param [options] - 参数对象，包括以下：
 * @param options.url - 用于请求瓦片图块的URL模板。它具有以下关键字:
 * <ul>
 *     <li><code>{z}</code>: 切片方案中切片的级别。零级是四叉树金字塔的根。</li>
 *     <li><code>{x}</code>:切片方案中的图块X坐标，其中0是最西端的图块。</li>
 *     <li><code>{y}</code>: 切片方案中的图块Y坐标，其中0是最北的图块。</li>
 *     <li><code>{s}</code>:可用的子域之一，用于克服浏览器对每个主机的并发请求数的限制。</li>
 *     <li><code>{reverseX}</code>: 切片方案中的图块X坐标，其中0是最东的图块。</li>
 *     <li><code>{reverseY}</code>:切片方案中的图块Y坐标，其中0是最南端的图块,用于TMS服务。</li>
 *     <li><code>{reverseZ}</code>:在切片方案中切片的级别，其中级别0是四叉树金字塔的最大级别。为了使用reverseZ，必须定义maximumLevel。</li>
 *     <li><code>{westDegrees}</code>: 瓦片图块在测地角度上的西边缘。</li>
 *     <li><code>{southDegrees}</code>:瓦片图块在测地角度上的南边缘。</li>
 *     <li><code>{eastDegrees}</code>:以大地测量度表示的图块的东边缘。</li>
 *     <li><code>{northDegrees}</code>: 瓦片图块在测地角度上的北边缘。</li>
 *     <li><code>{westProjected}</code>:图块方案的墨卡托投影坐标中图块的西边缘。</li>
 *     <li><code>{southProjected}</code>: 图块方案的墨卡托投影坐标中图块的南边缘。</li>
 *     <li><code>{eastProjected}</code>: :图块方案的墨卡托投影坐标中图块的东边缘。</li>
 *     <li><code>{northProjected}</code>:图块方案的墨卡托投影坐标中图块的北边缘。</li>
 *     <li><code>{width}</code>:每个图块的宽度（以像素为单位）。</li>
 *     <li><code>{height}</code>: 每个图块的高度（以像素为单位）。</li>
 * </ul>
 * @param [options.urlSchemeZeroPadding] - 为每个图块坐标获取URL方案零填充。格式为' 000'，其中每个坐标将在左侧用零填充，以匹配传递的零字符串的宽度。例如设置:
 * urlSchemeZeroPadding:{'{x}':'0000'}将导致'x'值为12，以在生成的URL中返回{x}的字符串'0012'。传递的对象具有以下关键字:
 * <ul>
 *  <li> <code>{z}</code>: 切片方案中图块级别的零填充。</li>
 *  <li> <code>{x}</code>: 切片方案中图块X坐标的零填充。</li>
 *  <li> <code>{y}</code>: 切片方案中图块Y坐标的零填充。</li>
 *  <li> <code>{reverseX}</code>: 在平铺方案中图块reverseX坐标的零填充。</li>
 *  <li> <code>{reverseY}</code>: 在切片方案中，图块反向Y坐标的零填充,用于TMS服务。</li>
 *  <li> <code>{reverseZ}</code>: 在切片方案中，图块的reverseZ坐标的零填充。</li>
 * </ul>
 * @param [options.subdomains] - URL模板中用于 {s} 占位符的子域。 如果此参数是单个字符串，则字符串中的每个字符都是一个子域。如果是一个数组，数组中的每个元素都是一个子域。
 * @param [options.tms] - 如果此值为true，反转切片Y轴的编号（对于TMS服务需可将将此项打开）
 * @param [options.minimumLevel = 0] - 瓦片所支持的最低层级，如果数据没有第0层，该参数必须配置,当地图小于该级别时，平台不去请求服务数据。
 * @param [options.maximumLevel] - 瓦片所支持的最大层级,大于该层级时会显示上一层拉伸后的瓦片，当地图大于该级别时，平台不去请求服务数据。
 * @param [options.minimumTerrainLevel] - 展示影像图层的最小地形细节级别，小于该级别时，平台不显示影像数据。
 * @param [options.maximumTerrainLevel] - 展示影像图层的最大地形细节级别，大于该级别时，平台不显示影像数据。
 * @param [options.rectangle] - 瓦片数据的矩形区域范围
 * @param options.rectangle.xmin - 最小经度值, -180 至 180
 * @param options.rectangle.xmax - 最大经度值, -180 至 180
 * @param options.rectangle.ymin - 最小纬度值, -90 至 90
 * @param options.rectangle.ymax - 最大纬度值, -90 至 90
 * @param [options.bbox] - bbox规范的瓦片数据的矩形区域范围,与rectangle二选一即可。
 * @param [options.zIndex] - 控制图层的叠加层次，默认按加载的顺序进行叠加，但也可以自定义叠加顺序，数字大的在上面(只对同类型图层间有效)。
 * @param [options.crs = CRS.EPSG:3857] - 瓦片数据的坐标系信息，默认为墨卡托投影
 * @param [options.chinaCRS] - 标识瓦片的国内坐标系（用于自动纠偏或加偏），自动将瓦片转为map对应的chinaCRS类型坐标系。
 * @param [options.proxy] - 加载资源时要使用的代理服务url。
 * @param [options.templateValues] - 一个对象，用于替换Url中的模板值的键/值对
 * @param [options.queryParameters] - 一个对象，其中包含在检索资源时将发送的查询参数。比如：queryParameters: {'access_token': '123-435-456-000'},
 * @param [options.headers] - 一个对象，将发送的其他HTTP标头。比如：headers: { 'X-My-Header': 'valueOfHeader' },
 * @param [options.enablePickFeatures = true] - 如果为true，则 {@link UrlTemplateImageryProvider#pickFeatures} 请求 pickFeaturesUrl 并尝试解释响应中包含的功能。
 *        如果为 false{@link UrlTemplateImageryProvider#pickFeatures} 会立即返回未定义（表示没有可拾取的内容） 功能）而无需与服务器通信。如果您知道数据，则将此属性设置为false 源不支持选择功能，或者您不希望该提供程序的功能可供选择。注意 可以通过修改 {@link UriTemplateImageryProvider#enablePickFeatures}来动态覆盖 属性。
 * @param [options.pickFeaturesUrl] - 用于选择功能的URL模板。如果未指定此属性，
 *                 {@link Cesium.UrlTemplateImageryProvider#pickFeatures} 会立即返回undefined，表示没有 功能选择。
 *      网址模板支持 <code>url</code>参数支持的所有关键字参数，以及以下内容:
 * <ul>
 *     <li><code>{i}</code>: 所选位置的像素列（水平坐标），其中最西端的像素为0。</li>
 *     <li><code>{j}</code>: 所选位置的像素行（垂直坐标），其中最北端的像素为0。</li>
 *     <li><code>{reverseI}</code>: 所选位置的像素列（水平坐标），其中最东端的像素为0。</li>
 *     <li><code>{reverseJ}</code>: 所选位置的像素行（垂直坐标），其中最南端的像素为0。</li>
 *     <li><code>{longitudeDegrees}</code>: 所选位置的经度（以度为单位）。</li>
 *     <li><code>{latitudeDegrees}</code>: 所选位置的纬度（以度为单位）。</li>
 *     <li><code>{longitudeProjected}</code>:在平铺方案的投影坐标中所拾取位置的经度。</li>
 *     <li><code>{latitudeProjected}</code>: 在平铺方案的投影坐标中所拾取位置的纬度。</li>
 *     <li><code>{format}</code>: 获取功能信息的格式，如 {@link GetFeatureInfoFormat}中所指定。</li>
 * </ul>
 * @param [options.getFeatureInfoFormats] - 在某处获取功能信息的格式 调用 {@link UrlTemplateImageryProvider#pickFeatures} 的特定位置。如果这 参数未指定，功能选择已禁用。
 * @param [options.opacity = 1.0] - 透明度，取值范围：0.0-1.0。
 * @param [options.alpha = 1.0] - 同opacity。
 * @param [options.nightAlpha = 1.0] - 当 enableLighting 为 true 时 ，在地球的夜晚区域的透明度，取值范围：0.0-1.0。
 * @param [options.dayAlpha = 1.0] - 当 enableLighting 为 true 时，在地球的白天区域的透明度，取值范围：0.0-1.0。
 * @param [options.brightness = 1.0] - 亮度
 * @param [options.contrast = 1.0] - 对比度。 1.0使用未修改的图像颜色，小于1.0会降低对比度，而大于1.0则会提高对比度。
 * @param [options.hue = 0.0] - 色调。 0.0 时未修改的图像颜色。
 * @param [options.saturation = 1.0] - 饱和度。 1.0使用未修改的图像颜色，小于1.0会降低饱和度，而大于1.0则会增加饱和度。
 * @param [options.gamma = 1.0] - 伽马校正值。 1.0使用未修改的图像颜色。
 * @param [options.invertColor] - 是否反向颜色，内部计算规则: color.r = 1.0 - color.r
 * @param [options.filterColor] - 滤镜颜色，内部计算规则: color.r = color.r * filterColor.r
 * @param [options.maximumAnisotropy = maximum supported] - 使用的最大各向异性水平 用于纹理过滤。如果未指定此参数，则支持最大各向异性 将使用WebGL堆栈。较大的值可使影像在水平方向上看起来更好 视图。
 * @param [options.cutoutRectangle] - 制图矩形，用于裁剪此ImageryLayer的一部分。
 * @param [options.colorToAlpha] - 用作Alpha的颜色。
 * @param [options.colorToAlphaThreshold = 0.004] - 颜色到Alpha的阈值。
 * @param [options.hasAlphaChannel = true] - 如果此图像提供者提供的图像为真 包括一个Alpha通道；否则为假。如果此属性为false，则为Alpha通道，如果 目前，将被忽略。如果此属性为true，则任何没有Alpha通道的图像都将 它们的alpha随处可见。当此属性为false时，内存使用情况 和纹理上传时间可能会减少。
 * @param [options.tileWidth = 256] - 图像图块的像素宽度。
 * @param [options.tileHeight = 256] - 图像图块的像素高度。
 * @param [options.customTags] - 允许替换网址模板中的自定义关键字。该对象必须具有字符串作为键，并且必须具有值。
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [options.flyToOptions] - 加载完成数据后是否自动飞行定位到数据所在的区域的对应 {@link BaseLayer#flyTo}方法参数。
 */
declare class XyzLayer extends BaseTileLayer {
    constructor(options?: {
        url: Cesium.Resource | string;
        urlSchemeZeroPadding?: any;
        subdomains?: string | string[];
        tms?: boolean;
        minimumLevel?: number;
        maximumLevel?: number;
        minimumTerrainLevel?: number;
        maximumTerrainLevel?: number;
        rectangle?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
        };
        bbox?: number[];
        zIndex?: number;
        crs?: CRS;
        chinaCRS?: ChinaCRS;
        proxy?: string;
        templateValues?: any;
        queryParameters?: any;
        headers?: any;
        enablePickFeatures?: boolean;
        pickFeaturesUrl?: Cesium.Resource | string;
        getFeatureInfoFormats?: Cesium.GetFeatureInfoFormat[];
        opacity?: number;
        alpha?: number | ((...params: any[]) => any);
        nightAlpha?: number | ((...params: any[]) => any);
        dayAlpha?: number | ((...params: any[]) => any);
        brightness?: number | ((...params: any[]) => any);
        contrast?: number | ((...params: any[]) => any);
        hue?: number | ((...params: any[]) => any);
        saturation?: number | ((...params: any[]) => any);
        gamma?: number | ((...params: any[]) => any);
        invertColor?: boolean;
        filterColor?: string | Cesium.Color;
        maximumAnisotropy?: number;
        cutoutRectangle?: Cesium.Rectangle;
        colorToAlpha?: Cesium.Color;
        colorToAlphaThreshold?: number;
        hasAlphaChannel?: boolean;
        tileWidth?: number;
        tileHeight?: number;
        customTags?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
        flyToOptions?: any;
    });
    /**
     * 创建用于图层的 ImageryProvider对象
     * @param options - Provider参数，同图层构造参数。
     * @returns ImageryProvider类
     */
    static createImageryProvider(options: any): any;
    /**
     * 创建瓦片图层对应的ImageryProvider对象
     * @param [options = {}] - 参数对象，具体每类瓦片图层都不一样。
     * @returns 创建完成的 ImageryProvider 对象
     */
    _createImageryProvider(options?: any): Cesium.UrlTemplateImageryProvider | any;
}

/**
 * 右键菜单 控件
 * @param [options] - 参数对象，包括以下：
 * @param [options.preventDefault = true] - 是否取消右键菜单
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.parentContainer] - 控件加入的父容器，默认为map所在的DOM map.container
 * @param [options.insertIndex] - 可以自定义插入到父容器中的index顺序，默认是插入到最后面。
 * @param [options.insertBefore] - 可以自定义插入到指定兄弟容器的前面，与insertIndex二选一。
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的map对象，false时不冒泡事件
 */
declare class ContextMenu extends BaseControl {
    constructor(options?: {
        preventDefault?: boolean;
        id?: string | number;
        enabled?: boolean;
        parentContainer?: HTMLElement;
        insertIndex?: number;
        insertBefore?: HTMLElement;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 设置DOM容器的显示隐藏
     */
    show: boolean;
}

/**
 * 键盘漫游控制类
 * @param [options] - 参数对象，包括以下：
 * @param [options.moveStep = 10] - 平移步长 (米)
 * @param [options.dirStep = 25] - 相机原地旋转步长，值越大步长越小。
 * @param [options.rotateStep = 1.0] - 相机围绕目标点旋转速率，0.3 - 2.0
 * @param [options.minPitch = 0.1] - 最小仰角  0 - 1
 * @param [options.maxPitch = 0.95] - 最大仰角  0 - 1
 * @param [options.minHeight = 0] - 最低高度（单位：米）
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.parentContainer] - 控件加入的父容器，默认为map所在的DOM map.container
 * @param [options.insertIndex] - 可以自定义插入到父容器中的index顺序，默认是插入到最后面。
 * @param [options.insertBefore] - 可以自定义插入到指定兄弟容器的前面，与insertIndex二选一。
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的map对象，false时不冒泡事件
 */
declare class KeyboardRoam extends BaseControl {
    constructor(options?: {
        moveStep?: number;
        dirStep?: number;
        rotateStep?: number;
        minPitch?: number;
        maxPitch?: number;
        minHeight?: number;
        id?: string | number;
        enabled?: boolean;
        parentContainer?: HTMLElement;
        insertIndex?: number;
        insertBefore?: HTMLElement;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 平移步长 (米)
     */
    moveStep: number;
    /**
     * 相机原地旋转步长，值越大步长越小。
     */
    dirStep: number;
    /**
     * 相机围绕目标点旋转速率，0.3 - 2.0
     */
    rotateStep: number;
    /**
     * 最小仰角  0 - 1
     */
    minPitch: number;
    /**
     * 最大仰角  0 - 1
     */
    maxPitch: number;
    /**
     * 最低高度（单位：米）
     */
    minHeight: number;
    /**
     * 重新赋值参数，同构造方法参数一致。
     * @param options - 参数,与类的构造方法参数相同
     * @returns 当前对象本身，可以链式调用
     */
    setOptions(options: any): KeyboardRoam;
    /**
     * 开始自动向前平移镜头，不改变相机朝向
     * @returns 无
     */
    startMoveForward(): void;
    /**
     * 停止自动向前平移镜头，不改变相机朝向
     * @returns 无
     */
    stopMoveForward(): void;
    /**
     * 开始自动向后平移镜头，不改变相机朝向
     * @returns 无
     */
    startMoveBackward(): void;
    /**
     * 停止自动向后平移镜头，不改变相机朝向
     * @returns 无
     */
    stopMoveBackward(): void;
    /**
     * 开始自动向右平移镜头，不改变相机朝向
     * @returns 无
     */
    startMoveRight(): void;
    /**
     * 停止自动向右平移镜头，不改变相机朝向
     * @returns 无
     */
    stopMoveRight(): void;
    /**
     * 开始自动向左平移镜头，不改变相机朝向
     * @returns 无
     */
    startMoveLeft(): void;
    /**
     * 停止自动向左平移镜头，不改变相机朝向
     * @returns 无
     */
    stopMoveLeft(): void;
    /**
     * 相对于屏幕中心点 转动
     * @param type - 旋转的方向
     * @returns 无
     */
    moveCamera(type: MoveType): void;
    /**
     * 相对于相机本身 转动
     * @param type - 旋转的方向
     * @returns 无
     */
    rotateCamera(type: MoveType): void;
    /**
     * 相机旋转的类型
     */
    static MoveType: MoveType;
}

/**
 * 地图鼠标事件 统一管理类，由Map内部创建
 * @param map - 地图对象
 * @param options - 控制参数
 */
declare class MouseEvent {
    constructor(map: Map, options: Map.mouseOptions);
    /**
     * 鼠标移动事件的延迟毫秒数
     */
    moveDelay: number;
    /**
     * 是否开启鼠标移动事件的拾取矢量数据
     */
    enabledMoveTarget: boolean;
    /**
     * 是否不拾取数据
     */
    noPickEntity: boolean;
    /**
     * 更新图层参数
     * @param options - 与类的构造方法参数相同
     * @returns 当前对象本身，可以链式调用
     */
    setOptions(options: any): MouseEvent;
    /**
     * 清除鼠标移动的clearTimeout延迟
     * @returns 无
     */
    clearMoveTargetDelay(): void;
    /**
     * 获取拾取到的Cesium选中对象
     * @param event - 单击或鼠标移入事件对象
     * @returns 获取拾取到的Cesium选中对象
     */
    getPicked(event: any): any | undefined;
}

declare namespace Map {
    /**
     * 场景参数
     * @property [center] - 默认相机视角
     * @property center.lng - 经度值, 180 - 180
     * @property center.lat - 纬度值, -90 - 90
     * @property center.alt - 高度值
     * @property [center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
     * @property [center.pitch] - 俯仰角度值，绕纬度线旋转角度,-90至90
     * @property [center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
     * @property [extent] - 矩形范围 相机视角,与center二选一
     * @property extent.xmin - 最小经度值, -180 至 180
     * @property extent.xmax - 最大经度值, -180 至 180
     * @property extent.ymin - 最小纬度值, -90 至 90
     * @property extent.ymax - 最大纬度值, -90 至 90
     * @property [removeDblClick = false] - 是否移除Cesium默认的双击事件
     * @property [ionToken] - Cesium Ion服务的 Token令牌
     * @property [resolutionScale = 1.0] - 获取或设置渲染分辨率的缩放比例。小于1.0的值可以改善性能不佳的设备上的性能，而值大于1.0则将以更高的速度呈现分辨率，然后缩小比例，从而提高视觉保真度。例如，如果窗口小部件的尺寸为640x480，则将此值设置为0.5将导致场景以320x240渲染，然后在设置时按比例放大设置为2.0将导致场景以1280x960渲染，然后按比例缩小。
     *
     * 以下是Cesium.Scene对象相关参数
     * @property [showSun] - 是否显示太阳，如修改对象可以用 [map.scene.sun]{@link http://mars3d.cn/api/cesium/Sun.html}
     * @property [showMoon] - 是否显示月亮，如修改对象可以用 [map.scene.moon]{@link http://mars3d.cn/api/cesium/Moon.html}
     * @property [showSkyBox] - 是否显示天空盒，如修改对象可以用 [map.scene.skyBox]{@link http://mars3d.cn/api/cesium/SkyBox.html}
     * @property [showSkyAtmosphere] - 是否显示地球大气层外光圈，如修改对象可以用 [map.scene.skyAtmosphere]{@link http://mars3d.cn/api/cesium/SkyAtmosphere.html}
     * @property [fog] - 是否启用雾化效果，如修改对象可以用 [map.scene.fog]{@link http://mars3d.cn/api/cesium/fog.html}
     * @property [fxaa] - 是否开启快速抗锯齿
     * @property [highDynamicRange] - 是否关闭高动态范围渲染(不关闭时地图会变暗)
     * @property [backgroundColor] - 空间背景色 ，css颜色值
     *
     * 以下是Cesium.Viewer所支持的options【控件相关的写在另外的control属性中】
     * @property [sceneMode = Cesium.SceneMode.SCENE3D] - 初始场景模式。可以设置进入场景后初始是2D、2.5D、3D 模式。
     * @property [scene3DOnly = false] - 为 true 时，每个几何实例将仅以3D渲染以节省GPU内存。
     * @property [mapProjection = new Cesium.GeographicProjection()] - 在二维模式下时，地图的呈现坐标系，默认为EPSG4326坐标系，如果需要EPSG3857墨卡托坐标系展示，传 new Cesium.WebMercatorProjection() 即可
     * @property [mapMode2D = Cesium.MapMode2D.INFINITE_SCROLL] - 在二维模式下时，地图是可旋转的还是可以在水平方向无限滚动。
     * @property [shouldAnimate = true] - 是否开启时钟动画
     * @property [shadows = false] - 是否启用日照阴影
     * @property [useDefaultRenderLoop = true] - 如果此小部件应控制渲染循环，则为true，否则为false。
     * @property [targetFrameRate] - 使用默认渲染循环时的目标帧速率。
     * @property [useBrowserRecommendedResolution = true] - 如果为true，则以浏览器建议的分辨率渲染，并忽略 window.devicePixelRatio 。
     * @property [automaticallyTrackDataSourceClocks = true] - 如果为true，则此小部件将自动跟踪新添加的数据源的时钟设置，并在数据源的时钟发生更改时进行更新。如果要独立配置时钟，请将其设置为false。
     * @property [contextOptions = {}] - WebGL创建属性 传递给 Cesium.Scene 的 options 。{@link Cesium.Scene}
     * @property [contextOptions.allowTextureFilterAnisotropic = true] - 允许纹理过滤各向异性
     * @property [contextOptions.requestWebgl2 = false] - 是否启用webgl2
     * @property [contextOptions.webgl] - WebGL画布,用于 canvas.getContext("webgl", webglOptions)
     * @property [contextOptions.webgl.alpha = false] - 是否包含alpha缓冲区，如果需要DIV透明时，需要改为true
     * @property [contextOptions.webgl.antialias] - 是否执行抗锯齿
     * @property [contextOptions.webgl.failIfMajorPerformanceCaveat] - 如果系统性能较低，是否创建上下文
     * @property [contextOptions.webgl.depth] - 绘图缓冲区的深度缓冲区至少为16位
     * @property [contextOptions.webgl.stencil = true] - 绘图缓冲区具有至少8位的模板缓冲区
     * @property [contextOptions.webgl.powerPreference = "high-performance"] - 对用户代理的提示，指示GPU的哪种配置适合WebGL上下文
     * @property [orderIndependentTranslucency = true] - 如果为true，并且配置支持它，则使用顺序无关的半透明性。
     * @property [terrainShadows = Cesium.ShadowMode.RECEIVE_ONLY] - 确定地形是否投射或接收来自光源的阴影。
     * @property [requestRenderMode = false] - 是否显式渲染，如果为真，渲染帧只会在需要时发生，这是由场景中的变化决定的。启用可以减少你的应用程序的CPU/GPU使用量，并且在移动设备上使用更少的电池，但是需要使用 {@link Scene#requestRender} 在这种模式下显式地渲染一个新帧。在许多情况下，在API的其他部分更改场景后，这是必要的。参见 {@link https://cesium.com/blog/2018/01/24/cesium-scene-rendering-performance/|Improving Performance with Explicit Rendering}.
     * @property [maximumRenderTimeChange = 0.0] - 如果requestRenderMode为true，这个值定义了在请求渲染之前允许的模拟时间的最大变化。参见 {@link https://cesium.com/blog/2018/01/24/cesium-scene-rendering-performance/|Improving Performance with Explicit Rendering}.
     *
     * 以下是Cesium.Globe对象相关参数
     * @property [globe] - globe地球相关参数
     * @property [globe.show = true] - 是否显示地球
     * @property [globe.baseColor = '#546a53'] - 地球背景色 ，css颜色值
     * @property [globe.depthTestAgainstTerrain = false] - 是否启用深度监测,可以开启来测试矢量对象是否在地形下面或被遮挡。
     * @property [globe.showGroundAtmosphere = true] - 是否在地球上绘制的地面大气
     * @property [globe.enableLighting = false] - 是否显示晨昏线，可以看到地球的昼夜区域
     * @property [globe.tileCacheSize = 100] - 地形图块缓存的大小，表示为图块数。任何其他只要不需要渲染，就会释放超出此数目的图块这个框架。较大的数字将消耗更多的内存，但显示细节更快例如，当缩小然后再放大时。
     * @property [globe.terrainExaggeration = 1.0] - 地形夸张倍率，用于放大地形的标量。请注意，地形夸张不会修改其他相对于椭球的图元。
     * @property [globe.realAlt = false] - 地形夸张倍率，在测量高度和下侧提示的高度信息中是否转换为实际真实高度值。
     * @property [globe.terrainExaggerationRelativeHeight = 0.0] - 地形被夸大的高度。默认为0.0（相对于椭球表面缩放）。高于此高度的地形将向上缩放，低于此高度的地形将向下缩放。请注意，地形夸大不会修改任何其他图元，因为它们是相对于椭球体定位的。
     *
     * 以下是Cesium.ScreenSpaceCameraController对象相关参数
     * @property [cameraController] - 相机操作相关参数
     * @property [cameraController.minimumZoomDistance = 1.0] - 相机最近视距，变焦时相机位置的最小量级（以米为单位），默认为1。该值是相机与地表(含地形)的相对距离。
     * @property [cameraController.maximumZoomDistance = 50000000.0] - 相机最远视距，变焦时相机位置的最大值（以米为单位）。该值是相机与地表(含地形)的相对距离。
     * @property [cameraController.zoomFactor = 3.0] - 滚轮放大倍数，控制鼠标滚轮操作的步长
     * @property [cameraController.minimumCollisionTerrainHeight = 80000] - 最小碰撞高度，低于此高度时绕鼠标键绕圈，大于时绕视图中心点绕圈。
     * @property [cameraController.constrainedAxis = true] - 南北极绕轴心旋转，为false时 解除在南北极区域鼠标操作限制
     * @property [cameraController.enableRotate = true] - 2D和3D视图下，是否允许用户旋转相机
     * @property [cameraController.enableTranslate = true] - 2D和哥伦布视图下，是否允许用户平移地图
     * @property [cameraController.enableTilt = true] - 3D和哥伦布视图下，是否允许用户倾斜相机
     * @property [cameraController.enableZoom = true] - 是否允许 用户放大和缩小视图
     * @property [cameraController.enableCollisionDetection = true] - 是否允许 地形相机的碰撞检测
     *
     * 以下是Cesium.Clock时钟相关参数
     * @property [clock] - 时钟相关参数
     * @property [clock.currentTime] - 当前的时间
     * @property [clock.multiplier = 1.0] - 当前的速度
     */
    type sceneOptions = {
        center?: {
            lng: number;
            lat: number;
            alt: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        extent?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
        };
        removeDblClick?: boolean;
        ionToken?: string;
        resolutionScale?: number;
        showSun?: boolean;
        showMoon?: boolean;
        showSkyBox?: boolean;
        showSkyAtmosphere?: boolean;
        fog?: boolean;
        fxaa?: boolean;
        highDynamicRange?: boolean;
        backgroundColor?: string;
        sceneMode?: Cesium.SceneMode;
        scene3DOnly?: boolean;
        mapProjection?: Cesium.MapProjection;
        mapMode2D?: Cesium.MapMode2D;
        shouldAnimate?: boolean;
        shadows?: boolean;
        useDefaultRenderLoop?: boolean;
        targetFrameRate?: number;
        useBrowserRecommendedResolution?: boolean;
        automaticallyTrackDataSourceClocks?: boolean;
        contextOptions?: {
            allowTextureFilterAnisotropic?: boolean;
            requestWebgl2?: boolean;
            webgl?: {
                alpha?: boolean;
                antialias?: boolean;
                failIfMajorPerformanceCaveat?: boolean;
                depth?: boolean;
                stencil?: boolean;
                powerPreference?: string;
            };
        };
        orderIndependentTranslucency?: boolean;
        terrainShadows?: Cesium.ShadowMode;
        requestRenderMode?: boolean;
        maximumRenderTimeChange?: number;
        globe?: {
            show?: boolean;
            baseColor?: string;
            depthTestAgainstTerrain?: boolean;
            showGroundAtmosphere?: boolean;
            enableLighting?: boolean;
            tileCacheSize?: number;
            terrainExaggeration?: number;
            realAlt?: number;
            terrainExaggerationRelativeHeight?: number;
        };
        cameraController?: {
            minimumZoomDistance?: number;
            maximumZoomDistance?: number;
            zoomFactor?: number;
            minimumCollisionTerrainHeight?: number;
            constrainedAxis?: boolean;
            enableRotate?: boolean;
            enableTranslate?: boolean;
            enableTilt?: boolean;
            enableZoom?: boolean;
            enableCollisionDetection?: boolean;
        };
        clock?: {
            currentTime?: string | Cesium.JulianDate;
            multiplier?: number;
        };
    };
    /**
     * 添加到地图的控件 参数
     * @property [homeButton = false] - 视角复位按钮，是否显示
     * @property [zoom] - 放大缩小按钮 , 对应 {@link Zoom}构造参数
     * @property [sceneModePicker = false] - 二三维切换按钮，是否显示二维、三维、2.5D视图切换按钮
     * @property [projectionPicker = false] - 投影切换按钮, 是否显示用于在透视和正投影之间进行切换按钮
     * @property [fullscreenButton = false] - 全屏按钮，是否显示
     * @property [fullscreenElement = document.body] - 当按下全屏按钮时，要置于全屏模式的元素或id
     * @property [vrButton = false] - VR效果按钮，是否显示
     * @property [geocoder = false] - 是否显示 地名查找按钮 控件，是Cesium原生控件
     * @property [navigationHelpButton = false] - 帮助按钮，是否显示
     * @property [navigationInstructionsInitiallyVisible = true] - 帮助按钮 在用户明确单击按钮之前是否自动显示
     * @property [baseLayerPicker = false] - 是否显示 底图切换 按钮，是Cesium原生控件, 如果true底图是Cesium机制控制，Map内的basemaps相关获取和控制将会无效。
     * @property [imageryProviderViewModels = []] - baseLayerPicker底图切换面板中，用于图像的ProviderViewModel实例数组，默认自动根据basemaps数组生成。
     * @property [selectedImageryProviderViewModel] - baseLayerPicker底图切换面板中，如果没有提供当前基本图像层的视图模型，则使用第一个可用的图像层。默认为show:true的basemaps图层
     * @property [terrainProviderViewModels = []] - baseLayerPicker底图切换面板中，用于地形的ProviderViewModel实例数组。默认自动使用terrain配置+无地形。
     * @property [selectedTerrainProviderViewModel] - baseLayerPicker底图切换面板中，如果没有提供当前基础地形层的视图模型，则使用第一个可用的地形层。
     * @property [compass] - 导航球, 对应 {@link Compass}构造参数
     * @property [locationBar] - 状态栏, 对应 {@link LocationBar}构造参数
     * @property [locationBar.fps] - 是否显示实时FPS帧率
     * @property [locationBar.format] - 显示内容的格式化html展示的内容格式化字符串。  支持以下模版配置：【鼠标所在位置】 经度:{lng}， 纬度:{lat}， 海拔：{alt}米， 【相机的】 方向角度：{heading}， 俯仰角度：{pitch}， 视高：{cameraHeight}米， 【地图的】 层级：{level}，
     * @property [distanceLegend] - 比例尺, 对应 {@link DistanceLegend}构造参数
     * @property [clockAnimate] - 时钟控制, 对应{@link ClockAnimate}构造参数
     * @property [animation = true] - 时钟仪表控制(Cesium原生)
     * @property [animationTicks] - 时钟仪表控制(Cesium原生)的可选步长
     * @property [timeline = true] - 时间线, 是否创建下侧时间线控件面板
     * @property [overviewMap] - 鹰眼地图, 对应{@link OverviewMap }构造参数
     * @property [mapSplit] - 卷帘对比, 对应{@link MapSplit }构造参数
     * @property [keyboardRoam] - 键盘漫游, 对应{@link KeyboardRoam }构造参数
     * @property [mouseDownView] - 鼠标滚轮缩放美化样式(指示图标), 对应 {@link MouseDownView}构造参数
     * @property [infoBox = true] - 信息面板，是否显示点击要素之后显示的信息，是Cesium原生控件
     * @property [selectionIndicator = true] - 选中框，是否显示选择模型时的绿色框，是Cesium原生控件
     * @property [showRenderLoopErrors = true] - 如果为true，则在发生渲染循环错误时，此小部件将自动向包含错误的用户显示HTML面板，是Cesium原生控件
     * @property [contextmenu] - 内置 右键菜单 控制参数, 对应{@link ContextMenu }构造参数
     * @property [contextmenu.preventDefault = true] - 是否取消右键菜单
     * @property [contextmenu.hasDefault = true] - 是否绑定默认的地图右键菜单
     * @property [popup] - 内置 Popup 控制参数
     * @property [popup.depthTest = true] - 是否打开深度判断（true时判断是否在球背面）
     * @property [tooltip] - 内置 Tooltip 控制参数
     * @property [tooltip.cacheTime = 20] - 延迟缓存的时间，单位：毫秒
     */
    type controlOptions = {
        homeButton?: boolean;
        zoom?: any;
        sceneModePicker?: boolean;
        projectionPicker?: boolean;
        fullscreenButton?: boolean;
        fullscreenElement?: Element | string;
        vrButton?: boolean;
        geocoder?: boolean | Cesium.GeocoderService[];
        navigationHelpButton?: boolean;
        navigationInstructionsInitiallyVisible?: boolean;
        baseLayerPicker?: boolean;
        imageryProviderViewModels?: Cesium.ProviderViewModel[];
        selectedImageryProviderViewModel?: Cesium.ProviderViewModel;
        terrainProviderViewModels?: Cesium.ProviderViewModel[];
        selectedTerrainProviderViewModel?: Cesium.ProviderViewModel;
        compass?: any;
        locationBar?: {
            fps?: boolean;
            format?: string | ((...params: any[]) => any);
        };
        distanceLegend?: any;
        clockAnimate?: any;
        animation?: boolean;
        animationTicks?: number[];
        timeline?: boolean;
        overviewMap?: any;
        mapSplit?: any;
        keyboardRoam?: any;
        mouseDownView?: boolean;
        infoBox?: boolean;
        selectionIndicator?: boolean;
        showRenderLoopErrors?: boolean;
        contextmenu?: {
            preventDefault?: boolean;
            hasDefault?: boolean;
        };
        popup?: {
            depthTest?: boolean;
        };
        tooltip?: {
            cacheTime?: number;
        };
    };
    /**
     * 鼠标操作相关配置 参数
     * @property [enabledMoveTarget = true] - 是否开启鼠标移动事件的拾取矢量数据
     * @property [moveDelay = 30] - 鼠标移动事件的延迟毫秒数
     * @property [pickWidth = 4] - 拾取时所选矩形的宽度，单位：像素
     * @property [pickHeight = 4] - 拾取时所选矩形的高度，单位：像素
     * @property [pickLimit = 9] - 在允许allowDrillPick穿透拾取时，限制拾取的对象个数。
     * @property [transform] - 在body或地图DIV上设置了scale等css缩放时，需要该方法转换像素坐标值。如： transform: function (position) {  return new Cesium.Cartesian2(position.x / 0.5, position.y / 0.5); }
     */
    type mouseOptions = {
        enabledMoveTarget?: boolean;
        moveDelay?: number;
        pickWidth?: number;
        pickHeight?: number;
        pickLimit?: number;
        transform?: (...params: any[]) => any;
    };
    /**
     * 添加到地图的特效 参数
     * @property [bloom] - 泛光,对应{@link BloomEffect }构造参数
     * @property [brightness] - 亮度,对应{@link BrightnessEffect }构造参数
     * @property [rain] - 雨天气,对应{@link RainEffect }构造参数
     * @property [snow] - 雪天气 ,对应{@link SnowEffect }构造参数
     * @property [snowCover] - 地面积雪,对应{@link SnowCoverEffect }构造参数
     * @property [fog] - 雾天气,对应{@link FogEffect }构造参数
     * @property [depthOfField] - 景深,对应{@link DepthOfFieldEffect }构造参数
     * @property [mosaic] - 马赛克,对应{@link MosaicEffect }构造参数
     * @property [nightVision] - 夜视,对应{@link NightVisionEffect }构造参数
     * @property [blackAndWhite] - 黑白,对应{@link BlackAndWhiteEffect }构造参数
     * @property [outline] - 对象轮廓描边,对应{@link OutlineEffect }构造参数
     * @property [bloomTarget] - 对象泛光,对应{@link BloomTargetEffect }构造参数
     */
    type effectOptions = {
        bloom?: any;
        brightness?: any;
        rain?: any;
        snow?: any;
        snowCover?: any;
        fog?: any;
        depthOfField?: any;
        mosaic?: any;
        nightVision?: any;
        blackAndWhite?: any;
        outline?: any;
        bloomTarget?: any;
    };
    /**
     * 地形服务配置
     * @property [type = "xyz"] - 地形类型
     * @property url - 地形服务地址
     * @property [show = false] - 是否启用显示地形
     * @property [requestVertexNormals = false] - 是否应该从服务器请求额外的光照信息，如果可用，以每个顶点法线的形式。
     * @property [requestWaterMask = false] - 是否应该向服务器请求每个瓦的水掩膜(如果有的话)。
     * @property [requestMetadata = true] - 是否应该从服务器请求每个块元数据(如果可用)。
     */
    type terrainOptions = {
        type?: TerrainType;
        url: string | Cesium.Resource;
        show?: boolean;
        requestVertexNormals?: boolean;
        requestWaterMask?: boolean;
        requestMetadata?: boolean;
    };
    /**
     * 底图图层配置
     * @property type - 图层类型
     * @property [多个参数] - 每种不同type都有自己的不同属性，具体参考{@link LayerType}找到type对应的BaseTileLayer子类图层类,查看其构造参数
     */
    type basemapOptions = {
        type: string | LayerType;
        多个参数?: any;
    };
    /**
     * 可以叠加显示的图层配置，
     * @property type - 图层类型
     * @property [id] - 图层id标识
     * @property [pid = -1] - 图层父级的id，一般图层管理中使用
     * @property [name = ''] - 图层名称
     * @property [show = true] - 图层是否显示
     * @property [center] - 图层自定义定位视角，默认根据数据情况自动定位。
     * @property [popup] - 当图层支持popup弹窗时，绑定的值
     * @property [popupOptions] - popup弹窗时的配置参数
     * @property [tooltip] - 当图层支持tooltip弹窗时，绑定的值
     * @property [tooltipOptions] - tooltip弹窗时的配置参数
     * @property [多个参数] - 每种type都有自己的不同属性，具体参考{@link LayerType}找到type对应的图层类,查看其构造参数
     */
    type layerOptions = {
        type: string | LayerType;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        center?: any;
        popup?: any;
        popupOptions?: Popup.StyleOptions | any;
        tooltip?: any;
        tooltipOptions?: Tooltip.StyleOptions | any;
        多个参数?: any;
    };
    /**
     * 覆盖SDK内的{@link Token}所有第3方Token默认值
     * @property [tianditu] - 天地图
     * @property [gaode] - 高德
     * @property [baidu] - 百度
     * @property [ion] - Ion服务
     * @property [mapbox] - mapbox地图
     * @property [bing] - 微软Bing地图
     */
    type tokenOptions = {
        tianditu?: string | string[];
        gaode?: string | string[];
        baidu?: string | string[];
        ion?: string;
        mapbox?: string;
        bing?: string;
    };
    /**
     * Map支持的{@link EventType}事件类型
     * @example
     * //绑定监听事件
     * map.on(mars3d.EventType.click, function (event) {
     *   console.log('单击了地图对象', event)
     * })
     * @property load - 地图初始化完成事件(地形、所有图层完成初始化)
     * @property addLayer - 添加图层
     * @property removeLayer - 移除图层
     * @property terrainChange - 地形变化
     * @property tileLoadProgress - 地图中瓦片加载进度变化
     * @property cameraMoveStart - 相机开启移动前 场景事件
     * @property cameraMoveEnd - 相机移动完成后 场景事件
     * @property cameraChanged - 相机位置完成 场景事件
     * @property preUpdate - 场景更新前 场景事件
     * @property postUpdate - 场景更新后 场景事件
     * @property preRender - 场景渲染前 场景事件
     * @property postRender - 场景渲染后 场景事件
     * @property morphStart - 场景模式(2D/3D/哥伦布)变换前 场景事件
     * @property morphComplete - 完成场景模式(2D/3D/哥伦布)变换 场景事件
     * @property clockTick - 时钟跳动 场景事件
     * @property renderError - 场景渲染失败（需要刷新页面）
     * @property click - 左键单击 鼠标事件
     * @property clickGraphic - 左键单击到矢量或模型数据时 鼠标事件
     * @property clickTileGraphic - 左键单击到wms或arcgis瓦片服务的对应矢量数据时
     * @property clickMap - 左键单击地图空白（未单击到矢量或模型数据）时 鼠标事件
     * @property dblClick - 左键双击 鼠标事件
     * @property leftDown - 左键鼠标按下 鼠标事件
     * @property leftUp - 左键鼠标按下后释放 鼠标事件
     * @property mouseMove - 鼠标移动 鼠标事件
     * @property mouseMoveTarget - 鼠标移动（拾取目标，并延迟处理） 鼠标事件
     * @property wheel - 鼠标滚轮滚动 鼠标事件
     * @property rightClick - 右键单击 鼠标事件
     * @property rightDown - 右键鼠标按下 鼠标事件
     * @property rightUp - 右键鼠标按下后释放 鼠标事件
     * @property middleClick - 中键单击 鼠标事件
     * @property middleDown - 中键鼠标按下 鼠标事件
     * @property middleUp - 中键鼠标按下后释放 鼠标事件
     * @property pinchStart - 在触摸屏上两指缩放开始 鼠标事件
     * @property pinchEnd - 在触摸屏上两指缩放结束 鼠标事件
     * @property pinchMove - 在触摸屏上两指移动 鼠标事件
     * @property mouseDown - 鼠标按下 [左中右3键都触发] 鼠标事件
     * @property mouseUp - 鼠标按下后释放 [左中右3键都触发] 鼠标事件
     * @property mouseOver - 鼠标移入 鼠标事件
     * @property mouseOut - 鼠标移出 鼠标事件
     * @property keydown - 按键按下 键盘事件
     * @property keyup - 按键按下后释放 键盘事件
     * @property popupOpen - popup弹窗打开后
     * @property popupClose - popup弹窗关闭
     * @property tooltipOpen - tooltip弹窗打开后
     * @property tooltipClose - tooltip弹窗关闭
     * @property contextMenuOpen - 右键菜单 打开后
     * @property contextMenuClose - 右键菜单 关闭
     * @property contextMenuClick - 右键菜单 单击某一项后
     */
    type EventType = {
        load: string;
        addLayer: string;
        removeLayer: string;
        terrainChange: string;
        tileLoadProgress: string;
        cameraMoveStart: string;
        cameraMoveEnd: string;
        cameraChanged: string;
        preUpdate: string;
        postUpdate: string;
        preRender: string;
        postRender: string;
        morphStart: string;
        morphComplete: string;
        clockTick: string;
        renderError: string;
        click: string;
        clickGraphic: string;
        clickTileGraphic: string;
        clickMap: string;
        dblClick: string;
        leftDown: string;
        leftUp: string;
        mouseMove: string;
        mouseMoveTarget: string;
        wheel: string;
        rightClick: string;
        rightDown: string;
        rightUp: string;
        middleClick: string;
        middleDown: string;
        middleUp: string;
        pinchStart: string;
        pinchEnd: string;
        pinchMove: string;
        mouseDown: string;
        mouseUp: string;
        mouseOver: string;
        mouseOut: string;
        keydown: string;
        keyup: string;
        popupOpen: string;
        popupClose: string;
        tooltipOpen: string;
        tooltipClose: string;
        contextMenuOpen: string;
        contextMenuClose: string;
        contextMenuClick: string;
    };
}

/**
 * 地图类 ，这是构造三维地球的一切的开始起点。
 * @param id - 地图div容器的id 或 已构造好的Viewer对象
 * @param [options = {}] - 参数对象:
 * @param [options.scene] - 场景参数
 * @param [options.control] - 添加的控件
 * @param [options.effect] - 添加的特效
 * @param [options.mouse] - 鼠标操作相关配置参数
 * @param [options.terrain] - 地形服务配置
 * @param [options.basemaps] - 底图图层配置
 * @param [options.layers] - 可以叠加显示的图层配置
 * @param [options.chinaCRS = ChinaCRS.WGS84] - 标识当前三维场景的国内坐标系（用于部分图层内对比判断来自动纠偏或加偏）
 * @param [options.lang] - 使用的语言（如中文、英文等）。
 * @param [options.templateValues] - 图层中统一的url模版，比如可以将服务url前缀统一使用模板，方便修改或动态配置。
 * @param [options.token] - 覆盖SDK内的{@link Token}所有第3方Token默认值
 */
declare class Map extends BaseClass {
    constructor(id: string | Cesium.Viewer, options?: {
        scene?: Map.sceneOptions;
        control?: Map.controlOptions;
        effect?: Map.effectOptions;
        mouse?: Map.mouseOptions;
        terrain?: Map.terrainOptions;
        basemaps?: Map.basemapOptions[];
        layers?: Map.layerOptions[];
        chinaCRS?: ChinaCRS;
        lang?: LangType;
        templateValues?: any;
        token?: Map.tokenOptions;
    });
    /**
     * 当前类的构造参数
     */
    readonly options: any;
    /**
     * 地图对应的Cesium原生的  [Cesium.Viewer对象]{@link http://mars3d.cn/api/cesium/Viewer.html}
     */
    readonly viewer: Cesium.Viewer;
    /**
     * 获取地图DOM容器。
     */
    readonly container: HTMLDivElement;
    /**
     * 获取ToolBar控件DOM容器，
     * 其样式为cesium-viewer-toolbar
     */
    readonly toolbar: HTMLDivElement;
    /**
     * 获取Canvas画布
     */
    readonly canvas: HTMLCanvasElement;
    /**
     * 获取场景。 [Cesium.Scene]{@link http://mars3d.cn/api/cesium/Scene.html}
     */
    readonly scene: Cesium.Scene;
    /**
     * 获取相机 [Cesium.Camera]{@link http://mars3d.cn/api/cesium/Camera.html}
     */
    readonly camera: Cesium.Camera;
    /**
     * 获取将在地球上渲染的ImageryLayer图像图层的集合
     */
    readonly imageryLayers: Cesium.ImageryLayerCollection;
    /**
     * 获取要可视化的 DataSource 实例集。
     */
    readonly dataSources: Cesium.DataSourceCollection;
    /**
     * 获取未绑定到特定数据源的实体的集合。这是 dataSourceDisplay.defaultDataSource.entities 的快捷方式。
     */
    readonly entities: Cesium.EntityCollection;
    /**
     * 获取时钟 [Cesium.Clock]{@link http://mars3d.cn/api/cesium/Clock.html}
     */
    readonly clock: Cesium.Clock;
    /**
     * 当前时间
     */
    currentTime: Cesium.JulianDate;
    /**
     * 获取 CesiumWidget
     */
    readonly cesiumWidget: Cesium.CesiumWidget;
    /**
     * 获取或设置相机当前正在跟踪的Entity实例。
     */
    trackedEntity: Cesium.Entity | BaseEntity | undefined | any;
    /**
     * 获取或设置当前的地形服务
     */
    terrainProvider: Cesium.TerrainProvider;
    /**
     * 是否开启地形
     */
    hasTerrain: boolean;
    /**
     * 获取或设置当前显示的底图，设置时可以传入图层id或name
     */
    basemap: string | number | BaseTileLayer;
    /**
     * 是否只拾取模型上的点
     */
    onlyPickModelPosition: boolean;
    /**
     * 是否只拾取地形上的点，忽略模型和矢量数据
     */
    onlyPickTerrainPosition: boolean;
    /**
     * 获取鼠标事件控制器
     */
    readonly mouseEvent: MouseEvent;
    /**
     * 右键菜单控件对象
     */
    readonly contextmenu: ContextMenu;
    /**
     * 获取键盘漫游控制器
     */
    readonly keyboardRoam: KeyboardRoam;
    /**
     * 获取地图上已构造的控件对象
     */
    readonly controls: any;
    /**
     * 获取地图上已构造的effect特效对象
     */
    readonly effects: any;
    /**
     * 默认绑定的图层，简单场景时快捷方便使用
     */
    readonly graphicLayer: GraphicLayer;
    /**
     * 获取当前地图层级（概略），一般为0-21层
     */
    readonly level: number;
    /**
     * 是否固定光照，
     *  true：可避免gltf、3dtiles模型随时间存在亮度不一致。
     */
    fixedLight: boolean;
    /**
     * 使用的语言（如中文、英文等）。
     */
    lang: LangType;
    /**
     * 鼠标滚轮放大的步长比例
     */
    zoomFactor: number;
    /**
     * 是否全局启用highlight ，如果在某些场景，如标绘时，可以手动关闭下
     */
    highlightEnabled: boolean;
    /**
     * 设置Map所有参数构造参数 【测试中功能，可能部分参数无法更新,欢迎反馈问题 】
     * @param newOptions - Map所有参数构造参数
     * @returns 当前对象本身，可以链式调用
     */
    setOptions(newOptions: any): Map;
    /**
     * 设置Scene场景参数
     * @param options - 参数
     * @returns 当前对象本身，可以链式调用
     */
    setSceneOptions(options: Map.sceneOptions): Map;
    /**
     * 获取地图的配置参数，即new Map传入的参数。
     * @returns 地图的配置参数
     */
    getOptions(): any;
    /**
     * 获取地图的当前实时状态对应的配置参数。
     * @returns 地图的配置参数
     */
    getCurrentOptions(): any;
    /**
     * 获取平台内置的右键菜单，图标可以覆盖 mars3d.Icon.* 值
     * @returns 右键菜单
     */
    getDefaultContextMenu(): any;
    /**
     * 取地图屏幕中心点坐标
     * @returns 屏幕中心点坐标
     */
    getCenter(): LngLatPoint;
    /**
     * 取相机到屏幕中心点的距离
     * @returns 相机到屏幕中心点的距离，单位：米
     */
    getCameraDistance(): number;
    /**
     * 提取地球当前视域边界,示例：{ xmin: 70,  xmax: 140,  ymin: 0,  ymax: 55, height: 0, }
     * @param [options = {}] - 参数对象:
     * @param [options.formatNum = false] - 是否格式化小数位，只保留6位小数
     * @param [options.scale = 1] - 在每个方向上按给定比例扩展（大于0）或缩小（-1到0时）当前边界所创建的边界。比率为0.5时，边界在每个方向上扩展了50%。
     * @returns 当前视域边界
     */
    getExtent(options?: {
        formatNum?: boolean;
        scale?: number;
    }): any;
    /**
     * 当存在地形夸张时，获取其实际的高度值
     * @param alt - 鼠标拾取的高度值
     * @returns 其实际的高度值
     */
    getRealAlt(alt: number): number;
    /**
     * 截图，导出地图场景图片
     * @param [options = {}] - 参数对象:
     * @param [options.download = true] - 是否自动下载图片
     * @param [options.filename = '场景出图_' + width + 'x' + height] - 图片名称
     * @param [options.width = canvas.width] - 图片的高度像素值
     * @param [options.height = canvas.height] - 图片的高度像素值
     * @param [options.type = 'image/jpeg'] - 图片格式
     * @param [options.encoderOptions = 0.92] - 在指定图片格式为 image/jpeg 或 image/webp的情况下，可以从 0 到 1 的区间内选择图片的质量。如果超出取值范围，将会使用默认值 0.92。其他参数会被忽略。
     * @returns 截图完成后的回调方法的Promise
     */
    expImage(options?: {
        download?: boolean;
        filename?: string;
        width?: number;
        height?: number;
        type?: string;
        encoderOptions?: number;
    }): Promise<any>;
    /**
     * 设置鼠标的默认状态样式
     * @param [val] - cursor样式
     * @returns 无
     */
    setCursor(val?: string): void;
    /**
     * 获取坐标位置的3dtiles模型对象
     * @param positions - 坐标  或 坐标数组
     * @returns 3dtiles模型对象
     */
    pick3DTileset(positions: Cesium.Cartesian3 | Cesium.Cartesian3[]): Cesium.Cesium3DTileset | undefined;
    /**
     * 获取坐标位置的3dtiles模型图层
     * @param positions - 坐标  或 坐标数组
     * @returns 3dtiles模型图层
     */
    pickTilesetLayer(positions: Cesium.Cartesian3 | Cesium.Cartesian3[]): TilesetLayer | undefined;
    /**
     * 重新设置basemps底图图层，对options.basemaps重新赋值
     * @param arr - 底图图层配置
     * @returns 图层数组
     */
    setBasemapsOptions(arr: Map.basemapOptions[]): BaseLayer[];
    /**
     * 重新设置layers图层，对options.layers重新赋值
     * @param arr - 可以叠加显示的图层配置
     * @returns 图层数组
     */
    setLayersOptions(arr: Map.layerOptions[]): BaseLayer[];
    /**
     * 获取图层ID值，按顺序取值。
     * 没有id的图层，会自动使用本方法进行id赋值处理
     * @returns 图层ID
     */
    getNextLayerId(): number;
    /**
     * 添加图层到地图上
     * @param layer - 图层对象
     * @param [showVal] - 如果传值，覆盖图层的show属性
     * @returns 图层加载完成承诺
     */
    addLayer(layer: BaseLayer, showVal?: boolean): Promise<Boolean | any>;
    /**
     * 移除图层
     * @param layer - 需要移除的图层
     * @param [hasDestroy] - 是否释放 destroy
     * @returns 当前对象本身，可以链式调用
     */
    removeLayer(layer: BaseLayer, hasDestroy?: boolean): Map;
    /**
     * 是否有指定的图层存在（就是已经addLayer的图层）
     * @param layer - 指定的图层或图层ID
     * @returns 是否存在
     */
    hasLayer(layer: string | number | BaseLayer): boolean;
    /**
     * 遍历每一个图层并将其作为参数传递给回调函数
     * @param method - 回调方法
     * @param [context] - 侦听器的上下文(this关键字将指向的对象)。
     * @returns 当前对象本身,可以链式调用
     */
    eachLayer(method: (...params: any[]) => any, context?: any): Map;
    /**
     * 根据指定属性获取图层，包括config.json配置的图层
     * @param attrValue - 属性值
     * @param [attrName = 'id'] - 属性键
     * @returns 图层对象
     */
    getLayer(attrValue: string | number, attrName?: string): BaseLayer | any;
    /**
     * 根据ID或取图层 ，包括config.json配置的图层
     * @param id - 图层id或uuid
     * @returns 图层对象
     */
    getLayerById(id: string | number): BaseLayer | any;
    /**
     * 根据指定属性获取图层
     * @param attrValue - 属性值
     * @param [attrName = 'id'] - 属性键
     * @returns 图层对象
     */
    getLayerByAttr(attrValue: string | number, attrName?: string): BaseLayer | any;
    /**
     * 根据指定属性获取图层列表
     * @param attrValue - 属性值
     * @param [attrName = 'id'] - 属性键
     * @returns 图层对象列表
     */
    getLayersByAttr(attrValue: string | number, attrName?: string): BaseLayer[] | any;
    /**
     * 获取所有图层
     * @param [options] - 参数对象，包括以下：
     * @param [options.basemaps] - 默认不比较及处理，true:返回所有basemps中配置图层，false：排除所有所有basemps中配置图层
     * @param [options.layers] - 默认不比较及处理，true:返回所有operationallayers中配置图层，false：排除所有operationallayers中配置图层
     * @param [options.childs = true] - 是否获取GroupLayer内的子图层
     * @returns 图层数组
     */
    getLayers(options?: {
        basemaps?: boolean;
        layers?: boolean;
        childs?: boolean;
    }): BaseLayer[] | any[];
    /**
     * 获取所有basemps底图图层
     * @param [removeEmptyGroup = false] - 是否移除 空图层组
     * @returns 图层数组
     */
    getBasemaps(removeEmptyGroup?: boolean): BaseLayer[] | any[];
    /**
     * 获取所有瓦片图层，可以用于卷帘对比
     * @returns 图层数组
     */
    getTileLayers(): BaseTileLayer[] | any[];
    /**
     * 添加控件到地图上
     * @param control - 控件对象
     * @param [enabledVal] - 如果传值，覆盖控件的enabled属性
     * @returns 当前对象本身，可以链式调用
     */
    addControl(control: BaseControl, enabledVal?: boolean): Map;
    /**
     * 移除控件
     * @param control - 需要移除的控件
     * @param [hasDestroy] - 是否释放
     * @returns 当前对象本身，可以链式调用
     */
    removeControl(control: BaseControl, hasDestroy?: boolean): Map;
    /**
     * 是否有指定的控件存在（就是已经addControl的控件）
     * @param control - 指定的控件或控件ID
     * @returns 是否存在
     */
    hasControl(control: BaseControl | string): boolean;
    /**
     * 遍历每一个控件并将其作为参数传递给回调函数
     * @param method - 回调方法
     * @param [context] - 侦听器的上下文(this关键字将指向的对象)。
     * @returns 当前对象本身,可以链式调用
     */
    eachControl(method: (...params: any[]) => any, context?: any): Map;
    /**
     * 根据指定属性获取控件
     * @param attrValue - 属性值
     * @param [attrName = 'type'] - 属性键
     * @returns 控件对象
     */
    getControl(attrValue: string | number | boolean, attrName?: string): BaseControl;
    /**
     * 添加特效对象到地图上
     * @param effect - 特效对象
     * @returns 当前对象本身，可以链式调用
     */
    addEffect(effect: BaseEffect): Map;
    /**
     * 移除特效对象
     * @param effect - 需要移除的特效对象
     * @param [hasDestroy] - 是否释放
     * @returns 当前对象本身，可以链式调用
     */
    removeEffect(effect: BaseEffect, hasDestroy?: boolean): Map;
    /**
     * 根据指定属性获取Thing对象
     * @param key - 属性值（如id、name值）
     * @param [attrName = 'type'] - 属性名称
     * @returns Thing对象
     */
    getEffect(key: string | any, attrName?: string): BaseEffect;
    /**
     * 添加Thing对象到地图上
     * @param item - Thing对象
     * @returns 当前对象本身，可以链式调用
     */
    addThing(item: BaseThing): Map;
    /**
     * 移除Thing对象
     * @param item - 需要移除的Thing对象
     * @param [hasDestroy] - 是否释放
     * @returns 当前对象本身，可以链式调用
     */
    removeThing(item: BaseThing, hasDestroy?: boolean): Map;
    /**
     * 是否有指定的Thing对象存在（就是已经addThing的图层）
     * @param thing - 指定的Thing对象或Thing对象ID
     * @returns 是否存在
     */
    hasThing(thing: BaseThing | string): boolean;
    /**
     * 遍历每一个Thing对象并将其作为参数传递给回调函数
     * @param method - 回调方法
     * @param [context] - 侦听器的上下文(this关键字将指向的对象)。
     * @returns 当前对象本身,可以链式调用
     */
    eachThing(method: (...params: any[]) => any, context?: any): Map;
    /**
     * 根据指定属性获取Thing对象
     * @param attrValue - 属性值
     * @param [attrName = 'id'] - 属性名称
     * @returns Thing对象
     */
    getThing(attrValue: string | number | boolean, attrName?: string): BaseThing;
    /**
     * 根据设置的lang参数，获取当前key对应语言的文本内容。
     * @param key - 文本key
     * @returns lang参数指定的对应文本内容
     */
    getLangText(key: string): void;
    /**
     * 放大地图
     * @param [relativeAmount = 2] - 相对量
     * @param [mandatory] - 是否强制更新，忽略其他限制
     * @returns 是否有移动位置
     */
    zoomIn(relativeAmount?: number, mandatory?: number): boolean;
    /**
     * 缩小地图
     * @param [relativeAmount = 2] - 相对量
     * @param [mandatory] - 是否强制更新，忽略其他限制
     * @returns 是否有移动位置
     */
    zoomOut(relativeAmount?: number, mandatory?: number): boolean;
    /**
     * 设置鼠标操作习惯方式。
     * 默认为中键旋转，右键拉伸远近。传`rightTilt:true`可以设置为右键旋转，中键拉伸远近。
     * @param [rightTilt = false] - 是否右键旋转
     * @returns 无
     */
    changeMouseModel(rightTilt?: boolean): void;
    /**
     * 清除鼠标操作限定的Pitch范围
     * @returns 无
     */
    clearPitchRange(): void;
    /**
     * 设置鼠标操作限定的Pitch范围
     * @param max - 最大值（角度值）
     * @param [min = -90] - 最小值（角度值）
     * @returns 无
     */
    setPitchRange(max: number, min?: number): void;
    /**
     * 设置相机pitch值，保持地图中心位置不变。
     * @param pitch - 俯仰角度值， -90至90
     * @param [options] - 具有以下属性的对象:
     * @param [options.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
     * @param [options.duration] - 飞行持续时间（秒）。如果省略，内部会根据飞行距离计算出理想的飞行时间。
     * @param [options.complete] - 飞行完成后要执行的函数。
     * @param [options.cancel] - 飞行取消时要执行的函数。
     * @returns 如果飞行成功则解析为true的承诺，如果当前未在场景中可视化目标或取消飞行，则为false的Promise
     */
    setPitch(pitch: number, options?: {
        heading?: number;
        duration?: number;
        complete?: Cesium.Camera.FlightCompleteCallback;
        cancel?: Cesium.Camera.FlightCancelledCallback;
    }): Promise<boolean>;
    /**
     * 停止视角定位等操作
     * @returns 当前对象本身，可以链式调用
     */
    cancelFlyTo(): Map;
    /**
     * 获取当前相机视角参数，
     * 示例：{"lat":30.526361,"lng":116.335987,"alt":45187,"heading":0,"pitch":-45}
     * @param [options = {}] - 参数对象:
     * @param [options.simplify = true] - 是否简化，false时保留角度1位小数位
     * @returns 当前相机视角参数
     */
    getCameraView(options?: {
        simplify?: boolean;
    }): any;
    /**
     * 将相机本身定位至指定位置
     * @param cameraView - 飞行参数
     * @param cameraView.lng - 经度值, 180 - 180
     * @param cameraView.lat - 纬度值, -90 - 90
     * @param [cameraView.alt] - 高度值
     * @param [cameraView.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
     * @param [cameraView.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
     * @param [cameraView.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
     * @param [options = {}] - 参数对象:
     * @param [options.duration] - 飞行时间（单位：秒）。如果省略，SDK内部会根据飞行距离计算出理想的飞行时间。
     * @param [options.complete] - 飞行完成后要执行的函数。
     * @param [options.cancel] - 飞行取消时要执行的函数。
     * @param [options.endTransform] - 变换矩阵表示飞行结束时相机所处的参照系。
     * @param [options.maximumHeight] - 飞行高峰时的最大高度。
     * @param [options.pitchAdjustHeight] - 如果相机飞得比这个值高，在飞行过程中调整俯仰以向下看，并保持地球在视口。
     * @param [options.flyOverLongitude] - 地球上的两点之间总有两条路。这个选项迫使相机选择战斗方向飞过那个经度。
     * @param [options.flyOverLongitudeWeight] - 仅在通过flyOverLongitude指定的lon上空飞行，只要该方式的时间不超过flyOverLongitudeWeight的短途时间。
     * @param [options.convert = true] - 是否将目的地从世界坐标转换为场景坐标（仅在不使用3D时相关）。
     * @param [options.easingFunction] - 控制在飞行过程中如何插值时间。
     * @returns 如果飞行成功则解析为true的承诺，如果当前未在场景中可视化目标或取消飞行，则为false的Promise
     */
    setCameraView(cameraView: {
        lng: number;
        lat: number;
        alt?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
    }, options?: {
        duration?: number;
        complete?: Cesium.Camera.FlightCompleteCallback;
        cancel?: Cesium.Camera.FlightCancelledCallback;
        endTransform?: Cesium.Matrix4;
        maximumHeight?: number;
        pitchAdjustHeight?: number;
        flyOverLongitude?: number;
        flyOverLongitudeWeight?: number;
        convert?: boolean;
        easingFunction?: Cesium.EasingFunction.Callback;
    }): Promise<boolean>;
    /**
     * 将相机本身定位至指定位置，同 setCameraView 方法
     * 为了兼容老版本用户习惯和center参数名称一致而用的别名方法。
     * @param cameraView - 飞行参数，同 setCameraView 方法
     * @param [options = {}] - 参数对象，同 setCameraView 方法
     * @returns 如果飞行成功则解析为true的承诺，如果当前未在场景中可视化目标或取消飞行，则为false的Promise
     */
    centerAt(cameraView: any, options?: any): Promise<boolean>;
    /**
     * 飞行到默认视角，
     * 一般为config.json中的center参数配置的视角。
     * @param [options = {}] - 参数对象:
     * @param [options.duration] - 飞行时间（单位：秒）。如果省略，SDK内部会根据飞行距离计算出理想的飞行时间。
     * @returns 无
     */
    flyHome(options?: {
        duration?: number;
    }): void;
    /**
     * 定位到多个相机视角位置，按数组顺序播放
     * @param arr - 视角参数数组，每个对象包含：
     * @param arr.lng - 经度值, -180 至 180
     * @param arr.lat - 纬度值, -90 至 90
     * @param arr.alt - 高度值
     * @param arr.heading - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
     * @param arr.pitch - 俯仰角度值，绕纬度线旋转角度, -90至90
     * @param arr.roll - 翻滚角度值，绕经度线旋转角度, -90至90
     * @param [arr.duration] - 飞行时间（单位：秒）。如果省略，SDK内部会根据飞行距离计算出理想的飞行时间。
     * @param [arr.stop = 1] - 该步骤飞行结束的停留时间（单位：秒）。
     * @param [arr.onStart] - 该步骤飞行开始前的回调方法
     * @param [arr.onEnd] - 该步骤飞行开始结束后的回调方法
     * @param [options = {}] - 参数对象:
     * @param [options.complete] - 全部飞行完成后要执行的函数。
     * @param [options.cancel] - 飞行取消时要执行的函数。
     * @param [options.endTransform] - 变换矩阵表示飞行结束时相机所处的参照系。
     * @param [options.maximumHeight] - 飞行高峰时的最大高度。
     * @param [options.pitchAdjustHeight] - 如果相机飞得比这个值高，在飞行过程中调整俯仰以向下看，并保持地球在视口。
     * @param [options.flyOverLongitude] - 地球上的两点之间总有两条路。这个选项迫使相机选择战斗方向飞过那个经度。
     * @param [options.flyOverLongitudeWeight] - 仅在通过flyOverLongitude指定的lon上空飞行，只要该方式的时间不超过flyOverLongitudeWeight的短途时间。
     * @param [options.convert = true] - 是否将目的地从世界坐标转换为场景坐标（仅在不使用3D时相关）。
     * @param [options.easingFunction = Cesium.EasingFunction.LINEAR_NONE] - 控制在飞行过程中如何插值时间。
     * @returns 无
     */
    setCameraViewList(arr: {
        lng: number;
        lat: number;
        alt: number;
        heading: number;
        pitch: number;
        roll: number;
        duration?: number;
        stop?: number;
        onStart?: (...params: any[]) => any;
        onEnd?: (...params: any[]) => any;
    }[], options?: {
        complete?: Cesium.Camera.FlightCompleteCallback;
        cancel?: Cesium.Camera.FlightCancelledCallback;
        endTransform?: Cesium.Matrix4;
        maximumHeight?: number;
        pitchAdjustHeight?: number;
        flyOverLongitude?: number;
        flyOverLongitudeWeight?: number;
        convert?: boolean;
        easingFunction?: Cesium.EasingFunction.Callback;
    }): void;
    /**
     * 飞行至Cesium相关矢量对象处，是Cesium本身的flyTo方法。
     *
     * 将相机移至提供的一个或多个实体或数据源。如果数据源仍在加载过程中，或者可视化仍在加载中，此方法在执行飞行之前等待数据准备就绪。
     * 偏移量是在以边界球中心为中心的局部东北向上参考框中的航向/俯仰/范围。航向角和俯仰角是在局部的东西向北参考系中定义的。航向是从y轴到x轴的角度。间距是从xy平面开始的旋转。正螺距角度在平面上方。负俯仰角在平面下方。范围是到中心的距离。如果范围是零，则将计算范围以使整个边界球都可见。
     *
     * 在2D模式下，必须有一个俯视图。摄像机将被放置在目标上方并向下看。上方的高度目标将是范围。航向将根据偏移量确定。如果标题不能根据偏移量确定，航向将为北。
     * @param target - 需要定位的Cesium内部对象。您还可以传递一个： Cesium.Entity|Cesium.Entity[]|Cesium.EntityCollection|Cesium.DataSource|Cesium.ImageryLayer|Cesium.Cesium3DTileset|Cesium.TimeDynamicPointCloud|Promise.<Entity|Entity[]|Cesium.EntityCollection|Cesium.DataSource|Cesium.ImageryLayer|Cesium.Cesium3DTileset|Cesium.TimeDynamicPointCloud>
     * @param [options] - 具有以下属性的对象:
     * @param [options.duration = 3.0] - 飞行持续时间（秒）。
     * @param [options.maximumHeight] - 飞行高峰时的最大高度。
     * @param [options.offset] - 在局部东北朝上的参考框中，距目标的偏移量为中心。
     * @returns 如果飞行成功则解析为true的承诺，如果当前未在场景中可视化目标或取消飞行，则为false的Promise
     */
    flyTo(target: any, options?: {
        duration?: number;
        maximumHeight?: number;
        offset?: Cesium.HeadingPitchRange;
    }): Promise<boolean>;
    /**
     * 飞行定位到 Graphic矢量对象 处
     * @param graphic - 矢量对象
     * @param [options = {}] - 参数对象:
     * @param [options.radius] - 点状数据时，相机距离目标点的距离（单位：米）
     * @param [options.scale = 1.2] - 线面数据时，缩放比例，可以控制视角比矩形略大一些，这样效果更友好。
     * @param [options.minHeight] - 定位时相机的最小高度值，用于控制避免异常数据
     * @param [options.maxHeight] - 定位时相机的最大高度值，用于控制避免异常数据
     * @param [options.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
     * @param [options.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
     * @param [options.roll] - 翻滚角度值，绕经度线旋转角度,-90至90
     * @param [options.duration] - 飞行时间（单位：秒）。如果省略，SDK内部会根据飞行距离计算出理想的飞行时间。
     * @param [options.complete] - 飞行完成后要执行的函数。
     * @param [options.cancel] - 飞行取消时要执行的函数。
     * @param [options.endTransform] - 变换矩阵表示飞行结束时相机所处的参照系。
     * @param [options.maximumHeight] - 飞行高峰时的最大高度。
     * @param [options.pitchAdjustHeight] - 如果相机飞得比这个值高，在飞行过程中调整俯仰以向下看，并保持地球在视口。
     * @param [options.flyOverLongitude] - 地球上的两点之间总有两条路。这个选项迫使相机选择战斗方向飞过那个经度。
     * @param [options.flyOverLongitudeWeight] - 仅在通过flyOverLongitude指定的lon上空飞行，只要该方式的时间不超过flyOverLongitudeWeight的短途时间。
     * @param [options.convert = true] - 是否将目的地从世界坐标转换为场景坐标（仅在不使用3D时相关）。
     * @param [options.easingFunction] - 控制在飞行过程中如何插值时间。
     * @returns 如果飞行成功则解析为true的承诺，如果当前未在场景中可视化目标或取消飞行，则为false的Promise
     */
    flyToGraphic(graphic: BaseGraphic | BaseGraphic[], options?: {
        radius?: number;
        scale?: number;
        minHeight?: number;
        maxHeight?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        duration?: number;
        complete?: Cesium.Camera.FlightCompleteCallback;
        cancel?: Cesium.Camera.FlightCancelledCallback;
        endTransform?: Cesium.Matrix4;
        maximumHeight?: number;
        pitchAdjustHeight?: number;
        flyOverLongitude?: number;
        flyOverLongitudeWeight?: number;
        convert?: boolean;
        easingFunction?: Cesium.EasingFunction.Callback;
    }): Promise<boolean>;
    /**
     * 定位至坐标数组
     * @param positions - 坐标数组
     * @param [options = {}] - 参数对象:
     * @param [options.radius] - 点状数据时，相机距离目标点的距离（单位：米）
     * @param [options.scale = 1.2] - 线面数据时，缩放比例，可以控制视角比矩形略大一些，这样效果更友好。
     * @param [options.minHeight] - 定位时相机的最小高度值，用于控制避免异常数据
     * @param [options.maxHeight] - 定位时相机的最大高度值，用于控制避免异常数据
     * @param [options.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
     * @param [options.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
     * @param [options.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
     * @param [options.duration] - 飞行时间（单位：秒）。如果省略，SDK内部会根据飞行距离计算出理想的飞行时间。
     * @param [options.complete] - 飞行完成后要执行的函数。
     * @param [options.cancel] - 飞行取消时要执行的函数。
     * @param [options.endTransform] - 变换矩阵表示飞行结束时相机所处的参照系。
     * @param [options.maximumHeight] - 飞行高峰时的最大高度。
     * @param [options.pitchAdjustHeight] - 如果相机飞得比这个值高，在飞行过程中调整俯仰以向下看，并保持地球在视口。
     * @param [options.flyOverLongitude] - 地球上的两点之间总有两条路。这个选项迫使相机选择战斗方向飞过那个经度。
     * @param [options.flyOverLongitudeWeight] - 仅在通过flyOverLongitude指定的lon上空飞行，只要该方式的时间不超过flyOverLongitudeWeight的短途时间。
     * @param [options.convert = true] - 是否将目的地从世界坐标转换为场景坐标（仅在不使用3D时相关）。
     * @param [options.easingFunction] - 控制在飞行过程中如何插值时间。
     * @returns 如果飞行成功则解析为true的承诺，如果当前未在场景中可视化目标或取消飞行，则为false的Promise
     */
    flyToPositions(positions: Cesium.Cartesian3[], options?: {
        radius?: number;
        scale?: number;
        minHeight?: number;
        maxHeight?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        duration?: number;
        complete?: Cesium.Camera.FlightCompleteCallback;
        cancel?: Cesium.Camera.FlightCancelledCallback;
        endTransform?: Cesium.Matrix4;
        maximumHeight?: number;
        pitchAdjustHeight?: number;
        flyOverLongitude?: number;
        flyOverLongitudeWeight?: number;
        convert?: boolean;
        easingFunction?: Cesium.EasingFunction.Callback;
    }): Promise<boolean>;
    /**
     * 相机飞行定位至矩形区域
     * @param extent - 飞行参数, Object时可以传入：
     * @param extent.xmin - 最小经度值, -180 至 180
     * @param extent.xmax - 最大经度值, -180 至 180
     * @param extent.ymin - 最小纬度值, -90 至 90
     * @param extent.ymax - 最大纬度值, -90 至 90
     * @param [extent.height] - 矩形高度值, 默认取地形高度值
     * @param [options = {}] - 参数对象:
     * @param [options.scale] - 缩放比例，可以控制视角比矩形略大一些，这样效果更友好。
     * @param [options.minHeight] - 定位时相机的最小高度值，用于控制避免异常数据
     * @param [options.maxHeight] - 定位时相机的最大高度值，用于控制避免异常数据
     * @param [options.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
     * @param [options.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
     * @param [options.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
     * @param [options.duration] - 飞行时间（单位：秒）。如果省略，SDK内部会根据飞行距离计算出理想的飞行时间。
     * @param [options.complete] - 飞行完成后要执行的函数。
     * @param [options.cancel] - 飞行取消时要执行的函数。
     * @param [options.endTransform] - 变换矩阵表示飞行结束时相机所处的参照系。
     * @param [options.maximumHeight] - 飞行高峰时的最大高度。
     * @param [options.pitchAdjustHeight] - 如果相机飞得比这个值高，在飞行过程中调整俯仰以向下看，并保持地球在视口。
     * @param [options.flyOverLongitude] - 地球上的两点之间总有两条路。这个选项迫使相机选择战斗方向飞过那个经度。
     * @param [options.flyOverLongitudeWeight] - 仅在通过flyOverLongitude指定的lon上空飞行，只要该方式的时间不超过flyOverLongitudeWeight的短途时间。
     * @param [options.convert = true] - 是否将目的地从世界坐标转换为场景坐标（仅在不使用3D时相关）。
     * @param [options.easingFunction] - 控制在飞行过程中如何插值时间。
     * @returns 如果飞行成功则解析为true的承诺，如果当前未在场景中可视化目标或取消飞行，则为false的Promise
     */
    flyToExtent(extent: {
        xmin: number;
        xmax: number;
        ymin: number;
        ymax: number;
        height?: number;
    }, options?: {
        scale?: number;
        minHeight?: number;
        maxHeight?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        duration?: number;
        complete?: Cesium.Camera.FlightCompleteCallback;
        cancel?: Cesium.Camera.FlightCancelledCallback;
        endTransform?: Cesium.Matrix4;
        maximumHeight?: number;
        pitchAdjustHeight?: number;
        flyOverLongitude?: number;
        flyOverLongitudeWeight?: number;
        convert?: boolean;
        easingFunction?: Cesium.EasingFunction.Callback;
    }): Promise<boolean>;
    /**
     * 定位至目标点(非相机位置)
     * @param point - 目标点位置（视角中心点）
     * @param [options = {}] - 具有以下属性的对象:
     * @param [options.radius] - 相机距离目标点的距离（单位：米）
     * @param [options.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
     * @param [options.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
     * @param [options.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
     * @param [options.duration] - 飞行持续时间（秒）。如果省略，内部会根据飞行距离计算出理想的飞行时间。
     * @param [options.clampToGround] - 是否贴地对象,true时异步计算实际高度值后进行定位。
     * @param [options.complete] - 飞行完成后要执行的函数。
     * @param [options.cancel] - 飞行取消时要执行的函数。
     * @param [options.endTransform] - 表示飞行完成后摄像机将位于的参考帧的变换矩阵。
     * @param [options.maximumHeight] - 飞行高峰时的最大高度。
     * @param [options.pitchAdjustHeight] - 如果相机的飞行角度高于该值，请在飞行过程中调整俯仰角度以向下看，并将地球保持在视口中。
     * @param [options.flyOverLongitude] - 地球上2点之间总是有两种方式。此选项会迫使相机选择战斗方向以在该经度上飞行。
     * @param [options.flyOverLongitudeWeight] - 仅在通过flyOverLongitude指定的lon上空飞行，只要该方式的时间不超过flyOverLongitudeWeight的短途时间。
     * @param [options.easingFunction] - 控制在飞行过程中如何插值时间。
     * @returns 如果飞行成功则解析为true的承诺，如果当前未在场景中可视化目标或取消飞行，则为false的Promise
     */
    flyToPoint(point: LngLatPoint | Cesium.Cartesian3 | number[], options?: {
        radius?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        duration?: number;
        clampToGround?: boolean;
        complete?: Cesium.Camera.FlightCompleteCallback;
        cancel?: Cesium.Camera.FlightCancelledCallback;
        endTransform?: Cesium.Matrix4;
        maximumHeight?: number;
        pitchAdjustHeight?: number;
        flyOverLongitude?: number;
        flyOverLongitudeWeight?: number;
        easingFunction?: Cesium.EasingFunction.Callback;
    }): Promise<boolean>;
    /**
     * 是否在调用了openFlyAnimation正在进行开场动画
     * @returns 是否在开场动画
     */
    isFlyAnimation(): boolean;
    /**
     * 执行开场动画，动画播放地球飞行定位到指定区域（1.旋转地球+2.降低高度+3.指定视角）
     * @param [options = {}] - 参数对象:
     * @param [options.center = getCameraView()] - 飞行到的指定区域视角参数
     * @param [options.duration1 = 2] - 第一步旋转地球时长，单位：秒
     * @param [options.easingFunction1 = Cesium.EasingFunction.LINEAR_NONE] - 第一步旋转地球飞行中，控制如何在飞行期间内插值时间参数。
     * @param [options.duration2 = 2] - 第二步降低高度时长，单位：秒
     * @param [options.easingFunction2] - 第二步降低高度飞行中，控制如何在飞行期间内插值时间参数。
     * @param [options.duration3 = 2] - 第三步指定视角飞行时长，单位：秒
     * @param [options.easingFunction3] - 第三步指定视角飞行中，控制如何在飞行期间内插值时间参数。
     * @returns 如果飞行成功则解析为true的承诺，如果当前未在场景中可视化目标或取消飞行，则为false的Promise
     */
    openFlyAnimation(options?: {
        center?: any;
        duration1?: number;
        easingFunction1?: Cesium.EasingFunction.Callback;
        duration2?: number;
        easingFunction2?: Cesium.EasingFunction.Callback;
        duration3?: number;
        easingFunction3?: Cesium.EasingFunction.Callback;
    }): Promise<boolean>;
    /**
     * 执行旋转地球动画
     * @param [options = {}] - 参数对象:
     * @param [options.duration = 10] - 动画时长（单位：秒）
     * @param [options.center = getCameraView()] - 飞行到的指定区域视角参数
     * @returns 如果飞行成功则解析为true的承诺，如果当前未在场景中可视化目标或取消飞行，则为false的Promise
     */
    rotateAnimation(options?: {
        duration?: number;
        center?: any;
    }): Promise<boolean>;
    /**
     * 清除已高亮的矢量对象
     * @param [result] - 事件对象
     * @returns 无
     */
    closeHighlight(result?: any): void;
    /**
     * 高亮矢量对象
     * @param graphic - 矢量对象
     * @param highlightStyle - 高亮的样式，具体见各{@link GraphicType}矢量数据的style参数。
     * @param [event] - 鼠标事件对象
     * @returns 无
     */
    openHighlight(graphic: BaseGraphic | any, highlightStyle: any, event?: any): void;
    /**
     * 打开Popup弹窗
     * @param position - 矢量对象 或 显示的位置
     * @param content - 弹窗内容html字符串，或者 回调方法 或者矢量对象/图层。
     * @param [options] - 配置参数
     * @returns 当前对象本身，可以链式调用
     */
    openPopup(position: LngLatPoint | Cesium.Cartesian3 | number[], content: string | ((...params: any[]) => any) | BaseGraphic | BaseGraphicLayer, options?: Popup.StyleOptions | any): Map;
    /**
     * 关闭Popup弹窗
     * @returns 当前对象本身，可以链式调用
     */
    closePopup(): Map;
    /**
     * 打开Tooltip弹窗
     * @param position - 矢量对象 或 显示的位置
     * @param content - 弹窗内容html字符串，或者 回调方法
     * @param [options] - 配置参数
     * @returns 当前对象本身，可以链式调用
     */
    openTooltip(position: LngLatPoint | Cesium.Cartesian3 | number[], content: string | ((...params: any[]) => any), options?: Tooltip.StyleOptions | any): Map;
    /**
     * 关闭Tooltip弹窗
     * @returns 当前对象本身，可以链式调用
     */
    closeTooltip(): Map;
    /**
     * 获取绑定的右键菜单数组
     * @returns 右键菜单数组
     */
    getContextMenu(): any;
    /**
     * 绑定地图的默认右键菜单
     * @example
     * //内置的默认右键菜单获取方法
     *     let defaultContextmenuItems =map.getDefaultContextMenu()
     *     map.bindContextMenu(defaultContextmenuItems)
     * @param content - 右键菜单配置数组，数组中每一项包括：
     * @param [content.text] - 菜单文字
     * @param [content.icon] - 图标,可以是：图片url路径、base64字符串、svg字符串、字体图标class名
     * @param [content.show] - 菜单项是否显示的回调方法
     * @param [content.callback] - 菜单项单击后的回调方法
     * @param [content.children] - 当有二级子菜单时，配置数组。
     * @param [options = {}] - 控制参数
     * @param [options.offsetX] - 用于非规则对象时，横向偏移的px像素值
     * @param [options.offsetY] - 用于非规则对象时，垂直方向偏移的px像素值
     * @returns 当前对象本身，可以链式调用
     */
    bindContextMenu(content: {
        text?: string;
        icon?: string;
        show?: ((...params: any[]) => any) | boolean;
        callback?: (...params: any[]) => any;
        children?: any;
    }[], options?: {
        offsetX?: number;
        offsetY?: number;
    }): Map;
    /**
     * 解除绑定的右键菜单
     * @returns 当前对象本身，可以链式调用
     */
    unbindContextMenu(): Map;
    /**
     * 打开右键菜单
     * @param [position] - 显示的位置
     * @returns 当前对象本身，可以链式调用
     */
    openContextMenu(position?: Cesium.Cartesian3): Map;
    /**
     * 关闭右键菜单
     * @returns 当前对象本身，可以链式调用
     */
    closeContextMenu(): Map;
    /**
     * 显示小提示窗，一般用于鼠标操作的提示。
     * @param position - 显示的屏幕坐标位置 或 笛卡尔坐标位置
     * @param message - 显示的内容
     * @returns 当前对象本身，可以链式调用
     */
    openSmallTooltip(position: Cesium.Cartesian2 | Cesium.Cartesian3, message: any): Map;
    /**
     * 关闭小提示窗
     * @returns 当前对象本身，可以链式调用
     */
    closeSmallTooltip(): Map;
    /**
     * 销毁地图
     * @returns 无
     */
    destroy(): void;
    /**
     * 绑定指定类型事件监听器,
     * 支持在监听中调用 event.stopPropagation(); 组织事件冒泡
     * @param types - 事件类型
     * @param fn - 绑定的监听器回调方法
     * @param [context] - 侦听器的上下文(this关键字将指向的对象)。
     * @returns 当前对象本身,可以链式调用
     */
    on(types: EventType | string | EventType[] | string[] | any, fn: (...params: any[]) => any, context?: any): BaseClass;
    /**
     * 解除绑定指定类型事件监听器
     * @param [types] - 事件类型,未传值时解绑所有事件
     * @param [fn] - 绑定的监听器回调方法,未传值时解绑所有指定类型对应事件
     * @param [context] - 侦听器的上下文(this关键字将指向的对象)。
     * @returns 当前对象本身,可以链式调用
     */
    off(types?: EventType | string | EventType[], fn?: (...params: any[]) => any, context?: any): BaseClass;
}

/**
 * 材质属性(Entity使用) 基础类
 * @param options - 参数对象
 */
declare class BaseMaterialProperty {
    constructor(options: any);
    /**
     * 获取 材质名称
     * @param [time] - 检索值的时间。
     * @returns 材质名称
     */
    getType(time?: Cesium.JulianDate): string;
    /**
     * 获取所提供时间的属性值。
     * @param [time] - 检索值的时间。
     * @param [result] - 用于存储值的对象，如果省略，则创建并返回一个新的实例。
     * @returns 修改的result参数或一个新的实例(如果没有提供result参数)。
     */
    getValue(time?: Cesium.JulianDate, result?: any): any;
    /**
     * 将此属性与提供的属性进行比较并返回, 如果两者相等返回true，否则为false
     * @param [other] - 比较的对象
     * @returns 两者是同一个对象
     */
    equals(other?: Cesium.Property): boolean;
}

/**
 * 圆形扫描效果 材质属性
 * @param [options] - 参数对象，包括以下：
 * @param options.image - 背景图片URL
 * @param [options.color = new Cesium.Color(1, 0, 0, 0.5))] - 颜色
 */
declare class CircleScanMaterialProperty extends BaseMaterialProperty {
    constructor(options?: {
        image: string;
        color?: string | Cesium.Color;
    });
    /**
     * 背景图片URL
     */
    image: string;
    /**
     * 颜色
     */
    color: Cesium.Color;
    /**
     * 获取 材质名称
     * @param [time] - 检索值的时间。
     * @returns 材质名称
     */
    getType(time?: Cesium.JulianDate): string;
    /**
     * 获取所提供时间的属性值。
     * @param [time] - 检索值的时间。
     * @param [result] - 用于存储值的对象，如果省略，则创建并返回一个新的实例。
     * @returns 修改的result参数或一个新的实例(如果没有提供result参数)。
     */
    getValue(time?: Cesium.JulianDate, result?: any): any;
    /**
     * 将此属性与提供的属性进行比较并返回, 如果两者相等返回true，否则为false
     * @param [other] - 比较的对象
     * @returns 两者是同一个对象
     */
    equals(other?: Cesium.Property): boolean;
}

/**
 * 圆形扩散波纹效果 材质属性
 * @param [options] - 参数对象，包括以下：
 * @param [options.color = Cesium.Color.YELLOW] - 颜色
 * @param [options.speed = 10] - 速度
 * @param [options.duration] - 播放总时长，单位：秒 （会覆盖speed参数）
 * @param [options.count = 1] - 圆圈个数
 * @param [options.gradient = 0.1] - 透明度的幂方（0-1）,0表示无虚化效果，1表示虚化成均匀渐变
 */
declare class CircleWaveMaterialProperty extends BaseMaterialProperty {
    constructor(options?: {
        color?: string | Cesium.Color;
        speed?: number;
        duration?: number;
        count?: number;
        gradient?: number;
    });
    /**
     * 颜色
     */
    color: Cesium.Color;
    /**
     * 速度
     */
    speed: number;
    /**
     * 播放总时长，单位：秒 （会覆盖speed参数）
     */
    duration: number;
    /**
     * 圆圈个数
     */
    count: number;
    /**
     * 透明度的幂方（0-1）,0表示无虚化效果，1表示虚化成均匀渐变
     */
    gradient: number;
    /**
     * 获取 材质名称
     * @param [time] - 检索值的时间。
     * @returns 材质名称
     */
    getType(time?: Cesium.JulianDate): string;
    /**
     * 获取所提供时间的属性值。
     * @param [time] - 检索值的时间。
     * @param [result] - 用于存储值的对象，如果省略，则创建并返回一个新的实例。
     * @returns 修改的result参数或一个新的实例(如果没有提供result参数)。
     */
    getValue(time?: Cesium.JulianDate, result?: any): any;
    /**
     * 将此属性与提供的属性进行比较并返回, 如果两者相等返回true，否则为false
     * @param [other] - 比较的对象
     * @returns 两者是同一个对象
     */
    equals(other?: Cesium.Property): boolean;
}

/**
 * 圆锥 波纹扩散效果 材质属性
 * @param [options] - 参数对象，包括以下：
 * @param [options.color = new Cesium.Color(2, 1, 0.0, 0.8)] - 颜色
 * @param [options.repeat = 30] - 圈数量
 * @param [options.thickness = 0.3] - 圈的宽度比例
 * @param [options.speed = 10] - 速度，值越大越快
 */
declare class CylinderWaveMaterialProperty extends BaseMaterialProperty {
    constructor(options?: {
        color?: string | Cesium.Color;
        repeat?: number;
        thickness?: number;
        speed?: number;
    });
    /**
     * 颜色
     */
    color: Cesium.Color;
    /**
     * 圈数量
     */
    repeat: number;
    /**
     * 圈的宽度比例
     */
    thickness: number;
    /**
     * 速度，值越大越快
     */
    speed: number;
    /**
     * 获取 材质名称
     * @param [time] - 检索值的时间。
     * @returns 材质名称
     */
    getType(time?: Cesium.JulianDate): string;
    /**
     * 获取所提供时间的属性值。
     * @param [time] - 检索值的时间。
     * @param [result] - 用于存储值的对象，如果省略，则创建并返回一个新的实例。
     * @returns 修改的result参数或一个新的实例(如果没有提供result参数)。
     */
    getValue(time?: Cesium.JulianDate, result?: any): any;
    /**
     * 将此属性与提供的属性进行比较并返回, 如果两者相等返回true，否则为false
     * @param [other] - 比较的对象
     * @returns 两者是同一个对象
     */
    equals(other?: Cesium.Property): boolean;
}

/**
 * 线状: 数字流动线 材质
 * @param [options] - 参数对象，包括以下：
 * @param [options.color = Cesium.Color.ORANGE] - 颜色
 * @param [options.speed = 5.0] - 速度，值越大越快
 * @param [options.glow = 1.0] - 高亮强度
 * @param [options.flowGlow = 1.0] - 流动高亮强度
 * @param [options.segment = 3.0] - 分段数
 */
declare class DigitalFlowMaterialProperty extends BaseMaterialProperty {
    constructor(options?: {
        color?: Cesium.Color;
        speed?: number;
        glow?: number;
        flowGlow?: number;
        segment?: number;
    });
    /**
     * 颜色
     */
    color: Cesium.Color;
    /**
     * 速度，值越大越快
     */
    speed: number;
    /**
     * 高亮强度
     */
    glow: number;
    /**
     * 流动高亮强度
     */
    flowGlow: number;
    /**
     * 分段数
     */
    segment: number;
    /**
     * 获取 材质名称
     * @param [time] - 检索值的时间。
     * @returns 材质名称
     */
    getType(time?: Cesium.JulianDate): string;
    /**
     * 获取所提供时间的属性值。
     * @param [time] - 检索值的时间。
     * @param [result] - 用于存储值的对象，如果省略，则创建并返回一个新的实例。
     * @returns 修改的result参数或一个新的实例(如果没有提供result参数)。
     */
    getValue(time?: Cesium.JulianDate, result?: any): any;
    /**
     * 将此属性与提供的属性进行比较并返回, 如果两者相等返回true，否则为false
     * @param [other] - 比较的对象
     * @returns 两者是同一个对象
     */
    equals(other?: Cesium.Property): boolean;
}

/**
 * 球体: 电弧球体效果  材质
 * @param [options] - 参数对象，包括以下：
 * @param [options.color = new Cesium.Color(1, 0, 0, 1.0)] - 颜色
 * @param [options.speed = 5.0] - 速度，值越大越快
 */
declare class EllipsoidElectricMaterialProperty extends BaseMaterialProperty {
    constructor(options?: {
        color?: Cesium.Color;
        speed?: number;
    });
    /**
     * 颜色
     */
    color: Cesium.Color;
    /**
     * 速度，值越大越快
     */
    speed: number;
    /**
     * 获取 材质名称
     * @param [time] - 检索值的时间。
     * @returns 材质名称
     */
    getType(time?: Cesium.JulianDate): string;
    /**
     * 获取所提供时间的属性值。
     * @param [time] - 检索值的时间。
     * @param [result] - 用于存储值的对象，如果省略，则创建并返回一个新的实例。
     * @returns 修改的result参数或一个新的实例(如果没有提供result参数)。
     */
    getValue(time?: Cesium.JulianDate, result?: any): any;
    /**
     * 将此属性与提供的属性进行比较并返回, 如果两者相等返回true，否则为false
     * @param [other] - 比较的对象
     * @returns 两者是同一个对象
     */
    equals(other?: Cesium.Property): boolean;
}

/**
 * 球体: 波纹球体效果  材质
 * @param [options] - 参数对象，包括以下：
 * @param [options.color = new Cesium.Color(1, 0, 0, 1.0)] - 颜色
 * @param [options.speed = 5.0] - 速度，值越大越快
 */
declare class EllipsoidWaveMaterialProperty extends BaseMaterialProperty {
    constructor(options?: {
        color?: Cesium.Color;
        speed?: number;
    });
    /**
     * 颜色
     */
    color: Cesium.Color;
    /**
     * 速度
     */
    speed: number;
    /**
     * 获取 材质名称
     * @param [time] - 检索值的时间。
     * @returns 材质名称
     */
    getType(time?: Cesium.JulianDate): string;
    /**
     * 获取所提供时间的属性值。
     * @param [time] - 检索值的时间。
     * @param [result] - 用于存储值的对象，如果省略，则创建并返回一个新的实例。
     * @returns 修改的result参数或一个新的实例(如果没有提供result参数)。
     */
    getValue(time?: Cesium.JulianDate, result?: any): any;
    /**
     * 将此属性与提供的属性进行比较并返回, 如果两者相等返回true，否则为false
     * @param [other] - 比较的对象
     * @returns 两者是同一个对象
     */
    equals(other?: Cesium.Property): boolean;
}

/**
 * 通用：图片 材质2  材质属性,  没有加载完成前的白色闪烁，但也不支持纯白色的图片
 * @param [options] - 参数对象，包括以下：
 * @param options.image - 背景图片URL
 * @param [options.opacity = 1] - 透明度
 * @param [options.color = Cesium.Color.WHITE] - 颜色
 * @param [options.speed = 0] - 不为0时呈现图片滚动效果，数字代表滚动速度
 */
declare class Image2MaterialProperty extends BaseMaterialProperty {
    constructor(options?: {
        image: string;
        opacity?: number;
        color?: string | Cesium.Color;
        speed?: number;
    });
    /**
     * 背景图片URL
     */
    image: string;
    /**
     * 透明度，0-1
     */
    opacity: number;
    /**
     * 颜色
     */
    color: Cesium.Color;
    /**
     * 不为0时呈现图片滚动效果，数字代表滚动速度
     */
    speed: number;
    /**
     * 获取 材质名称
     * @param [time] - 检索值的时间。
     * @returns 材质名称
     */
    getType(time?: Cesium.JulianDate): string;
    /**
     * 获取所提供时间的属性值。
     * @param [time] - 检索值的时间。
     * @param [result] - 用于存储值的对象，如果省略，则创建并返回一个新的实例。
     * @returns 修改的result参数或一个新的实例(如果没有提供result参数)。
     */
    getValue(time?: Cesium.JulianDate, result?: any): any;
    /**
     * 将此属性与提供的属性进行比较并返回, 如果两者相等返回true，否则为false
     * @param [other] - 比较的对象
     * @returns 两者是同一个对象
     */
    equals(other?: Cesium.Property): boolean;
}

/**
 * 线状: 泛光线 材质
 * @param [options] - 参数对象，包括以下：
 * @param [options.color = Cesium.Color.ORANGE] - 颜色
 * @param [options.glow = 1.0] - 泛光强度
 * @param [options.speed = 5.0] - 速度，值越大越快
 */
declare class LineBloomMaterialProperty extends BaseMaterialProperty {
    constructor(options?: {
        color?: Cesium.Color;
        glow?: number;
        speed?: number;
    });
    /**
     * 颜色
     */
    color: Cesium.Color;
    /**
     * 速度，值越大越快
     */
    speed: number;
    /**
     * 泛光强度
     */
    glow: number;
    /**
     * 获取 材质名称
     * @param [time] - 检索值的时间。
     * @returns 材质名称
     */
    getType(time?: Cesium.JulianDate): string;
    /**
     * 获取所提供时间的属性值。
     * @param [time] - 检索值的时间。
     * @param [result] - 用于存储值的对象，如果省略，则创建并返回一个新的实例。
     * @returns 修改的result参数或一个新的实例(如果没有提供result参数)。
     */
    getValue(time?: Cesium.JulianDate, result?: any): any;
    /**
     * 将此属性与提供的属性进行比较并返回, 如果两者相等返回true，否则为false
     * @param [other] - 比较的对象
     * @returns 两者是同一个对象
     */
    equals(other?: Cesium.Property): boolean;
}

/**
 * 线状: 泛光线 材质
 * @param [options] - 参数对象，包括以下：
 * @param [options.color = Cesium.Color.WHITE] - 颜色
 * @param [options.gapColor = Cesium.Color.TRANSPARENT] - 虚线间隔颜色，默认为透明
 * @param [options.dashLength = 16.0] - 虚线间隔长度，以像素为单位
 * @param [options.dashPattern = 255.0] - 指定的16位模式
 */
declare class LineDotDashMaterialProperty extends BaseMaterialProperty {
    constructor(options?: {
        color?: Cesium.Color;
        gapColor?: Cesium.Color;
        dashLength?: number;
        dashPattern?: number;
    });
    /**
     * 颜色
     */
    color: Cesium.Color;
    /**
     * 虚线间隔颜色，默认为透明
     */
    gapColor: Cesium.Color;
    /**
     * 虚线间隔长度，以像素为单位
     */
    dashLength: number;
    /**
     * 指定的16位模式
     */
    dashPattern: number;
    /**
     * 获取 材质名称
     * @param [time] - 检索值的时间。
     * @returns 材质名称
     */
    getType(time?: Cesium.JulianDate): string;
    /**
     * 获取所提供时间的属性值。
     * @param [time] - 检索值的时间。
     * @param [result] - 用于存储值的对象，如果省略，则创建并返回一个新的实例。
     * @returns 修改的result参数或一个新的实例(如果没有提供result参数)。
     */
    getValue(time?: Cesium.JulianDate, result?: any): any;
    /**
     * 将此属性与提供的属性进行比较并返回, 如果两者相等返回true，否则为false
     * @param [other] - 比较的对象
     * @returns 两者是同一个对象
     */
    equals(other?: Cesium.Property): boolean;
}

/**
 * 线状: 闪烁线 材质
 * @param [options] - 参数对象，包括以下：
 * @param [options.color = new Cesium.Color(1, 0, 0, 1.0)] - 颜色
 * @param [options.speed = 2] - 速度，值越大越快
 */
declare class LineFlickerMaterialProperty extends BaseMaterialProperty {
    constructor(options?: {
        color?: Cesium.Color;
        speed?: number;
    });
    /**
     * 背景图片颜色
     */
    color: Cesium.Color;
    /**
     * 速度，值越大越快
     */
    speed: number;
    /**
     * 获取 材质名称
     * @param [time] - 检索值的时间。
     * @returns 材质名称
     */
    getType(time?: Cesium.JulianDate): string;
    /**
     * 获取所提供时间的属性值。
     * @param [time] - 检索值的时间。
     * @param [result] - 用于存储值的对象，如果省略，则创建并返回一个新的实例。
     * @returns 修改的result参数或一个新的实例(如果没有提供result参数)。
     */
    getValue(time?: Cesium.JulianDate, result?: any): any;
    /**
     * 将此属性与提供的属性进行比较并返回, 如果两者相等返回true，否则为false
     * @param [other] - 比较的对象
     * @returns 两者是同一个对象
     */
    equals(other?: Cesium.Property): boolean;
}

/**
 * 线状 流动效果 材质
 * @param [options] - 参数对象，包括以下：
 * @param [options.color = new Cesium.Color(1, 0, 0, 1.0)] - 颜色
 * @param [options.speed = 2] - 速度，值越大越快
 * @param [options.percent = 0.04] - 比例
 * @param [options.alpha = 0.1] - 透明程度 0.0-1.0
 * @param [options.startTime = 0] - 开始的时间系数
 */
declare class LineFlowColorMaterialProperty extends BaseMaterialProperty {
    constructor(options?: {
        color?: Cesium.Color;
        speed?: number;
        percent?: number;
        alpha?: number;
        startTime?: number;
    });
    /**
     * 颜色
     */
    color: Cesium.Color;
    /**
     * 速度，值越大越快
     */
    speed: number;
    /**
     * 比例
     */
    percent: number;
    /**
     * 透明程度 0.0-1.0
     */
    alpha: number;
    /**
     * 开始的时间系数
     */
    startTime: number;
    /**
     * 获取 材质名称
     * @param [time] - 检索值的时间。
     * @returns 材质名称
     */
    getType(time?: Cesium.JulianDate): string;
    /**
     * 获取所提供时间的属性值。
     * @param [time] - 检索值的时间。
     * @param [result] - 用于存储值的对象，如果省略，则创建并返回一个新的实例。
     * @returns 修改的result参数或一个新的实例(如果没有提供result参数)。
     */
    getValue(time?: Cesium.JulianDate, result?: any): any;
    /**
     * 将此属性与提供的属性进行比较并返回, 如果两者相等返回true，否则为false
     * @param [other] - 比较的对象
     * @returns 两者是同一个对象
     */
    equals(other?: Cesium.Property): boolean;
}

/**
 * 线状 流动效果 材质
 * @param [options] - 参数对象，包括以下：
 * @param options.image - 背景图片URL
 * @param [options.color = new Cesium.Color(1, 0, 0, 1.0)] - 背景图片颜色
 * @param [options.repeat = new Cesium.Cartesian2(1.0, 1.0)] - 横纵方向重复次数
 * @param [options.axisY = false] - 是否Y轴朝上
 * @param [options.mixt = false] - 默认为color颜色，true时color颜色与图片颜色混合
 * @param [options.speed = 10] - 速度
 * @param [options.duration] - 播放总时长，单位：秒 （会覆盖speed参数）
 * @param [options.hasImage2 = false] - 是否有2张图片的混合模式
 * @param [options.image2] - 第2张背景图片URL地址
 * @param [options.color2 = new Cesium.Color(1, 1, 1)] - 第2张背景图片颜色
 */
declare class LineFlowMaterialProperty extends BaseMaterialProperty {
    constructor(options?: {
        image: string;
        color?: string | Cesium.Color;
        repeat?: Cesium.Cartesian2;
        axisY?: boolean;
        mixt?: boolean;
        speed?: number;
        duration?: number;
        hasImage2?: boolean;
        image2?: string;
        color2?: string | Cesium.Color;
    });
    /**
     * 背景图片URL
     */
    image: string;
    /**
     * 背景图片颜色
     */
    color: Cesium.Color;
    /**
     * 是否Y轴朝上
     */
    axisY: boolean;
    /**
     * 默认为color颜色，true时color颜色与图片颜色混合
     */
    mixt: boolean;
    /**
     * 速度
     */
    speed: number;
    /**
     * 播放总时长，单位：秒 （会覆盖speed参数）
     */
    duration: number;
    /**
     * 横纵方向重复次数
     */
    repeat: Cesium.Cartesian2;
    /**
     * 第2张背景图片
     */
    image2: string;
    /**
     * 第2张背景图片颜色
     */
    color2: Cesium.Color;
    /**
     * 是否有2张图片的混合模式
     */
    hasImage2: boolean;
    /**
     * 获取 材质名称
     * @param [time] - 检索值的时间。
     * @returns 材质名称
     */
    getType(time?: Cesium.JulianDate): string;
    /**
     * 获取所提供时间的属性值。
     * @param [time] - 检索值的时间。
     * @param [result] - 用于存储值的对象，如果省略，则创建并返回一个新的实例。
     * @returns 修改的result参数或一个新的实例(如果没有提供result参数)。
     */
    getValue(time?: Cesium.JulianDate, result?: any): any;
    /**
     * 将此属性与提供的属性进行比较并返回, 如果两者相等返回true，否则为false
     * @param [other] - 比较的对象
     * @returns 两者是同一个对象
     */
    equals(other?: Cesium.Property): boolean;
}

/**
 * 线状: 轨迹线 材质
 * @param [options] - 参数对象，包括以下：
 * @param [options.color = new Cesium.Color(1, 0, 0, 1.0)] - 颜色
 * @param [options.bgColor] - 背景颜色
 * @param [options.speed = 5.0] - 速度，值越大越快
 */
declare class LineTrailMaterialProperty extends BaseMaterialProperty {
    constructor(options?: {
        color?: Cesium.Color;
        bgColor?: string | Cesium.Color;
        speed?: number;
    });
    /**
     * 颜色
     */
    color: Cesium.Color;
    /**
     * 背景颜色
     */
    bgColor: Cesium.Color;
    /**
     * 速度，值越大越快
     */
    speed: number;
    /**
     * 获取 材质名称
     * @param [time] - 检索值的时间。
     * @returns 材质名称
     */
    getType(time?: Cesium.JulianDate): string;
    /**
     * 获取所提供时间的属性值。
     * @param [time] - 检索值的时间。
     * @param [result] - 用于存储值的对象，如果省略，则创建并返回一个新的实例。
     * @returns 修改的result参数或一个新的实例(如果没有提供result参数)。
     */
    getValue(time?: Cesium.JulianDate, result?: any): any;
    /**
     * 将此属性与提供的属性进行比较并返回, 如果两者相等返回true，否则为false
     * @param [other] - 比较的对象
     * @returns 两者是同一个对象
     */
    equals(other?: Cesium.Property): boolean;
}

/**
 * 面状: 霓虹灯材质
 * @param [options] - 参数对象，包括以下：
 * @param [options.color = "#9b08fd"] - 颜色
 * @param [options.speed = 2] - 速度，值越大越快
 */
declare class NeonLightMaterialProperty extends BaseMaterialProperty {
    constructor(options?: {
        color?: string | Cesium.Color;
        speed?: number;
    });
    /**
     * 颜色
     */
    color: Cesium.Color;
    /**
     * 速度
     */
    speed: number;
    /**
     * 获取 材质名称
     * @param [time] - 检索值的时间。
     * @returns 材质名称
     */
    getType(time?: Cesium.JulianDate): string;
    /**
     * 获取所提供时间的属性值。
     * @param [time] - 检索值的时间。
     * @param [result] - 用于存储值的对象，如果省略，则创建并返回一个新的实例。
     * @returns 修改的result参数或一个新的实例(如果没有提供result参数)。
     */
    getValue(time?: Cesium.JulianDate, result?: any): any;
    /**
     * 将此属性与提供的属性进行比较并返回, 如果两者相等返回true，否则为false
     * @param [other] - 比较的对象
     * @returns 两者是同一个对象
     */
    equals(other?: Cesium.Property): boolean;
}

/**
 * 线状 OD线效果 材质
 * @param [options] - 参数对象，包括以下：
 * @param [options.color = 随机色] - 运动对象的颜色
 * @param [options.bgColor] - 线的背景颜色
 * @param [options.speed = 20 + 10 * Math.random()] - 速度
 * @param [options.startTime = Math.random] - 开始的时间系数
 * @param [options.bidirectional = 0] - 运行形式：0 正向运动 1 反向运动 2 双向运动
 */
declare class ODLineMaterialProperty extends BaseMaterialProperty {
    constructor(options?: {
        color?: string | Cesium.Color;
        bgColor?: string | Cesium.Color;
        speed?: number;
        startTime?: number;
        bidirectional?: number;
    });
    /**
     * 运动对象的颜色
     */
    color: Cesium.Color;
    /**
     * 线的背景颜色
     */
    bgColor: Cesium.Color;
    /**
     * 速度
     */
    speed: number;
    /**
     * 开始的时间系数
     */
    startTime: number;
    /**
     * 运行形式：0 正向运动 1 反向运动 2 双向运动
     */
    bidirectional: number;
    /**
     * 获取 材质名称
     * @param [time] - 检索值的时间。
     * @returns 材质名称
     */
    getType(time?: Cesium.JulianDate): string;
    /**
     * 获取所提供时间的属性值。
     * @param [time] - 检索值的时间。
     * @param [result] - 用于存储值的对象，如果省略，则创建并返回一个新的实例。
     * @returns 修改的result参数或一个新的实例(如果没有提供result参数)。
     */
    getValue(time?: Cesium.JulianDate, result?: any): any;
    /**
     * 将此属性与提供的属性进行比较并返回, 如果两者相等返回true，否则为false
     * @param [other] - 比较的对象
     * @returns 两者是同一个对象
     */
    equals(other?: Cesium.Property): boolean;
}

/**
 * 面状： 柏油路面效果 材质
 * @param [options] - 参数对象，包括以下：
 * @param [options.color = Cesium.Color.ORANGE] - 颜色
 * @param [options.size = 0.02] - 块大小
 * @param [options.frequency = 0.2] - 粗糙度
 */
declare class PolyAsphaltMaterialProperty extends BaseMaterialProperty {
    constructor(options?: {
        color?: Cesium.Color;
        size?: number;
        frequency?: number;
    });
    /**
     * 颜色
     */
    color: Cesium.Color;
    /**
     * 块大小
     */
    size: number;
    /**
     * 粗糙度
     */
    frequency: number;
    /**
     * 获取 材质名称
     * @param [time] - 检索值的时间。
     * @returns 材质名称
     */
    getType(time?: Cesium.JulianDate): string;
    /**
     * 获取所提供时间的属性值。
     * @param [time] - 检索值的时间。
     * @param [result] - 用于存储值的对象，如果省略，则创建并返回一个新的实例。
     * @returns 修改的result参数或一个新的实例(如果没有提供result参数)。
     */
    getValue(time?: Cesium.JulianDate, result?: any): any;
    /**
     * 将此属性与提供的属性进行比较并返回, 如果两者相等返回true，否则为false
     * @param [other] - 比较的对象
     * @returns 两者是同一个对象
     */
    equals(other?: Cesium.Property): boolean;
}

/**
 * 面状：混合 材质
 * @param [options] - 参数对象，包括以下：
 * @param [options.evenColor = new Cesium.Color(1.0, 1.0, 1.0, 0.5)] - 浅色的颜色
 * @param [options.oddColor = new Cesium.Color(0.0, 0.0, 1.0, 0.5)] - 深色的颜色
 * @param [options.frequency = 10.0] - 频率
 */
declare class PolyBlobMaterialProperty extends BaseMaterialProperty {
    constructor(options?: {
        evenColor?: Cesium.Color;
        oddColor?: Cesium.Color;
        frequency?: number;
    });
    /**
     * 浅色的颜色
     */
    evenColor: Cesium.Color;
    /**
     * 深色的颜色
     */
    oddColor: Cesium.Color;
    /**
     * 频率
     */
    frequency: number;
    /**
     * 获取 材质名称
     * @param [time] - 检索值的时间。
     * @returns 材质名称
     */
    getType(time?: Cesium.JulianDate): string;
    /**
     * 获取所提供时间的属性值。
     * @param [time] - 检索值的时间。
     * @param [result] - 用于存储值的对象，如果省略，则创建并返回一个新的实例。
     * @returns 修改的result参数或一个新的实例(如果没有提供result参数)。
     */
    getValue(time?: Cesium.JulianDate, result?: any): any;
    /**
     * 将此属性与提供的属性进行比较并返回, 如果两者相等返回true，否则为false
     * @param [other] - 比较的对象
     * @returns 两者是同一个对象
     */
    equals(other?: Cesium.Property): boolean;
}

/**
 * 面状：碎石面 材质
 * @param [options] - 参数对象，包括以下：
 * @param [options.evenColor = new Cesium.Color(1.0, 1.0, 1.0, 0.5)] - 浅色的颜色
 * @param [options.oddColor = new Cesium.Color(0.0, 0.0, 1.0, 0.5)] - 深色的颜色
 * @param [options.frequency = 10.0] - 频率
 */
declare class PolyFacetMaterialProperty extends BaseMaterialProperty {
    constructor(options?: {
        evenColor?: Cesium.Color;
        oddColor?: Cesium.Color;
        frequency?: number;
    });
    /**
     * 获取 材质名称
     * @param [time] - 检索值的时间。
     * @returns 材质名称
     */
    getType(time?: Cesium.JulianDate): string;
}

/**
 * 面状： 渐变面 材质
 * @param [options] - 参数对象，包括以下：
 * @param [options.color = new Cesium.Color(1.0, 1.0, 0.0, 0.5)] - 颜色
 * @param [options.alphaPower = 1.5] - 透明度系数
 * @param [options.diffusePower = 1.6] - 漫射系数
 * @param [options.center = new Cesium.Cartesian2(0.5, 0.5)] - 渐变位置，默认在中心
 */
declare class PolyGradientMaterialProperty extends BaseMaterialProperty {
    constructor(options?: {
        color?: string | Cesium.Color;
        alphaPower?: number;
        diffusePower?: number;
        center?: Cesium.Cartesian2;
    });
    /**
     * 颜色
     */
    color: Cesium.Color;
    /**
     * 漫射系数
     */
    diffusePower: number;
    /**
     * 透明度系数
     */
    alphaPower: number;
    /**
     * 渐变位置，默认在中心
     */
    center: Cesium.Cartesian2;
    /**
     * 获取 材质名称
     * @param [time] - 检索值的时间。
     * @returns 材质名称
     */
    getType(time?: Cesium.JulianDate): string;
    /**
     * 获取所提供时间的属性值。
     * @param [time] - 检索值的时间。
     * @param [result] - 用于存储值的对象，如果省略，则创建并返回一个新的实例。
     * @returns 修改的result参数或一个新的实例(如果没有提供result参数)。
     */
    getValue(time?: Cesium.JulianDate, result?: any): any;
    /**
     * 将此属性与提供的属性进行比较并返回, 如果两者相等返回true，否则为false
     * @param [other] - 比较的对象
     * @returns 两者是同一个对象
     */
    equals(other?: Cesium.Property): boolean;
}

/**
 * 面状：草地面 材质
 * @param [options] - 参数对象，包括以下：
 * @param [options.evenColor = new Cesium.Color(1.0, 1.0, 1.0, 0.5)] - 浅色的颜色
 * @param [options.oddColor = new Cesium.Color(0.0, 0.0, 1.0, 0.5)] - 深色的颜色
 * @param [options.frequency = 10.0] - 频率
 */
declare class PolyGrassMaterialProperty extends BaseMaterialProperty {
    constructor(options?: {
        evenColor?: Cesium.Color;
        oddColor?: Cesium.Color;
        frequency?: number;
    });
    /**
     * 获取 材质名称
     * @param [time] - 检索值的时间。
     * @returns 材质名称
     */
    getType(time?: Cesium.JulianDate): string;
}

/**
 * 面状：混合 材质
 * @param [options] - 参数对象，包括以下：
 * @param [options.evenColor = new Cesium.Color(1.0, 1.0, 1.0, 0.5)] - 浅色的颜色
 * @param [options.oddColor = new Cesium.Color(0.0, 0.0, 1.0, 0.5)] - 深色的颜色
 * @param [options.frequency = 3.0] - 环频率
 * @param [options.noiseScale = new Cesium.Cartesian2(0.7, 0.5)] - 噪波比例
 * @param [options.grainFrequency = 27.0] - 颗粒的频率
 */
declare class PolyWoodMaterialProperty extends BaseMaterialProperty {
    constructor(options?: {
        evenColor?: Cesium.Color;
        oddColor?: Cesium.Color;
        frequency?: number;
        noiseScale?: Cesium.Cartesian2;
        grainFrequency?: number;
    });
    /**
     * 浅色的颜色
     */
    evenColor: Cesium.Color;
    /**
     * 深色的颜色
     */
    oddColor: Cesium.Color;
    /**
     * 环频率
     */
    frequency: number;
    /**
     * 噪波比例
     */
    noiseScale: Cesium.Cartesian2;
    /**
     * 颗粒的频率
     */
    grainFrequency: number;
    /**
     * 获取 材质名称
     * @param [time] - 检索值的时间。
     * @returns 材质名称
     */
    getType(time?: Cesium.JulianDate): string;
    /**
     * 获取所提供时间的属性值。
     * @param [time] - 检索值的时间。
     * @param [result] - 用于存储值的对象，如果省略，则创建并返回一个新的实例。
     * @returns 修改的result参数或一个新的实例(如果没有提供result参数)。
     */
    getValue(time?: Cesium.JulianDate, result?: any): any;
    /**
     * 将此属性与提供的属性进行比较并返回, 如果两者相等返回true，否则为false
     * @param [other] - 比较的对象
     * @returns 两者是同一个对象
     */
    equals(other?: Cesium.Property): boolean;
}

/**
 * 圆形: 雷达线(圆+旋转半径线) 材质
 * @param [options] - 参数对象，包括以下：
 * @param [options.color = new Cesium.Color(1, 0, 0, 1.0)] - 颜色
 * @param [options.speed = 5.0] - 速度，值越大越快
 */
declare class RadarLineMaterialProperty extends BaseMaterialProperty {
    constructor(options?: {
        color?: Cesium.Color;
        speed?: number;
    });
    /**
     * 颜色
     */
    color: Cesium.Color;
    /**
     * 速度
     */
    speed: number;
    /**
     * 获取 材质名称
     * @param [time] - 检索值的时间。
     * @returns 材质名称
     */
    getType(time?: Cesium.JulianDate): string;
    /**
     * 获取所提供时间的属性值。
     * @param [time] - 检索值的时间。
     * @param [result] - 用于存储值的对象，如果省略，则创建并返回一个新的实例。
     * @returns 修改的result参数或一个新的实例(如果没有提供result参数)。
     */
    getValue(time?: Cesium.JulianDate, result?: any): any;
    /**
     * 将此属性与提供的属性进行比较并返回, 如果两者相等返回true，否则为false
     * @param [other] - 比较的对象
     * @returns 两者是同一个对象
     */
    equals(other?: Cesium.Property): boolean;
}

/**
 * 圆形: 雷达线(圆+旋转半径线) 材质
 * @param [options] - 参数对象，包括以下：
 * @param [options.color = new Cesium.Color(1, 0, 0, 1.0)] - 颜色
 * @param [options.speed = 5.0] - 速度，值越大越快
 */
declare class RadarWaveMaterialProperty extends BaseMaterialProperty {
    constructor(options?: {
        color?: Cesium.Color;
        speed?: number;
    });
    /**
     * 颜色
     */
    color: Cesium.Color;
    /**
     * 速度
     */
    speed: number;
    /**
     * 获取 材质名称
     * @param [time] - 检索值的时间。
     * @returns 材质名称
     */
    getType(time?: Cesium.JulianDate): string;
    /**
     * 获取所提供时间的属性值。
     * @param [time] - 检索值的时间。
     * @param [result] - 用于存储值的对象，如果省略，则创建并返回一个新的实例。
     * @returns 修改的result参数或一个新的实例(如果没有提供result参数)。
     */
    getValue(time?: Cesium.JulianDate, result?: any): any;
    /**
     * 将此属性与提供的属性进行比较并返回, 如果两者相等返回true，否则为false
     * @param [other] - 比较的对象
     * @returns 两者是同一个对象
     */
    equals(other?: Cesium.Property): boolean;
}

/**
 * 矩形面： 轮播图  材质
 * @param [options] - 参数对象，包括以下：
 * @param options.image - 图片URL
 * @param [options.color = Cesium.Color.WHITE] - 颜色和透明度
 * @param [options.speed = 1] - 速度，值越大越快
 * @param [options.pure = false] - 是否纯色
 */
declare class RectSlideMaterialProperty extends BaseMaterialProperty {
    constructor(options?: {
        image: string;
        color?: Cesium.Color;
        speed?: number;
        pure?: boolean;
    });
    /**
     * 背景图片URL
     */
    image: string;
    /**
     * 背景图片颜色
     */
    color: Cesium.Color;
    /**
     * 速度，值越大越快
     */
    speed: number;
    /**
     * 是否纯色
     */
    pure: boolean;
    /**
     * 获取 材质名称
     * @param [time] - 检索值的时间。
     * @returns 材质名称
     */
    getType(time?: Cesium.JulianDate): string;
    /**
     * 获取所提供时间的属性值。
     * @param [time] - 检索值的时间。
     * @param [result] - 用于存储值的对象，如果省略，则创建并返回一个新的实例。
     * @returns 修改的result参数或一个新的实例(如果没有提供result参数)。
     */
    getValue(time?: Cesium.JulianDate, result?: any): any;
    /**
     * 将此属性与提供的属性进行比较并返回, 如果两者相等返回true，否则为false
     * @param [other] - 比较的对象
     * @returns 两者是同一个对象
     */
    equals(other?: Cesium.Property): boolean;
}

/**
 * 面状: 用于面状对象的 扫描线放大效果 材质属性
 * @param [options] - 参数对象，包括以下：
 * @param [options.color = Cesium.Color.YELLOW] - 颜色
 * @param [options.speed = 10] - 速度
 */
declare class ScanLineMaterialProperty extends BaseMaterialProperty {
    constructor(options?: {
        color?: string | Cesium.Color;
        speed?: number;
    });
    /**
     * 颜色
     */
    color: Cesium.Color;
    /**
     * 速度
     */
    speed: number;
    /**
     * 获取 材质名称
     * @param [time] - 检索值的时间。
     * @returns 材质名称
     */
    getType(time?: Cesium.JulianDate): string;
    /**
     * 获取所提供时间的属性值。
     * @param [time] - 检索值的时间。
     * @param [result] - 用于存储值的对象，如果省略，则创建并返回一个新的实例。
     * @returns 修改的result参数或一个新的实例(如果没有提供result参数)。
     */
    getValue(time?: Cesium.JulianDate, result?: any): any;
    /**
     * 将此属性与提供的属性进行比较并返回, 如果两者相等返回true，否则为false
     * @param [other] - 比较的对象
     * @returns 两者是同一个对象
     */
    equals(other?: Cesium.Property): boolean;
}

/**
 * 文字贴图 entity材质
 * @param [options] - 参数对象，包括以下：
 * @param [options.text] - 文本内容
 * @param [options.font_family = "楷体"] - 字体 ,可选项：微软雅黑,宋体,楷体,隶书,黑体,
 * @param [options.font_size = 30] - 字体大小
 * @param [options.font_weight = "normal"] - 是否加粗 ,可选项：bold (解释：是),normal (解释：否),
 * @param [options.font_style = "normal"] - 是否斜体 ,可选项：italic (解释：是),normal (解释：否),
 * @param [options.font = '30px normal normal 楷体'] - 上叙4个属性的一次性指定CSS字体的属性。
 * @param [options.fill = true] - 是否填充
 * @param [options.color = "#ffff00"] - 文本颜色
 * @param [options.stroke = false] - 是否描边文本。
 * @param [options.strokeColor = new Cesium.Color(1.0, 1.0, 1.0, 0.8)] - 描边的颜色。
 * @param [options.strokeWidth = 2] - 描边的宽度。
 * @param [options.background = false] - 是否背景色。
 * @param [options.backgroundColor = new Cesium.Color(1.0, 1.0, 1.0, 0.1)] - 画布的背景色。
 * @param [options.outlineWidth] - 边框的宽度。
 * @param [options.outlineColor = color] - 矩形边框的颜色。
 * @param [options.padding = 10] - 要在文本周围添加的填充的像素大小。
 * @param [options.textBaseline = 'top'] - 文本的基线。
 * @param [options.onCustomCanvas] - 支持对生成后的Canvas做自定义处理。
 * @param [options.speed = 0] - 不为0时呈现文字滚动效果，数字代表滚动速度
 */
declare class TextMaterialProperty extends Image2MaterialProperty {
    constructor(options?: {
        text?: string;
        font_family?: string;
        font_size?: number;
        font_weight?: string;
        font_style?: string;
        font?: string;
        fill?: boolean;
        color?: string;
        stroke?: boolean;
        strokeColor?: Cesium.Color;
        strokeWidth?: number;
        background?: boolean;
        backgroundColor?: Cesium.Color;
        outlineWidth?: number;
        outlineColor?: Cesium.Color;
        padding?: number;
        textBaseline?: string;
        onCustomCanvas?: (...params: any[]) => any;
        speed?: number;
    });
    /**
     * 是否透明
     */
    transparent: boolean;
    /**
     * 文本内容
     */
    text: string;
    /**
     * 文本样式
     */
    textStyles: any;
    /**
     * 背景图片URL
     */
    image: string;
}

/**
 * 墙体:  走马灯围墙 材质
 * @param [options] - 参数对象，包括以下：
 * @param options.image - 背景图片URL
 * @param [options.color = new Cesium.Color(0, 0, 0, 1.0)] - 背景图片颜色
 * @param [options.count = 1] - 数量
 * @param [options.reverse = false] - 方向，false是往下，true是往上
 * @param [options.speed = 5.0] - 速度，值越大越快
 * @param [options.bloom = false] - 是否泛光
 * @param [options.axisY = false] - 是否Y轴朝上
 */
declare class WallScrollMaterialProperty extends BaseMaterialProperty {
    constructor(options?: {
        image: string;
        color?: string | Cesium.Color;
        count?: number;
        reverse?: number;
        speed?: number;
        bloom?: boolean;
        axisY?: boolean;
    });
    /**
     * 背景图片URL
     */
    image: string;
    /**
     * 背景图片颜色
     */
    color: Cesium.Color;
    /**
     * 速度
     */
    speed: number;
    /**
     * 数量
     */
    count: number;
    /**
     * 方向，false是往下，true是往上
     */
    reverse: boolean;
    /**
     * 是否Y轴朝上
     */
    axisY: boolean;
    /**
     * 是否泛光
     */
    bloom: boolean;
    /**
     * 获取 材质名称
     * @param [time] - 检索值的时间。
     * @returns 材质名称
     */
    getType(time?: Cesium.JulianDate): string;
    /**
     * 获取所提供时间的属性值。
     * @param [time] - 检索值的时间。
     * @param [result] - 用于存储值的对象，如果省略，则创建并返回一个新的实例。
     * @returns 修改的result参数或一个新的实例(如果没有提供result参数)。
     */
    getValue(time?: Cesium.JulianDate, result?: any): any;
    /**
     * 将此属性与提供的属性进行比较并返回, 如果两者相等返回true，否则为false
     * @param [other] - 比较的对象
     * @returns 两者是同一个对象
     */
    equals(other?: Cesium.Property): boolean;
}

/**
 * 线状 流动效果 材质
 * @param [options] - 参数对象，包括以下：
 * @param options.specularMap - 图片路径，镜面反射纹理材质图片
 * @param [options.normalMap = Cesium.Material.DefaultImageId] - 图片路径，水正常扰动的法线图材质图片
 * @param [options.alpha = 0.2] - 透明度
 */
declare class WaterLightMaterialProperty extends BaseMaterialProperty {
    constructor(options?: {
        specularMap: string;
        normalMap?: string;
        alpha?: number;
    });
    /**
     * 图片路径，镜面反射纹理材质图片
     */
    specularMap: string;
    /**
     * 图片路径，水正常扰动的法线图材质图片
     */
    normalMap: string;
    /**
     * 透明度
     */
    alpha: number;
    /**
     * 获取 材质名称
     * @param [time] - 检索值的时间。
     * @returns 材质名称
     */
    getType(time?: Cesium.JulianDate): string;
    /**
     * 获取所提供时间的属性值。
     * @param [time] - 检索值的时间。
     * @param [result] - 用于存储值的对象，如果省略，则创建并返回一个新的实例。
     * @returns 修改的result参数或一个新的实例(如果没有提供result参数)。
     */
    getValue(time?: Cesium.JulianDate, result?: any): any;
    /**
     * 将此属性与提供的属性进行比较并返回, 如果两者相等返回true，否则为false
     * @param [other] - 比较的对象
     * @returns 两者是同一个对象
     */
    equals(other?: Cesium.Property): boolean;
}

/**
 * 水面效果材质
 * @param [options] - 参数对象，包括以下：
 * @param [options.baseWaterColor = new Cesium.Color(0.2, 0.3, 0.6, 1.0)] - 基础颜色
 * @param [options.blendColor = new Cesium.Color(0.0, 1.0, 0.699, 1.0)] - 从水中混合到非水域时使用的rgba颜色
 * @param [options.specularMap] - 单一通道纹理用来指示水域的面积
 * @param [options.normalMap] - 水正常扰动的法线图
 * @param [options.frequency = 100] - 控制波数的数字
 * @param [options.animationSpeed = 0.01] - 控制水的动画速度的数字
 * @param [options.amplitude = 10] - 控制水波振幅的数字
 * @param [options.specularIntensity = 0.5] - 控制镜面反射强度的数字
 * @param [options.fadeFactor = 1.0] - 衰减因子
 */
declare class WaterMaterialProperty extends BaseMaterialProperty {
    constructor(options?: {
        baseWaterColor?: string | Cesium.Color;
        blendColor?: string | Cesium.Color;
        specularMap?: string;
        normalMap?: string;
        frequency?: number;
        animationSpeed?: number;
        amplitude?: number;
        specularIntensity?: number;
        fadeFactor?: number;
    });
    /**
     * 基础颜色
     */
    baseWaterColor: Cesium.Color;
    /**
     * 从水中混合到非水域时使用的rgba颜色
     */
    blendColor: Cesium.Color;
    /**
     * 单一通道纹理用来指示水域的面积
     */
    specularMap: string;
    /**
     * 水正常扰动的法线图
     */
    normalMap: string;
    /**
     * 控制波数的数字
     */
    frequency: number;
    /**
     * 控制水的动画速度的数字
     */
    animationSpeed: number;
    /**
     * 控制水波振幅的数字
     */
    amplitude: number;
    /**
     * 控制镜面反射强度的数字
     */
    specularIntensity: number;
    /**
     * 衰减因子
     */
    fadeFactor: number;
    /**
     * 获取 材质名称
     * @param [time] - 检索值的时间。
     * @returns 材质名称
     */
    getType(time?: Cesium.JulianDate): string;
    /**
     * 获取所提供时间的属性值。
     * @param [time] - 检索值的时间。
     * @param [result] - 用于存储值的对象，如果省略，则创建并返回一个新的实例。
     * @returns 修改的result参数或一个新的实例(如果没有提供result参数)。
     */
    getValue(time?: Cesium.JulianDate, result?: any): any;
    /**
     * 将此属性与提供的属性进行比较并返回, 如果两者相等返回true，否则为false
     * @param [other] - 比较的对象
     * @returns 两者是同一个对象
     */
    equals(other?: Cesium.Property): boolean;
}

/**
 * 圆锥 波纹扩散效果 材质
 * @example
 * let primitive = new mars3d.graphic.CylinderPrimitive({
 *   position: [116.328775, 30.954602, 5000],
 *   style: {
 *     topRadius: 0.0,
 *     bottomRadius: 1500.0,
 *     length: 10000.0,
 *     material: new mars3d.material.CylinderWaveMaterial({
 *       color: 'rgba(255,0,0,0.7)',
 *       repeat: 30.0,
 *     }),
 *     faceForward: false,
 *     closed: true,
 *   },
 * })
 * graphicLayer.addGraphic(primitive)
 * @param [options] - 参数对象，包括以下：
 * @param [options.color = new Cesium.Color(2, 1, 0.0, 0.8)] - 颜色
 * @param [options.repeat = 30] - 圈数量
 * @param [options.thickness = 0.3] - 圈的宽度比例
 * @param [options.speed = 10] - 速度，值越大越快
 */
declare class CylinderWaveMaterial extends Cesium.Material {
    constructor(options?: {
        color?: string | Cesium.Color;
        repeat?: number;
        thickness?: number;
        speed?: number;
    });
}

/**
 * 文字贴图 primitive材质
 * @example
 * let primitive = new mars3d.graphic.WallPrimitive({
 *   positions: [
 *     [121.479343, 29.791419, 25],
 *     [121.479197, 29.791474, 25],
 *   ],
 *   style: {
 *     diffHeight: 5,
 *     material: new mars3d.material.TextMaterial({
 *       text: "火星科技",
 *       color: "#3388cc",
 *       outlineWidth: 4,
 *     }),
 *   },
 * })
 * graphicLayer.addGraphic(primitive)
 * @param [options] - 参数对象，包括以下：
 * @param [options.text] - 文本内容
 * @param [options.font_family = "楷体"] - 字体 ,可选项：微软雅黑,宋体,楷体,隶书,黑体,
 * @param [options.font_size = 30] - 字体大小
 * @param [options.font_weight = "normal"] - 是否加粗 ,可选项：bold (解释：是),normal (解释：否),
 * @param [options.font_style = "normal"] - 是否斜体 ,可选项：italic (解释：是),normal (解释：否),
 * @param [options.font = '30px normal normal 楷体'] - 上叙4个属性的一次性指定CSS字体的属性。
 * @param [options.fill = true] - 是否填充
 * @param [options.color = new Cesium.Color(1.0, 1.0, 0.0, 1.0)] - 文本颜色
 * @param [options.stroke = false] - 是否描边文本。
 * @param [options.strokeColor = new Cesium.Color(1.0, 1.0, 1.0, 0.8)] - 描边的颜色。
 * @param [options.strokeWidth = 2] - 描边的宽度。
 * @param [options.background = false] - 是否背景色。
 * @param [options.backgroundColor = new Cesium.Color(1.0, 1.0, 1.0, 0.1)] - 画布的背景色。
 * @param [options.outlineWidth] - 边框的宽度。
 * @param [options.outlineColor = color] - 矩形边框的颜色。
 * @param [options.padding = 10] - 要在文本周围添加的填充的像素大小。
 * @param [options.textBaseline = 'top'] - 文本的基线。
 * @param [options.speed = 0] - 不为0时呈现文字滚动效果，数字代表滚动速度
 */
declare class TextMaterial extends Cesium.Material {
    constructor(options?: {
        text?: string;
        font_family?: string;
        font_size?: number;
        font_weight?: string;
        font_style?: string;
        font?: string;
        fill?: boolean;
        color?: string;
        stroke?: boolean;
        strokeColor?: Cesium.Color;
        strokeWidth?: number;
        background?: boolean;
        backgroundColor?: Cesium.Color;
        outlineWidth?: number;
        outlineColor?: Cesium.Color;
        padding?: number;
        textBaseline?: string;
        speed?: number;
    });
}

/**
 * Echarts图层，
 * 【需要引入 echarts 库 和 mars3d-echarts 插件库】
 * @param [options] - 参数对象，包括以下：
 * @param [options.Echarts本身] - 支持Echarts本身所有Options参数，具体查阅 [Echarts配置项手册]{@link https://echarts.apache.org/zh/option.html}
 * @param [options.depthTest = true] - 是否进行计算深度判断，在地球背面或被遮挡时不显示（大数据时，需要关闭）
 * @param [options.fixedHeight = 0] - 点的固定的海拔高度
 * @param [options.clampToGround = false] - 点是否贴地
 * @param [options.pointerEvents = false] - 图层是否可以进行鼠标交互，为false时可以穿透操作及缩放地图
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 */
declare class EchartsLayer extends BaseLayer {
    constructor(options?: {
        Echarts本身?: any;
        depthTest?: boolean;
        fixedHeight?: number;
        clampToGround?: boolean;
        pointerEvents?: boolean;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
    });
    /**
     * echarts对象，是echarts.init方法返回的 echartsInstance 实例
     */
    readonly layer: HTMLCanvasElement;
    /**
     * 是否可以鼠标交互，为false时可以穿透操作及缩放地图，但无法进行鼠标交互及触发相关事件。true时无法缩放地球，但可以使用echarts相关的事件或toolitp等。
     */
    pointerEvents: boolean;
    /**
     * 改变图层canvas容器尺寸，在容器大小发生改变时需要手动调用。
     * @returns 无
     */
    resize(): void;
    /**
     * 设置图表实例的配置项以及数据，
     * 万能接口，所有参数和数据的修改都可以通过 setOption 完成，
     * ECharts 会合并新的参数和数据，然后刷新图表。
     * 如果开启动画的话，ECharts 找到两组数据之间的差异然后通过合适的动画去表现数据的变化。
     * @param option - 图表的配置项和数据，具体见 [Echarts配置项手册]{@link https://echarts.apache.org/zh/option.html}。
     * @param [notMerge = false] - 是否不跟之前设置的 option 进行合并。默认为 false。即表示合并。合并的规则，详见 组件合并模式。如果为 true，表示所有组件都会被删除，然后根据新 option 创建所有新组件。
     * @param [lazyUpdate = false] - 在设置完 option 后是否不立即更新图表，默认为 false，即同步立即更新。如果为 true，则会在下一个 animation frame 中，才更新图表。
     * @returns 无
     */
    setEchartsOption(option: any, notMerge?: boolean, lazyUpdate?: boolean): void;
    /**
     * 获取图层内所有数据的 矩形边界值
     * @param [options] - 控制参数
     * @param [options.isFormat = false] - 是否格式化，格式化时示例： { xmin: 73.16895, xmax: 134.86816, ymin: 12.2023, ymax: 54.11485 }
     * @returns isFormat：true时，返回格式化对象，isFormat：false时返回Cesium.Rectangle对象
     */
    getRectangle(options?: {
        isFormat?: boolean;
    }): Cesium.Rectangle | any;
    /**
     * 绑定事件处理函数,
     * @param eventName - 事件名称，全小写，例如'click'，'mousemove', 'legendselected' ,可以参考[echarts官网说明]{@link https://echarts.apache.org/zh/api.html#echartsInstance.on}
     * @param callback - 绑定的监听器回调方法
     * @param [context] - 侦听器的上下文(this关键字将指向的对象)。
     * @returns 当前对象本身,可以链式调用
     */
    on(eventName: string, callback: (...params: any[]) => any, context?: any): EchartsLayer;
    /**
     * 带条件的绑定事件处理函数
     * @param eventName - 事件名称，全小写，例如'click'，'mousemove', 'legendselected'
     * @param query - 可选的过滤条件，能够只在指定的组件或者元素上进行响应。可以参考[echarts官网说明]{@link https://echarts.apache.org/zh/api.html#echartsInstance.on}
     * @param callback - 绑定的监听器回调方法
     * @param [context] - 侦听器的上下文(this关键字将指向的对象)
     * @returns 当前对象本身,可以链式调用
     */
    onByQuery(eventName: string, query: string | any, callback: (...params: any[]) => any, context?: any): EchartsLayer;
    /**
     * 解除绑定指定类型事件监听器
     * @param eventName - 事件名称，全小写，例如'click'，'mousemove', 'legendselected'
     * @param [callback] - 绑定的监听器回调方法,未传值时解绑所有指定类型对应事件
     * @param [context] - 侦听器的上下文(this关键字将指向的对象)。
     * @returns 当前对象本身,可以链式调用
     */
    off(eventName: string, callback?: (...params: any[]) => any, context?: any): EchartsLayer;
}

/**
 * 热力图图层，基于heatmap.js库渲染。
 * 【需要引入 heatmap.js 库 和 mars3d-heatmap 插件库】
 * @param options - 参数对象，包括以下：
 * @param [options.positions] - 坐标数据集合（含value热力值），有热力值时，传入LatLngPoint数组，热力值为value字段。示例:[{lat:31.123,lng:103.568,value:1.2},{lat:31.233,lng:103.938,value:2.3}]
 * @param [options.rectangle] - 坐标的矩形区域范围，默认内部自动计算
 * @param options.rectangle.xmin - 最小经度值
 * @param options.rectangle.xmax - 最大经度值
 * @param options.rectangle.ymin - 最小纬度值
 * @param options.rectangle.ymax - 最大纬度值
 * @param [options.max] - 数据集的value值上限，默认内部计算
 * @param [options.min] - 数据集的value值下限，默认内部计算
 * @param [options.heatStyle] - heatmap热力图本身configObject参数，详情也可查阅 [heatmap文档]{@link https://www.patrick-wied.at/static/heatmapjs/docs.html}
 * @param [options.heatStyle.maxOpacity = 0.8] - 最大不透明度，取值范围0.0-1.0。
 * @param [options.heatStyle.minOpacity = 0.1] - 最小不透明度，取值范围0.0-1.0。
 * @param [options.heatStyle.blur = 0.85] - 将应用于所有数据点的模糊因子。模糊因子越高，渐变将越平滑
 * @param [options.heatStyle.radius = 25] - 每个数据点将具有的半径（如果未在数据点本身上指定）
 * @param [options.heatStyle.gradient] - 色带，表示渐变的对象，示例：{ 0.4: 'blue', 0.6: 'green',0.8: 'yellow',0.9: 'red' }
 * @param [options.style] - 矢量对象样式参数，还包括：
 * @param [options.style.type] - 渲染类型，支持："image"：ImageLayer图片展示, "graphic"：普通RectanglePrimitive矢量矩形展示, "arc"：曲面RectanglePrimitive矢量矩形展示
 * @param [options.style.opacity = 1] - 透明度
 * @param [options.style.height = 0] - 高度，相对于椭球面的高度。
 * @param [options.style.arc = false] - 是否显示曲面热力图，同 type:"arc"
 * @param [options.style.arcRadiusScale = 1.5] - 曲面热力图时，radius扩大比例
 * @param [options.style.arcBlurScale = 1.5] - 曲面热力图时，blur扩大比例
 * @param [options.style.arcDirection = 1] - 曲面热力图时，凹陷的方向，1向上，-1向下，0双面
 * @param [options.style.diffHeight] - 曲面热力图时，曲面的起伏差值高，默认根据数据范围的比例自动计算。
 * @param [options.style.多个参数] - rectangle矩形支持的样式
 * @param [options.maxCanvasSize = 5000] - Canvas最大尺寸（单位：像素），调大精度更高，但过大容易内存溢出
 * @param [options.minCanvasSize = 700] - Canvas最小尺寸（单位：像素）
 * @param [options.delayTime = 2] - 显示数据时的过渡动画时长（单位：秒）
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 */
declare class HeatLayer extends BaseLayer {
    constructor(options: {
        positions?: LngLatPoint[] | Cesium.Cartesian3[] | any;
        rectangle?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
        };
        max?: number;
        min?: number;
        heatStyle?: {
            maxOpacity?: number;
            minOpacity?: number;
            blur?: number;
            radius?: number;
            gradient?: any;
        };
        style?: {
            type?: string;
            opacity?: number;
            height?: number;
            arc?: boolean;
            arcRadiusScale?: number;
            arcBlurScale?: number;
            arcDirection?: number;
            diffHeight?: number;
            多个参数?: RectanglePrimitive.StyleOptions | any;
        };
        maxCanvasSize?: number;
        minCanvasSize?: number;
        delayTime?: number;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
    });
    /**
     * 矢量数据图层
     */
    readonly layer: GraphicLayer;
    /**
     * heatmap热力图本身configObject参数，详情也可查阅 [heatmap文档]{@link https://www.patrick-wied.at/static/heatmapjs/docs.html}
     */
    heatStyle: any;
    /**
     * 矩形的样式参数
     */
    style: RectanglePrimitive.StyleOptions | any;
    /**
     * 坐标数据集合（含value热力值），示例:[{lat:31.123,lng:103.568,value:1.2},{lat:31.233,lng:103.938,value:2.3}] 。
     * 平滑更新建议使用setPositions方法
     */
    positions: Cesium.Cartesian3[] | LngLatPoint[];
    /**
     * 位置坐标(数组对象)，示例 [ [123.123456,32.654321,198.7], [111.123456,22.654321,50.7] ]
     */
    readonly coordinates: any[][];
    /**
     * 坐标数据对应的矩形边界
     */
    readonly rectangle: Cesium.Rectangle;
    /**
     * 添加新的坐标点（含热力值）
     * @param item - 坐标点（含热力值），示例: {lat:31.123,lng:103.568,value:1.2}
     * @param [isGD] - 是否固定区域坐标，true时可以平滑更新
     * @returns 无
     */
    addPosition(item: Cesium.Cartesian3 | LngLatPoint, isGD?: boolean): void;
    /**
     * 更新所有坐标点（含热力值）数据
     * @param arr - 坐标点（含热力值），示例:[{lat:31.123,lng:103.568,value:1.2},{lat:31.233,lng:103.938,value:2.3}]
     * @param [isGD] - 是否固定区域坐标，true时可以平滑更新
     * @returns 无
     */
    setPositions(arr: Cesium.Cartesian3[] | LngLatPoint[], isGD?: boolean): void;
    /**
     * 清除矢量对象
     * @returns 无
     */
    clear(): void;
    /**
     * 获取图层内所有数据的 矩形边界值
     * @param [options] - 控制参数
     * @param [options.isFormat = false] - 是否格式化，格式化时示例： { xmin: 73.16895, xmax: 134.86816, ymin: 12.2023, ymax: 54.11485 }
     * @returns isFormat：true时，返回格式化对象，isFormat：false时返回Cesium.Rectangle对象
     */
    getRectangle(options?: {
        isFormat?: boolean;
    }): Cesium.Rectangle | any;
    /**
     * 根据坐标点获取其对应的value值和颜色值
     * @param item - 坐标点
     * @returns 格式为 {"x":2081,"y":767,"value":3,"color":"rgba(209,231,0,195)"}
     */
    getPointData(item: Cesium.Cartesian3 | LngLatPoint): any;
}

/**
 * MapV图层
 * 【需要引入 mapv.js 库 和 mars3d-mapv 插件库】
 * @param options - 图层参数，包括：
 * @param [options.data] - new mapv.DataSet(data)的data值，如有传入时可以用于替代dataSet参数
 * @param [options.depthTest = true] - 是否进行计算深度判断，在地球背面或被遮挡时不显示（大数据时，需要关闭）
 * @param [options.fixedHeight = 0] - 点的固定的海拔高度
 * @param [options.clampToGround = false] - 点是否贴地
 * @param [options.多个参数] - 支持mapv本身所有drawOptions图层样式参数，具体查阅 [mapv库drawOptions文档]{@link https://github.com/huiyan-fe/mapv/wiki/%E7%B1%BB%E5%8F%82%E8%80%83} ，也可以 [在线编辑图层样式]{@link https://mapv.baidu.com/editor/}
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 * @param [dataSet] - mapv.DataSet数据集,可以参考[ MapV数据集对象说明]{@link https://github.com/huiyan-fe/mapv/blob/master/src/data/DataSet.md}
 */
declare class MapVLayer extends BaseLayer {
    constructor(options: {
        data?: any;
        depthTest?: boolean;
        fixedHeight?: number;
        clampToGround?: boolean;
        多个参数?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
    } | any, dataSet?: any);
    /**
     * 图层对应的Canvas对象
     */
    readonly canvas: HTMLCanvasElement;
    /**
     * 新增mapv数据
     * @param dataSet - mapv.DataSet数据集,可以参考[ MapV数据集对象说明]{@link https://github.com/huiyan-fe/mapv/blob/master/src/data/DataSet.md}
     * @returns 无
     */
    addData(dataSet: any): void;
    /**
     * 更新mapv数据
     * @param dataSet - mapv.DataSet数据集,可以参考[ MapV数据集对象说明]{@link https://github.com/huiyan-fe/mapv/blob/master/src/data/DataSet.md}
     * @returns 无
     */
    updateData(dataSet: any): void;
    /**
     * 获取数据
     * @returns mapv.DataSet数据集,可以参考[ MapV数据集对象说明]{@link https://github.com/huiyan-fe/mapv/blob/master/src/data/DataSet.md}
     */
    getData(): any;
    /**
     * 删除指定数据
     * @param data - mapv.DataSet数据集
     * @returns 无
     */
    removeData(data: any): void;
    /**
     * 删除所有数据
     * @returns 无
     */
    removeAllData(): void;
    /**
     * 重绘图层
     * @returns 无
     */
    draw(): void;
    /**
     * 改变图层canvas容器尺寸
     * @returns 无
     */
    resize(): void;
    /**
     * 获取图层内所有数据的 矩形边界值
     * @param [options] - 控制参数
     * @param [options.isFormat = false] - 是否格式化，格式化时示例： { xmin: 73.16895, xmax: 134.86816, ymin: 12.2023, ymax: 54.11485 }
     * @returns isFormat：true时，返回格式化对象，isFormat：false时返回Cesium.Rectangle对象
     */
    getRectangle(options?: {
        isFormat?: boolean;
    }): Cesium.Rectangle | any;
    /**
     * 绑定事件处理函数,
     * @param eventName - 事件名称，全小写，例如'click'，'mouseMove'
     * @param callback - 绑定的监听器回调方法
     * @param [context] - 侦听器的上下文(this关键字将指向的对象)。
     * @returns 当前对象本身,可以链式调用
     */
    on(eventName: string, callback: (...params: any[]) => any, context?: any): EchartsLayer;
    /**
     * 解除绑定指定类型事件监听器
     * @param eventName - 事件名称，全小写，例如'click'，'mouseMove'
     * @param [callback] - 绑定的监听器回调方法,未传值时解绑所有指定类型对应事件
     * @returns 当前对象本身,可以链式调用
     */
    off(eventName: string, callback?: (...params: any[]) => any): EchartsLayer;
    /**
     * 从地图上移除，同map.removeThing
     * @param [destroy] - 是否调用destroy释放
     * @returns 无
     */
    remove(destroy?: boolean): void;
}

/**
 * 视锥体的类型
 */
declare enum SensorType {
    /**
     * 四棱锥
     */
    Rect = 0,
    /**
     * 圆锥
     */
    Conic = 1
}

/**
 * 卫星TLE和SGP4相关算法类
 * @param tle1 - 卫星两行轨道数（TLE） 的tle1，每行69个字符, 示例：'1 39150U 13018A   18309.20646405  .00000034  00000-0  12253-4 0  9993'
 * @param tle2 - 卫星两行轨道数（TLE） 的tle2，每行69个字符, 示例：'2 39150  97.9189  29.2064 0018076 220.9170 139.0692 14.76532215297913'
 * @param [name] - 卫星名称
 */
declare class Tle {
    constructor(tle1: string, tle2: string, name?: string);
    /**
     * COSPAR国际代号,国际空间研究委员会制定.
     */
    readonly cospar: string;
    /**
     * NORAD 空间目录号,北美空防司令部制定。
     * tle1的第3-7列
     */
    readonly norad: number;
    /**
     * 卫星类别（U表示不保密，可供公众使用的；C 表示保密，仅限NORAD使用；S表示保密的，仅限NORAD使用）,
     * tle1的第8列
     */
    readonly classification: string;
    /**
     * 返回发射年份(最后两位数字)，这是COSPAR id的一部分(国际指示器)，
     * tle1的第10–11列
     */
    readonly intDesignatorYear: number;
    /**
     * 返回当年的发射顺序编号，这是COSPAR id的一部分(国际指示器)，
     * tle1的第12–14列
     */
    readonly intDesignatorLaunchnumber: number;
    /**
     * 发射卫星个数（A表示是第一个，如果一次发射多颗卫星，使用26个英文字母排序；如果超过了26个编号，则使用两位字母，如AA、AB、AC编号），这是COSPAR id的一部分(国际指示器)，
     * tle1的第15–17列
     */
    readonly intDesignatorPieceOfLaunch: string;
    /**
     * TLE历时（年份后两位），
     * tle1的第19–20列
     */
    readonly epochYear: number;
    /**
     * TLE历时 (用十进制小数表示一年中的第几日和日中的小数部分)，
     * tle1的第21–32列
     */
    readonly epochDay: number;
    /**
     * 平均运动的一阶时间导数，用来计算每一天平均运动的变化带来的轨道漂移，提供给轨道计算软件预测卫星的位置。两行式轨道数据使用这个数据校准卫星的位置。
     * tle1的第34–43列
     */
    readonly firstTimeDerivative: number;
    /**
     * 平均运动的二阶时间导数，用来计算每一天平均运动的变化带来的轨道漂移，提供给轨道计算软件预测卫星的位置。
     * tle1的第45–52列
     */
    readonly secondTimeDerivative: number;
    /**
     * BSTAR阻力系数，用于大气阻力对卫星运动的影响。
     * tle1的第45–52列
     */
    readonly bstarDrag: number;
    /**
     * 美国空军空间指挥中心内部使用的为1；美国空军空间指挥中心以外公开使用标识为0。
     * tle1的第63列
     */
    readonly orbitModel: number;
    /**
     * 星历编号，TLE数据按新发现卫星的先后顺序的编号，
     * tle1的第65–68列
     */
    readonly tleSetnumber: number;
    /**
     * 校验和，指这一行的所有非数字字符，按照“字母、空格、句点、正号= 0；负号=1”的规则换算成0和1后，将这一行中原来的全部数字加起来，以10为模计算后所得的和。校验和可以检查出90%的数据存储或传送错误。按十进制加起来的个位数字的校验和，用于精确纠正误差。
     * tle1的第69列
     */
    readonly checksum1: number;
    /**
     * 轨道的交角是指天体的轨道面和地球赤道面之间的夹度，用0～90°来表示顺行轨道（从地球北极上空看是逆时针运行）；用90～180°表示逆行轨道（从地球北极上空看是顺时针运行）。
     * tle2的第09–16列
     */
    readonly inclination: number;
    /**
     * 升交点赤经，升交点赤经是指卫星由南到北穿过地球赤道平面时，与地球赤道平面的交点。
     * tle2的第18–25列
     */
    readonly rightAscension: number;
    /**
     * 轨道偏心率，轨道离心率是指卫星椭圆轨道的中心点到地球的球心点的距离（c）除以卫星轨道半长轴(a)得到的一个0（圆型）到1（抛物线）之间的小数值。
     * tle2的第27–33列
     */
    readonly eccentricity: number;
    /**
     * 近地点幅角，
     * tle2的第35–42列
     */
    readonly perigee: number;
    /**
     * 平近点角，
     * tle2的第44–51列
     */
    readonly meanAnomaly: number;
    /**
     * 每天绕地球公转圈数(平均运动)，
     * tle2的第53–63列
     */
    readonly meanMotion: number;
    /**
     * 卫星的运行周期（单位：分钟）
     */
    readonly period: number;
    /**
     * 发射以来飞行的圈数，
     * tle2的第64–68列
     */
    readonly revnumberAtEpoch: number;
    /**
     * 校验和，
     * tle2的第69列
     */
    readonly checksum2: number;
    /**
     * 获取卫星指定时间所在的 ECEF坐标
     * @param datetime - 指定的时间
     * @returns ECEF(地心地固坐标系) 坐标
     */
    getEcfPosition(datetime: Date | Cesium.JulianDate | number): Cesium.Cartesian3 | undefined;
    /**
     * 获取卫星指定时间所在的 ECI惯性坐标
     * @param datetime - 指定的时间
     * @returns ECI(地心惯性坐标系)坐标
     */
    getEciPosition(datetime: Date | Cesium.JulianDate | number): Cesium.Cartesian3 | undefined;
    /**
     * 获取卫星指定时间所在的 ECI惯性坐标和地理坐标
     * @param datetime - 指定的时间
     * @returns ECI惯性坐标和地理坐标等信息
     */
    getEciPositionAndGeodetic(datetime: Date | Cesium.JulianDate | number): any | undefined;
    /**
     * 获取卫星指定时间 所在的位置坐标(经纬度)
     * @param datetime - 指定的时间
     * @returns 卫星当前经纬度位置
     */
    getPoint(datetime: Date | Cesium.JulianDate | number): LngLatPoint | undefined;
    /**
     * 获取 地面地点 对卫星的 天文观测值
     * @param point - 地面地点经纬度坐标
     * @param datetime - 指定的时间
     * @returns 观测值
     */
    getLookAngles(point: LngLatPoint, datetime: Date | Cesium.JulianDate | number): Tle.LookAngles;
    /**
     * 计算卫星指定时间所在的 经纬度位置
     * @param tle1 - 卫星TLE的第一行
     * @param tle2 - 卫星TLE的第二行
     * @param datetime - 指定的时间
     * @returns 卫星当前经纬度位置
     */
    static getPoint(tle1: string, tle2: string, datetime: Date | Cesium.JulianDate | number): LngLatPoint | undefined;
    /**
     * 获取卫星指定时间所在的 ECEF坐标
     * @param tle1 - 卫星TLE的第一行
     * @param tle2 - 卫星TLE的第二行
     * @param datetime - 指定的时间
     * @returns ECEF(地心地固坐标系) 坐标
     */
    static getEcfPosition(tle1: string, tle2: string, datetime: Date | Cesium.JulianDate | number): Cesium.Cartesian3 | undefined;
    /**
     * 获取 格林尼治恒星时(GMST)时间
     * @param datetime - 时间对象
     * @returns 格林尼治恒星时(GMST)时间
     */
    static gstime(datetime: Date | Cesium.JulianDate): number;
    /**
     * ECI惯性系坐标 转换为 经纬度坐标
     * @param positionEci - ECI(地心惯性坐标系) 坐标
     * @param datetime - 指定时间, number时请传入格林尼治恒星时(GMST)时间
     * @returns 经纬度坐标
     */
    static eciToGeodetic(positionEci: Cesium.Cartesian3, datetime: Date | Cesium.JulianDate | number): LngLatPoint;
    /**
     * ECI坐标 转换为 ECEF坐标
     * @param positionEci - ECI(地心惯性坐标系)坐标
     * @param datetime - 指定时间, number时请传入格林尼治恒星时(GMST)时间
     * @returns ECEF(地心地固坐标系) 坐标
     */
    static eciToEcf(positionEci: Cesium.Cartesian3, datetime: Date | Cesium.JulianDate | number): Cesium.Cartesian3;
    /**
     * ECEF坐标 转换为 ECI坐标
     * @param positionEcf - ECEF(地心地固坐标系) 坐标
     * @param datetime - 指定时间, number时请传入格林尼治恒星时(GMST)时间
     * @returns ECI(地心惯性坐标系)坐标
     */
    static ecfToEci(positionEcf: Cesium.Cartesian3, datetime: Date | Cesium.JulianDate | number): Cesium.Cartesian3;
    /**
     * 卫星开普勒六根数转换到两行轨道根数 【测试算法，待验证优化】
     * @param startYear - 开始年,比如2017年时传入17
     * @param startTime - 开始时间，每年1月1日0点为0，后逐渐累积，整数部分为日，小数部分为时分秒
     * @param six - 轨道六根数,顺序为:
     *   Mean:平均运动（每日绕行圈数）必须小于100,
     *   Eccentricity:离心率（小数,小于1）,
     *   Inclination:轨道的交角（deg），不能是负数,
     *   Argument of perigee :近地点角矩(deg)，不超过360,
     *   RAAN :升交点赤经（deg），不超过360,
     *   Mean :在轨圈数
     * @param name - 卫星两位数编号，如01,最多五位数
     * @returns 两行轨道根数
     */
    static coe2tle(startYear: number, startTime: number, six: number[], name: string): string[];
}

declare namespace Tle {
    /**
     * 从地面上某点的天文观测角度等值。
     * @property position - 卫星的当前位置
     * @property range - 与卫星的距离，单位：米
     * @property azimuth - 方位角，角度值
     * @property elevation - 仰角，角度值
     */
    type LookAngles = {
        position: Cesium.Cartesian3;
        range: number;
        azimuth: number;
        elevation: number;
    };
}

declare namespace CamberRadar {
    /**
     * 双曲面拱形雷达 支持的样式信息
     * @property [color = "#00FF00"] - 颜色
     * @property [opacity = 1.0] - 透明度, 取值范围：0.0-1.0
     * @property [outline = true] - 是否边线
     * @property [outlineColor = new Cesium.Color(1.0, 0.0, 0.0)] - 边线颜色
     * @property startRadius - 内曲面半径 （单位：米）
     * @property radius - 外曲面半径 （单位：米）
     * @property [startFovH = -50] - 左横截面角度（角度值）
     * @property [endFovH = 50] - 右横截面角度（角度值）
     * @property [startFovV = 5] - 垂直起始角度（角度值）
     * @property [endFovV = 85] - 垂直结束角度（角度值）
     * @property [segmentH = 60] - 垂直方向(类似经度线)分割数
     * @property [segmentV = 20] - 水平方向(类似纬度线)分割数
     * @property [heading = 0] - 方向角 （度数值，0-360度）
     * @property [pitch = 0] - 俯仰角（度数值，0-360度）
     * @property [roll = 0] - 翻滚角（度数值，0-360度）
     * @property [translucent = true] - 当true时，几何图形将显示为半透明，因此{@link Cesium.PerInstanceColorAppearance#renderState}将启用alpha混合。
     * @property [closed = true] - 当true时，几何图形将被关闭，因此{@link Cesium.PerInstanceColorAppearance#renderState}启用了背面剔除。
     */
    type StyleOptions = any | {
        color?: string | Cesium.Color;
        opacity?: number;
        outline?: boolean;
        outlineColor?: string | Cesium.Color;
        startRadius: number;
        radius: number;
        startFovH?: number;
        endFovH?: number;
        startFovV?: number;
        endFovV?: number;
        segmentH?: number;
        segmentV?: number;
        subSegmentH?: number;
        subSegmentV?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        translucent?: boolean;
        closed?: boolean;
    };
}

/**
 * 双曲面拱形雷达，该对象暂不支持鼠标交互和拾取,
 * 【需要引入  mars3d-space 插件库】
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
 */
declare class CamberRadar extends BasePointPrimitive {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | number[];
        style: CamberRadar.StyleOptions | any;
        attr?: any;
        id?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 内曲面半径 （单位：米）
     */
    startRadius: number;
    /**
     * 外曲面半径 （单位：米）
     */
    radius: number;
    /**
     * 左横截面角度（角度值）
     */
    startFovV: number;
    /**
     * 右横截面角度（角度值）
     */
    endFovV: number;
    /**
     * 垂直起始角度（角度值）
     */
    startFovH: number;
    /**
     * 垂直结束角度（角度值）
     */
    endFovH: number;
    /**
     * 颜色
     */
    color: Cesium.Color;
    /**
     * 设置透明度
     * @param value - 透明度
     * @returns 无
     */
    setOpacity(value: number): void;
}

declare namespace ConicSensor {
    /**
     * 当前类支持的{@link EventType}事件类型
     * @example
     * //绑定监听事件
     * graphic.on(mars3d.EventType.postUpdate, function (event) {
     *   console.log('对象更新了', event)
     * })
     * @property preUpdate - 更新前
     * @property postUpdate - 更新后
     */
    type EventType = {
        preUpdate: string;
        postUpdate: string;
    };
    /**
     * 圆锥体（单目标雷达） 支持的样式信息
     * @property [angle = 85] - 夹角，半场角度，取值范围 0.1-89.9
     * @property [length = 100] - 半径长度（米）
     * @property [heading = 0] - 方向角 （角度值 0-360）
     * @property [pitch = 0] - 俯仰角（角度值 0-360）
     * @property [roll = 0] - 翻滚角（角度值 0-360）
     * @property [color = Cesium.Color.YELLOW] - 颜色
     * @property [opacity = 1.0] - 透明度, 取值范围：0.0-1.0
     * @property [outline = false] - 是否显示边线
     * @property [outlineColor = color] - 边线颜色
     * @property [topShow = true] - 是否显示顶
     * @property [topOutlineShow = true] - 是否显示顶边线
     * @property [shadowShow = false] - 是否显示地面投影
     * @property [rayEllipsoid = false] - 是否求交地球计算动态length
     * @property [hideRayEllipsoid = false] - 在地球相交时 是否隐藏
     * @property [flat = false] - 当true时，在片段着色器中使用平面着色，不考虑光照。
     * @property [faceForward = false] - 当true时，片段着色器根据需要翻转表面的法线，以确保法线面向查看器以避免黑点。
     * @property [translucent = true] - 当true时，几何图形将显示为半透明，因此{@link Cesium.PerInstanceColorAppearance#renderState}将启用alpha混合。
     * @property [closed = true] - 当true时，几何图形将被关闭，因此{@link Cesium.PerInstanceColorAppearance#renderState}启用了背面剔除。
     */
    type StyleOptions = any | {
        angle?: number;
        length?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        color?: string | Cesium.Color;
        opacity?: number;
        outline?: boolean;
        outlineColor?: string | Cesium.Color;
        topShow?: boolean;
        topOutlineShow?: boolean;
        shadowShow?: boolean;
        rayEllipsoid?: boolean;
        hideRayEllipsoid?: boolean;
        flat?: boolean;
        faceForward?: boolean;
        translucent?: boolean;
        closed?: boolean;
    };
}

/**
 * 圆锥体（单目标雷达），
 * 【需要引入  mars3d-space 插件库】
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.lookAt] - 椎体方向追踪的目标（椎体方向跟随变化，位置不变）
 * @param [options.fixedFrameTransform = Cesium.Transforms.eastNorthUpToFixedFrame] - 参考系
 * @param [options.revers = false] - 是否反转朝向
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 */
declare class ConicSensor extends BasePointPrimitive {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | number[];
        style: ConicSensor.StyleOptions | any;
        attr?: any;
        lookAt?: Cesium.Cartesian3 | Cesium.PositionProperty;
        fixedFrameTransform?: Cesium.Transforms.LocalFrameToFixedFrame;
        revers?: boolean;
        id?: string | number;
        name?: string;
        show?: boolean;
    });
    /**
     * 椎体方向追踪的目标（椎体方向跟随变化，位置不变）
     */
    lookAt: Cesium.Cartesian3 | Cesium.PositionProperty;
    /**
     * 颜色
     */
    color: Cesium.Color;
    /**
     * 边线颜色
     */
    outlineColor: Cesium.Color;
    /**
     * 是否显示边线
     */
    outline: boolean;
    /**
     * 是否显示顶
     */
    topShow: boolean;
    /**
     * 是否显示顶边线
     */
    topOutlineShow: boolean;
    /**
     * 夹角，半场角度，取值范围 0.1-89.9
     */
    angle: number;
    /**
     * 半径长度（米）
     */
    length: number;
    /**
     * 四周方向角，0-360度角度值
     */
    heading: number;
    /**
     * 四周方向角，弧度值
     */
    readonly headingRadians: number;
    /**
     * 俯仰角，上下摇摆的角度，0-360度角度值
     */
    pitch: number;
    /**
     * 滚转角，左右摆动的角度，0-360度角度值
     */
    roll: number;
    /**
     * 是否显示地面投影
     */
    shadowShow: boolean;
    /**
     * 获取当前转换计算模型矩阵。如果方向或位置未定义，则返回undefined。
     */
    readonly matrix: Cesium.Matrix4;
    /**
     * 获取视锥体射出length半径长度后的点坐标
     */
    readonly rayPosition: Cesium.Cartesian3;
    /**
     * 是否反向
     */
    readonly reverse: boolean;
    /**
     * 是否与地球相交，当 rayEllipsoid：true时才有效。
     */
    readonly intersectEllipsoid: boolean;
    /**
     * 设置透明度
     * @param value - 透明度
     * @returns 无
     */
    setOpacity(value: number): void;
    /**
     * 获取射线向地面与地球的的大概距离
     * @returns 距离值，单位：米
     */
    getRayEarthLength(): number;
    /**
     * 获取射线向地面与地球的4个交点坐标
     * @returns 坐标数组
     */
    getRayEarthPositions(): Cesium.Cartesian3[];
    /**
     * 矢量数据对应的 Cesium内部对象 (不同子类中实现)
     */
    readonly czmObject: Cesium.Entity | Cesium.Primitive | Cesium.GroundPrimitive | Cesium.ClassificationPrimitive | any;
}

declare namespace RectSensor {
    /**
     * 当前类支持的{@link EventType}事件类型
     * @example
     * //绑定监听事件
     * graphic.on(mars3d.EventType.postUpdate, function (event) {
     *   console.log('对象更新了', event)
     * })
     * @property preUpdate - 更新前
     * @property postUpdate - 更新后
     */
    type EventType = {
        preUpdate: string;
        postUpdate: string;
    };
    /**
     * 四棱锥体 支持的样式信息
     * @property [angle1 = 5] - 夹角1，半场角度，取值范围 0.1-89.9
     * @property [angle2 = 5] - 夹角2，半场角度，取值范围 0.1-89.9
     * @property [angle = 5] - 夹角1和夹角2相同时，可以传入angle一个属性
     * @property [length = 100] - 半径长度（米）
     * @property [heading = 0] - 方向角 （角度值 0-360）
     * @property [pitch = 0] - 俯仰角（角度值 0-360）
     * @property [roll = 0] - 翻滚角（角度值 0-360）
     * @property [color = Cesium.Color.YELLOW] - 颜色
     * @property [opacity = 1.0] - 透明度, 取值范围：0.0-1.0
     * @property [outline = false] - 是否显示边线
     * @property [outlineColor = color] - 边线颜色
     * @property [topShow = true] - 是否显示顶
     * @property [topOutlineShow = outline] - 是否显示顶边线
     * @property [topSteps = 8] - 顶边线数量
     * @property [rayEllipsoid = false] - 是否求交地球计算动态length
     * @property [hideRayEllipsoid = false] - 在地球相交时 是否隐藏
     * @property [flat = false] - 当true时，在片段着色器中使用平面着色，不考虑光照。
     * @property [faceForward = false] - 当true时，片段着色器根据需要翻转表面的法线，以确保法线面向查看器以避免黑点。
     * @property [translucent = true] - 当true时，几何图形将显示为半透明，因此{@link Cesium.PerInstanceColorAppearance#renderState}将启用alpha混合。
     * @property [closed = false] - 当true时，几何图形将被关闭，因此{@link Cesium.PerInstanceColorAppearance#renderState}启用了背面剔除。
     */
    type StyleOptions = any | {
        angle1?: number;
        angle2?: number;
        angle?: number;
        length?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        color?: string | Cesium.Color;
        opacity?: number;
        outline?: boolean;
        outlineColor?: string | Cesium.Color;
        topShow?: boolean;
        topOutlineShow?: boolean;
        topSteps?: number;
        rayEllipsoid?: boolean;
        hideRayEllipsoid?: boolean;
        flat?: boolean;
        faceForward?: boolean;
        translucent?: boolean;
        closed?: boolean;
    };
}

/**
 * 四棱锥体，
 * 【需要引入  mars3d-space 插件库】
 * @param options - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.lookAt] - 椎体方向追踪的目标（椎体方向跟随变化，位置不变）
 * @param [options.fixedFrameTransform = Cesium.Transforms.eastNorthUpToFixedFrame] - 参考系
 * @param [options.revers = false] - 是否反转朝向
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 */
declare class RectSensor extends BasePointPrimitive {
    constructor(options: {
        position: LngLatPoint | Cesium.Cartesian3 | number[];
        style: RectSensor.StyleOptions | any;
        attr?: any;
        lookAt?: Cesium.Cartesian3 | Cesium.PositionProperty;
        fixedFrameTransform?: Cesium.Transforms.LocalFrameToFixedFrame;
        revers?: boolean;
        id?: string | number;
        name?: string;
        show?: boolean;
    });
    /**
     * 椎体方向追踪的目标（椎体方向跟随变化，位置不变）
     */
    lookAt: Cesium.Cartesian3 | Cesium.PositionProperty;
    /**
     * 颜色
     */
    color: Cesium.Color;
    /**
     * 边线颜色
     */
    outlineColor: Cesium.Color;
    /**
     * 是否显示边线
     */
    outline: boolean;
    /**
     * 是否显示顶
     */
    topShow: boolean;
    /**
     * 是否显示顶边线
     */
    topOutlineShow: boolean;
    /**
     * 夹角（angle1和angle2相同），半场角度，取值范围 0.1-89.9
     */
    angle: number;
    /**
     * 夹角1，半场角度，取值范围 0.1-89.9
     */
    angle1: number;
    /**
     * 夹角2，半场角度，取值范围 0.1-89.9
     */
    angle2: number;
    /**
     * 半径长度（米）
     */
    length: number;
    /**
     * 四周方向角，0-360度角度值
     */
    heading: number;
    /**
     * 四周方向角，弧度值
     */
    readonly headingRadians: number;
    /**
     * 俯仰角，上下摇摆的角度，0-360度角度值
     */
    pitch: number;
    /**
     * 滚转角，左右摆动的角度，0-360度角度值
     */
    roll: number;
    /**
     * 获取当前转换计算模型矩阵。如果方向或位置未定义，则返回undefined。
     */
    readonly matrix: Cesium.Matrix4;
    /**
     * 获取视锥体射出length半径长度后的点坐标
     */
    readonly rayPosition: Cesium.Cartesian3;
    /**
     * 是否反向
     */
    readonly reverse: boolean;
    /**
     * 是否与地球相交，当rayEllipsoid：true时才有效。
     */
    readonly intersectEllipsoid: boolean;
    /**
     * 设置透明度
     * @param value - 透明度
     * @returns 无
     */
    setOpacity(value: number): void;
    /**
     * 获取射线向地面与地球的的大概距离
     * @returns 距离值，单位：米
     */
    getRayEarthLength(): number;
    /**
     * 获取射线向地面与地球的4个交点坐标
     * @returns 坐标数组
     */
    getRayEarthPositions(): Cesium.Cartesian3[];
    /**
     * 矢量数据对应的 Cesium内部对象 (不同子类中实现)
     */
    readonly czmObject: Cesium.Entity | Cesium.Primitive | Cesium.GroundPrimitive | Cesium.ClassificationPrimitive | any;
}

declare namespace Satellite {
    /**
     * 当前类支持的{@link EventType}事件类型
     * @example
     * //绑定监听事件
     * graphic.on(mars3d.EventType.change, function (event) {
     *   console.log('卫星位置发送了变化', event)
     * })
     * @property change - 卫星位置变化了
     */
    type EventType = {
        change: string;
    };
}

/**
 * 卫星综合体 对象类【统一管理卫星模型、轨道、视锥体】,
 * 【需要引入  mars3d-space 插件库】
 * @param options - 参数对象，包括以下：
 * @param options.tle1 - 卫星两行轨道数（TLE） 的tle1, 示例：'1 39150U 13018A   18309.20646405  .00000034  00000-0  12253-4 0  9993'
 * @param options.tle2 - 卫星两行轨道数（TLE） 的tle2, 示例：'2 39150  97.9189  29.2064 0018076 220.9170 139.0692 14.76532215297913'
 * @param [options.period] - 卫星运行周期（单位：分钟）, 未传值时自动在tle2中解析
 * @param options.position - 当没有tle时，自定义传入动态坐标位置（含时序的点集合）
 * @param [options.orientation] - 当没有tle时，自定义传入实体方向
 * @param [options.model] - 设置是否显示 gltf卫星模型 和对应的样式，属性还包含：<br />
 * //  * @param {Boolean} [options.model.autoHeading=true]  heading是否自动为轨道的方向
 * @param [options.cone] - 设置是否显示 卫星视锥体 和对应的样式
 * @param [options.label] - 设置是否显示 文本 和对应的样式
 * @param [options.billboard] - 设置是否显示 图标点 和对应的样式
 * @param [options.point] - 设置是否显示 像素点 和对应的样式
 * @param [options.path] - 设置是否显示 卫星轨迹路线 和对应的样式，属性还包含：<br />
 * //  * @param {Boolean} [options.path.closure=false]  是否闭合轨道圆
 * @param [options.shadingLine] - 设置是否显示 星下轨迹 和对应的样式
 * @param [options.fixedFrameTransform] - 参考系
 * @param [options.frameRate = 50] - 多少帧刷新1次，控制效率，如果卡顿就把该数值调大一些。
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 */
declare class Satellite extends BaseGraphic {
    constructor(options: {
        tle1: string;
        tle2: string;
        period?: number;
        position: Cesium.SampledPositionProperty;
        orientation?: Cesium.Property;
        model?: ModelEntity.StyleOptions | any;
        cone?: SatelliteSensor.StyleOptions | any;
        label?: LabelEntity.StyleOptions | any;
        billboard?: BillboardEntity.StyleOptions | any;
        point?: PointEntity.StyleOptions | any;
        path?: PolylineEntity.StyleOptions | any;
        shadingLine?: BillboardEntity.StyleOptions | any;
        fixedFrameTransform?: Cesium.Transforms.LocalFrameToFixedFrame;
        frameRate?: number;
        id?: string | number;
        name?: string;
        show?: boolean;
    });
    /**
     * 加载Entity数据的内部Cesium容器
     */
    readonly dataSource: Cesium.CustomDataSource;
    /**
     * 卫星TLE算法类对象
     */
    readonly tle: Tle;
    /**
     * 圆锥的角度或者四棱锥的第一个角度，半场角度，取值范围 0.1-89.9
     */
    angle1: number;
    /**
     * 四棱锥的第二个角度，半场角度，取值范围 0.1-89.9
     */
    angle2: number;
    /**
     * 四周方向角，0-360度角度值
     */
    heading: number;
    /**
     * 俯仰角，上下摇摆的角度，0-360度角度值
     */
    pitch: number;
    /**
     * 滚转角，左右摆动的角度，0-360度角度值
     */
    roll: number;
    /**
     * 是否显示视锥体
     */
    coneShow: boolean;
    /**
     * 当前时间的卫星位置坐标 （笛卡尔坐标）
     */
    position: Cesium.Cartesian3;
    /**
     * 获取当前时间转换计算模型矩阵。如果方向或位置未定义，则返回undefined。
     */
    readonly modelMatrix: Cesium.Matrix4;
    /**
     * 获取卫星方向 中心射线与地球相交点
     */
    readonly groundPosition: Cesium.Cartesian3;
    /**
     * 获取当前已计算的轨道的开始时间和结束时间，格式为{start:'2021-01-01 00:00:00',end:'2021-01-01 12:01:02'}
     */
    readonly timeRange: any;
    /**
     * 卫星凝视的目标（卫星方向一直朝向这个目标所在位置）
     */
    lookAt: Cesium.Cartesian3 | Cesium.PositionProperty;
    /**
     * 是否显示3个方向轴，用于对比测试
     */
    debugAxis: boolean;
    /**
     * 显示3个方向轴时的对应轴长度，用于对比测试
     */
    debugAxisLength: number;
    /**
     * 重新赋值参数，同构造方法参数一致。
     * @param options - 参数,与类的构造方法参数相同
     * @returns 无
     */
    setOptions(options: any): void;
    /**
     * 单击轨迹连线上的点后，求该点对应的时间
     * @param position - 轨迹连线上的某点
     * @param [arr] - 轨迹的原始数组，默认为内部记录的轨迹
     * @returns 对应的时间
     */
    getPointTime(position: Cesium.Cartesian3, arr?: any): Date;
    /**
     * 更新角度
     * @param [newangle] - 新角度值
     * @param [newangle.heading = 0] - 方向角 （度数值，0-360度），如 model.autoHeading 为true，传入值无效
     * @param [newangle.pitch = 0] - 俯仰角（度数值，0-360度）
     * @param [newangle.roll = 0] - 翻滚角（度数值，0-360度）
     * @returns 无
     */
    updateOrientation(newangle?: {
        heading?: number;
        pitch?: number;
        roll?: number;
    }): void;
    /**
     * 定位到卫星当前所在位置
     * @param [options = {}] - 具有以下属性的对象:
     * @param [options.scale = 1.5] - 视角离卫星距离的缩放比例，计算公式：视角距离 = scale*卫星当前高度
     * @param [options.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
     * @param [options.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
     * @param [options.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
     * @param [options.duration] - 飞行持续时间（秒）。如果省略，内部会根据飞行距离计算出理想的飞行时间。
     * @param [options.complete] - 飞行完成后要执行的函数。
     * @param [options.cancel] - 飞行取消时要执行的函数。
     * @param [options.endTransform] - 表示飞行完成后摄像机将位于的参考帧的变换矩阵。
     * @param [options.maximumHeight] - 飞行高峰时的最大高度。
     * @param [options.pitchAdjustHeight] - 如果相机的飞行角度高于该值，请在飞行过程中调整俯仰角度以向下看，并将地球保持在视口中。
     * @param [options.flyOverLongitude] - 地球上2点之间总是有两种方式。此选项会迫使相机选择战斗方向以在该经度上飞行。
     * @param [options.flyOverLongitudeWeight] - 仅在通过flyOverLongitude指定的lon上空飞行，只要该方式的时间不超过flyOverLongitudeWeight的短途时间。
     * @param [options.easingFunction] - 控制在飞行过程中如何插值时间。
     * @returns 如果飞行成功则解析为true的承诺，如果当前未在场景中可视化目标或取消飞行，则为false的Promise
     */
    flyTo(options?: {
        scale?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        duration?: number;
        complete?: Cesium.Camera.FlightCompleteCallback;
        cancel?: Cesium.Camera.FlightCancelledCallback;
        endTransform?: Cesium.Matrix4;
        maximumHeight?: number;
        pitchAdjustHeight?: number;
        flyOverLongitude?: number;
        flyOverLongitudeWeight?: number;
        easingFunction?: Cesium.EasingFunction.Callback;
    }): Promise<boolean>;
    /**
     * 矢量数据对应的 Cesium内部对象 (不同子类中实现)
     */
    readonly czmObject: Cesium.Entity | Cesium.Primitive | Cesium.GroundPrimitive | Cesium.ClassificationPrimitive | any;
    /**
     * 当前类的构造参数
     */
    readonly options: any;
}

declare namespace SatelliteSensor {
    /**
     * 卫星视锥体（圆锥或四凌锥） 支持的样式信息
     * @property [sensorType = SatelliteSensor.Type.Rect] - 视锥类型
     * @property [angle1 = 5] - 圆锥的角度或者四棱锥的第一个角度，半场角度，取值范围 0.1-89.9
     * @property [angle2 = 5] - 四棱锥的第二个角度，半场角度，取值范围 0.1-89.9
     * @property [angle = 5] - 夹角1和夹角2相同时，可以传入angle一个属性
     * @property [length] - 指定的半径长度（米），默认与地球进行相交运算
     * @property [heading = 0] - 方向角 （角度值 0-360）
     * @property [pitch = 0] - 俯仰角（角度值 0-360）
     * @property [roll = 0] - 翻滚角（角度值 0-360）
     * @property [color = Cesium.Color.YELLOW] - 颜色
     * @property [opacity = 1.0] - 透明度, 取值范围：0.0-1.0
     * @property [outline = false] - 是否显示边线
     * @property [outlineColor = color] - 边线颜色
     * @property [rayEllipsoid = false] - 是否求交地球计算
     * @property [flat = true] - 当true时，在片段着色器中使用平面着色，不考虑光照。
     * @property [faceForward = false] - 当true时，片段着色器根据需要翻转表面的法线，以确保法线面向查看器以避免黑点。
     * @property [translucent = true] - 当true时，几何图形将显示为半透明，因此{@link Cesium.PerInstanceColorAppearance#renderState}将启用alpha混合。
     * @property [closed = false] - 当true时，几何图形将被关闭，因此{@link Cesium.PerInstanceColorAppearance#renderState}启用了背面剔除。
     */
    type StyleOptions = any | {
        sensorType?: SatelliteSensor.Type;
        angle1?: number;
        angle2?: number;
        angle?: number;
        length?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        color?: string | Cesium.Color;
        opacity?: number;
        outline?: boolean;
        outlineColor?: string | Cesium.Color;
        rayEllipsoid?: boolean;
        flat?: boolean;
        faceForward?: boolean;
        translucent?: boolean;
        closed?: boolean;
    };
    /**
     * 视锥体类型
     */
    enum Type {
        Conic,
        Rect
    }
}

/**
 * 卫星视锥综合体（圆锥或四凌锥），该对象暂不支持鼠标交互和拾取,
 * 【需要引入  mars3d-space 插件库】
 * @param [options] - 参数对象，包括以下：
 * @param options.position - 坐标位置
 * @param [options.orientation] - 指定实体方向的属性。
 * @param options.style - 样式信息
 * @param [options.attr] - 附件的属性信息，可以任意附加属性，导出geojson或json时会自动处理导出。
 * @param [options.lookAt] - 椎体方向追踪的目标（椎体方向跟随变化，位置不变）
 * @param [options.trackedEntity] - 椎体跟随的卫星（椎体位置跟随变化，方向不变）
 * @param [options.autoHeading] - 是否自动追踪trackedEntity目标的heading方向
 * @param [options.fixedFrameTransform] - 参考系
 * @param [options.revers = false] - 是否反转朝向
 * @param [options.id = createGuid()] - 矢量数据id标识
 * @param [options.name = ''] - 矢量数据名称
 * @param [options.show = true] - 矢量数据是否显示
 */
declare class SatelliteSensor extends BasePointPrimitive {
    constructor(options?: {
        position: LngLatPoint | Cesium.Cartesian3 | number[];
        orientation?: Cesium.Property | any;
        style: SatelliteSensor.StyleOptions | any;
        attr?: any;
        lookAt?: Cesium.Cartesian3 | Cesium.PositionProperty;
        trackedEntity?: Cesium.Entity;
        autoHeading?: boolean;
        fixedFrameTransform?: Cesium.Transforms.LocalFrameToFixedFrame;
        revers?: boolean;
        id?: string | number;
        name?: string;
        show?: boolean;
    });
    /**
     * 椎体类型
     */
    sensorType: SatelliteSensor.Type;
    /**
     * 颜色
     */
    color: Cesium.Color;
    /**
     * 边线颜色
     */
    outlineColor: Cesium.Color;
    /**
     * 夹角（angle1和angle2相同），半场角度，取值范围 0.1-89.9
     */
    angle: number;
    /**
     * 圆锥的角度或者四棱锥的第一个角度，半场角度，取值范围 0.1-89.9
     */
    angle1: number;
    /**
     * 四棱锥的第二个角度，半场角度，取值范围 0.1-89.9
     */
    angle2: number;
    /**
     * 四周方向角，0-360度角度值
     */
    heading: number;
    /**
     * 俯仰角，上下摇摆的角度，0-360度角度值
     */
    pitch: number;
    /**
     * 滚转角，左右摆动的角度，0-360度角度值
     */
    roll: number;
    /**
     * 是否显示边线
     */
    outline: boolean;
    /**
     * 椎体跟随的卫星（椎体位置跟随变化，方向不变）
     */
    trackedEntity: Cesium.Entity | ModelEntity;
    /**
     * 椎体方向追踪的目标（椎体方向跟随变化，位置不变）
     */
    lookAt: Cesium.Entity;
    /**
     * 获取当前转换计算模型矩阵。如果方向或位置未定义，则返回undefined。
     */
    readonly matrix: Cesium.Matrix4;
    /**
     * 获取视锥体方向中心射线与地球相交点
     */
    readonly groundPosition: Cesium.Cartesian3;
    /**
     * 是否求交地球计算
     */
    rayEllipsoid: boolean;
    /**
     * 与地球相交的类型：0不想交，1完全相交，2部分相交。
     * 仅当rayEllipsoid：true时才有效。
     */
    readonly intersectEllipsoid: number;
    /**
     * 设置透明度
     * @param value - 透明度
     * @returns 无
     */
    setOpacity(value: number): void;
    /**
     * 导出成像区坐标
     * @returns 成像区坐标，经、纬度坐标数组
     */
    getAreaCoords(): any[][];
    /**
     * 位置坐标 （笛卡尔坐标）, 赋值时可以传入LatLngPoint对象
     */
    position: Cesium.Cartesian3 | LngLatPoint;
}

/**
 * 超图S3M三维模型图层,
 * 【需要引入  mars3d-supermap 插件库】
 * @param [options] - 参数对象，包括以下：
 * @param options.url - supermap的S3M服务地址,示例："url": "http://www.supermapol.com/realspace/services/3D-Olympic/rest/realspace"
 * @param [options.layername] - 指定图层名称,未指定时，打开iserver场景服务下所有图层
 * @param [options.sceneName] - 工作空间中有多个场景，需要指定场景名称；设置为undefined，默认打开第一个
 * @param [options.s3mOptions] - [S3M支持的参数]{@link http://support.supermap.com.cn:8090/webgl/docs/Documentation/S3MTilesLayer.html?classFilter=S3MTilesLayer} ,示例： {"selectEnabled":false},
 * @param [options.position] - 模型新的中心点位置（移动模型）
 * @param options.position.alt - 获取或设置底部高程。（单位：米）
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 */
declare class S3MLayer extends BaseLayer {
    constructor(options?: {
        url: string;
        layername?: string;
        sceneName?: string;
        s3mOptions?: any;
        position?: {
            alt: number;
        };
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
    });
    /**
     * 模型对应的Cesium.S3MTilesLayer图层组
     */
    readonly layer: any;
    /**
     * 设置S3M图层本身支持的参数
     */
    s3mOptions: any;
    /**
     * 遍历每一个子图层并将其作为参数传递给回调函数
     * @param method - 回调方法
     * @param [context] - 侦听器的上下文(this关键字将指向的对象)。
     * @returns 当前对象本身,可以链式调用
     */
    eachLayer(method: (...params: any[]) => any, context?: any): GroupLayer;
    /**
     * 设置透明度
     * @param value - 透明度
     * @returns 无
     */
    setOpacity(value: number): void;
    /**
     * 飞行定位至图层数据所在的视角
     * @param [options = {}] - 参数对象:
     * @param [options.radius] - 点状数据时，相机距离目标点的距离（单位：米）
     * @param [options.scale = 1.2] - 线面数据时，缩放比例，可以控制视角比矩形略大一些，这样效果更友好。
     * @param [options.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
     * @param [options.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
     * @param [options.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
     * @param [options.minHeight] - 定位时相机的最小高度值，用于控制避免异常数据
     * @param [options.maxHeight] - 定位时相机的最大高度值，用于控制避免异常数据
     * @param [options.height] - 矩形区域时的高度值, 默认取地形高度值
     * @param [options.duration] - 飞行时间（单位：秒）。如果省略，SDK内部会根据飞行距离计算出理想的飞行时间。
     * @param [options.complete] - 飞行完成后要执行的函数。
     * @param [options.cancel] - 飞行取消时要执行的函数。
     * @param [options.endTransform] - 变换矩阵表示飞行结束时相机所处的参照系。
     * @param [options.maximumHeight] - 飞行高峰时的最大高度。
     * @param [options.pitchAdjustHeight] - 如果相机飞得比这个值高，在飞行过程中调整俯仰以向下看，并保持地球在视口。
     * @param [options.flyOverLongitude] - 地球上的两点之间总有两条路。这个选项迫使相机选择战斗方向飞过那个经度。
     * @param [options.flyOverLongitudeWeight] - 仅在通过flyOverLongitude指定的lon上空飞行，只要该方式的时间不超过flyOverLongitudeWeight的短途时间。
     * @param [options.convert = true] - 是否将目的地从世界坐标转换为场景坐标（仅在不使用3D时相关）。
     * @param [options.easingFunction] - 控制在飞行过程中如何插值时间。
     * @returns 如果飞行成功则解析为true的承诺，如果当前未在场景中可视化目标或取消飞行，则为false的Promise
     */
    flyTo(options?: {
        radius?: number;
        scale?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        minHeight?: number;
        maxHeight?: number;
        height?: number;
        duration?: number;
        complete?: Cesium.Camera.FlightCompleteCallback;
        cancel?: Cesium.Camera.FlightCancelledCallback;
        endTransform?: Cesium.Matrix4;
        maximumHeight?: number;
        pitchAdjustHeight?: number;
        flyOverLongitude?: number;
        flyOverLongitudeWeight?: number;
        convert?: boolean;
        easingFunction?: Cesium.EasingFunction.Callback;
    }): Promise<boolean>;
}

/**
 * 超图影像瓦片服务图层,
 * 【需要引入  mars3d-supermap 插件库】
 * @param [options] - 参数对象，包括以下：
 * @param options.url - supermap的影像服务地址
 * @param [options.subdomains] - URL模板中用于 {s} 占位符的子域。 如果此参数是单个字符串，则字符串中的每个字符都是一个子域。如果是 一个数组，数组中的每个元素都是一个子域。
 * @param [options.tileFormat] - 影像图片格式，默认为png。
 * @param [options.transparent = true] - 设置请求的地图服务的参数是否为transparent。
 * @param [options.transparentBackColor] - 设置影像透明色。
 * @param [options.transparentBackColorTolerance] - 去黑边,设置影像透明色容限，取值范围为0.0~1.0。0.0表示完全透明，1.0表示完全不透明。
 * @param [options.cacheKey] - 影像的三维缓存密钥。
 * @param [options.minimumLevel = 0] - 瓦片所支持的最低层级，如果数据没有第0层，该参数必须配置,当地图小于该级别时，平台不去请求服务数据。
 * @param [options.maximumLevel] - 瓦片所支持的最大层级,大于该层级时会显示上一层拉伸后的瓦片，当地图大于该级别时，平台不去请求服务数据。
 * @param [options.minimumTerrainLevel] - 展示影像图层的最小地形细节级别，小于该级别时，平台不显示影像数据。
 * @param [options.maximumTerrainLevel] - 展示影像图层的最大地形细节级别，大于该级别时，平台不显示影像数据。
 * @param [options.rectangle] - 瓦片数据的矩形区域范围
 * @param options.rectangle.xmin - 最小经度值, -180 至 180
 * @param options.rectangle.xmax - 最大经度值, -180 至 180
 * @param options.rectangle.ymin - 最小纬度值, -90 至 90
 * @param options.rectangle.ymax - 最大纬度值, -90 至 90
 * @param [options.bbox] - bbox规范的瓦片数据的矩形区域范围,与rectangle二选一即可。
 * @param [options.zIndex] - 控制图层的叠加层次，默认按加载的顺序进行叠加，但也可以自定义叠加顺序，数字大的在上面(只对同类型图层间有效)。
 * @param [options.crs = CRS.EPSG:3857] - 瓦片数据的坐标系信息，默认为墨卡托投影
 * @param [options.chinaCRS] - 标识瓦片的国内坐标系（用于自动纠偏或加偏），自动将瓦片转为map对应的chinaCRS类型坐标系。
 * @param [options.proxy] - 加载资源时要使用的代理服务url。
 * @param [options.templateValues] - 一个对象，用于替换Url中的模板值的键/值对
 * @param [options.queryParameters] - 一个对象，其中包含在检索资源时将发送的查询参数。比如：queryParameters: {'access_token': '123-435-456-000'},
 * @param [options.headers] - 一个对象，将发送的其他HTTP标头。比如：headers: { 'X-My-Header': 'valueOfHeader' },
 * @param [options.enablePickFeatures = true] - 如果为true，则 {@link UrlTemplateImageryProvider#pickFeatures} 请求 pickFeaturesUrl 并尝试解释响应中包含的功能。
 *        如果为 false{@link UrlTemplateImageryProvider#pickFeatures} 会立即返回未定义（表示没有可拾取的内容） 功能）而无需与服务器通信。如果您知道数据，则将此属性设置为false 源不支持选择功能，或者您不希望该提供程序的功能可供选择。注意 可以通过修改 {@link UriTemplateImageryProvider#enablePickFeatures}来动态覆盖 属性。
 * @param [options.getFeatureInfoFormats] - 在某处获取功能信息的格式 调用 {@link UrlTemplateImageryProvider#pickFeatures} 的特定位置。如果这 参数未指定，功能选择已禁用。
 * @param [options.opacity = 1.0] - 透明度，取值范围：0.0-1.0。
 * @param [options.alpha = 1.0] - 同opacity。
 * @param [options.nightAlpha = 1.0] - 当 enableLighting 为 true 时 ，在地球的夜晚区域的透明度，取值范围：0.0-1.0。
 * @param [options.dayAlpha = 1.0] - 当 enableLighting 为 true 时，在地球的白天区域的透明度，取值范围：0.0-1.0。
 * @param [options.brightness = 1.0] - 亮度
 * @param [options.contrast = 1.0] - 对比度。 1.0使用未修改的图像颜色，小于1.0会降低对比度，而大于1.0则会提高对比度。
 * @param [options.hue = 0.0] - 色调。 0.0 时未修改的图像颜色。
 * @param [options.saturation = 1.0] - 饱和度。 1.0使用未修改的图像颜色，小于1.0会降低饱和度，而大于1.0则会增加饱和度。
 * @param [options.gamma = 1.0] - 伽马校正值。 1.0使用未修改的图像颜色。
 * @param [options.maximumAnisotropy = maximum supported] - 使用的最大各向异性水平 用于纹理过滤。如果未指定此参数，则支持最大各向异性 将使用WebGL堆栈。较大的值可使影像在水平方向上看起来更好 视图。
 * @param [options.cutoutRectangle] - 制图矩形，用于裁剪此ImageryLayer的一部分。
 * @param [options.colorToAlpha] - 用作Alpha的颜色。
 * @param [options.colorToAlphaThreshold = 0.004] - 颜色到Alpha的阈值。
 * @param [options.hasAlphaChannel = true] - 如果此图像提供者提供的图像为真 包括一个Alpha通道；否则为假。如果此属性为false，则为Alpha通道，如果 目前，将被忽略。如果此属性为true，则任何没有Alpha通道的图像都将 它们的alpha随处可见。当此属性为false时，内存使用情况 和纹理上传时间可能会减少。
 * @param [options.tileWidth = 256] - 图像图块的像素宽度。
 * @param [options.tileHeight = 256] - 图像图块的像素高度。
 * @param [options.customTags] - 允许替换网址模板中的自定义关键字。该对象必须具有字符串作为键，并且必须具有值。
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 */
declare class SmImgLayer extends BaseTileLayer {
    constructor(options?: {
        url: string;
        subdomains?: string | string[];
        tileFormat?: string;
        transparent?: boolean;
        transparentBackColor?: string | Cesium.Color;
        transparentBackColorTolerance?: number;
        cacheKey?: string;
        minimumLevel?: number;
        maximumLevel?: number;
        minimumTerrainLevel?: number;
        maximumTerrainLevel?: number;
        rectangle?: {
            xmin: number;
            xmax: number;
            ymin: number;
            ymax: number;
        };
        bbox?: number[];
        zIndex?: number;
        crs?: CRS;
        chinaCRS?: ChinaCRS;
        proxy?: string;
        templateValues?: any;
        queryParameters?: any;
        headers?: any;
        enablePickFeatures?: boolean;
        getFeatureInfoFormats?: Cesium.GetFeatureInfoFormat[];
        opacity?: number;
        alpha?: number | ((...params: any[]) => any);
        nightAlpha?: number | ((...params: any[]) => any);
        dayAlpha?: number | ((...params: any[]) => any);
        brightness?: number | ((...params: any[]) => any);
        contrast?: number | ((...params: any[]) => any);
        hue?: number | ((...params: any[]) => any);
        saturation?: number | ((...params: any[]) => any);
        gamma?: number | ((...params: any[]) => any);
        maximumAnisotropy?: number;
        cutoutRectangle?: Cesium.Rectangle;
        colorToAlpha?: Cesium.Color;
        colorToAlphaThreshold?: number;
        hasAlphaChannel?: boolean;
        tileWidth?: number;
        tileHeight?: number;
        customTags?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
    });
    /**
     * 创建用于图层的 ImageryProvider对象
     * @param options - Provider参数，同图层构造参数。
     * @returns ImageryProvider类
     */
    static createImageryProvider(options: any): Cesium.ImageryProvider;
    /**
     * 创建瓦片图层对应的ImageryProvider对象
     * @param [options = {}] - 参数对象，具体每类瓦片图层都不一样。
     * @returns 创建完成的 ImageryProvider 对象
     */
    _createImageryProvider(options?: any): Cesium.UrlTemplateImageryProvider | any;
    /**
     * 对象添加到地图上的创建钩子方法，
     * 每次add时都会调用
     * @returns 无
     */
    _addedHook(): void;
}

/**
 * 超图MVT矢量瓦片图层,
 * 【需要引入  mars3d-supermap 插件库】
 * @param [options] - 参数对象，包括以下：
 * @param options.url - 适用于通过SuperMap桌面软件生成mvt数据,经iServer发布为rest风格的地图服务，只需提供服务地址。
 * @param options.layer - 图层名称,适用于第三方发布的WMTS服务。
 * @param [options.canvasWidth] - 用来绘制矢量的纹理边长。默认是512，越大越精细，越小性能越高。
 * @param [options.format = 'mvt'] - 适用于第三方发布的WMTS服务。
 * @param [options.mapboxStyle] - 使用的mapBox风格。
 * @param [options.多个参数] - 参考[supermap官方API]{@link http://support.supermap.com.cn:8090/webgl/docs/Documentation/Scene.html#addVectorTilesLayer}
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 */
declare class SmMvtLayer extends BaseLayer {
    constructor(options?: {
        url: string;
        layer: string;
        canvasWidth?: number;
        format?: string;
        mapboxStyle?: any;
        多个参数?: any;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
    });
    /**
     * 对应的supermap图层 Cesium.VectorTilesLayer
     */
    readonly layer: any;
    /**
     * 设置透明度
     * @param value - 透明度
     * @returns 无
     */
    setOpacity(value: number): void;
    /**
     * 飞行定位至图层数据所在的视角
     * @param [options = {}] - 参数对象:
     * @param [options.radius] - 点状数据时，相机距离目标点的距离（单位：米）
     * @param [options.scale = 1.2] - 线面数据时，缩放比例，可以控制视角比矩形略大一些，这样效果更友好。
     * @param [options.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
     * @param [options.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
     * @param [options.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
     * @param [options.minHeight] - 定位时相机的最小高度值，用于控制避免异常数据
     * @param [options.maxHeight] - 定位时相机的最大高度值，用于控制避免异常数据
     * @param [options.height] - 矩形区域时的高度值, 默认取地形高度值
     * @param [options.duration] - 飞行时间（单位：秒）。如果省略，SDK内部会根据飞行距离计算出理想的飞行时间。
     * @param [options.complete] - 飞行完成后要执行的函数。
     * @param [options.cancel] - 飞行取消时要执行的函数。
     * @param [options.endTransform] - 变换矩阵表示飞行结束时相机所处的参照系。
     * @param [options.maximumHeight] - 飞行高峰时的最大高度。
     * @param [options.pitchAdjustHeight] - 如果相机飞得比这个值高，在飞行过程中调整俯仰以向下看，并保持地球在视口。
     * @param [options.flyOverLongitude] - 地球上的两点之间总有两条路。这个选项迫使相机选择战斗方向飞过那个经度。
     * @param [options.flyOverLongitudeWeight] - 仅在通过flyOverLongitude指定的lon上空飞行，只要该方式的时间不超过flyOverLongitudeWeight的短途时间。
     * @param [options.convert = true] - 是否将目的地从世界坐标转换为场景坐标（仅在不使用3D时相关）。
     * @param [options.easingFunction] - 控制在飞行过程中如何插值时间。
     * @returns 如果飞行成功则解析为true的承诺，如果当前未在场景中可视化目标或取消飞行，则为false的Promise
     */
    flyTo(options?: {
        radius?: number;
        scale?: number;
        heading?: number;
        pitch?: number;
        roll?: number;
        minHeight?: number;
        maxHeight?: number;
        height?: number;
        duration?: number;
        complete?: Cesium.Camera.FlightCompleteCallback;
        cancel?: Cesium.Camera.FlightCancelledCallback;
        endTransform?: Cesium.Matrix4;
        maximumHeight?: number;
        pitchAdjustHeight?: number;
        flyOverLongitude?: number;
        flyOverLongitudeWeight?: number;
        convert?: boolean;
        easingFunction?: Cesium.EasingFunction.Callback;
    }): Promise<boolean>;
}

/**
 * 天地图 三维地名服务图层
 * 【需要引入 mars3d-tdt 插件库】
 * @param [options] - 参数对象，包括以下：
 * @param [options.url = 'https://t{s}.tianditu.gov.cn/mapservice/GetTiles'] - 天地图服务地址
 * @param [options.subdomains = '01234567'] - 服务负载子域
 * @param [options.key = mars3d.Token.tianditu] - 天地图服务token令牌
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 */
declare class TdtDmLayer extends BaseLayer {
    constructor(options?: {
        url?: string;
        subdomains?: string;
        key?: string;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
    });
    /**
     * 对象添加到地图上的创建钩子方法，
     * 每次add时都会调用
     * @returns 无
     */
    _addedHook(): void;
    /**
     * 对象从地图上移除的创建钩子方法，
     * 每次remove时都会调用
     * @returns 无
     */
    _removedHook(): void;
}

/**
 * 天地图 地形服务
 * 【需要引入 mars3d-tdt 插件库】
 * @param [options] - 参数对象，包括以下：
 * @param [options.url = 'https://t{s}.tianditu.gov.cn/DataServer'] - 天地图服务地址
 * @param [options.subdomains = '01234567'] - 服务负载子域
 * @param [options.key = mars3d.Token.tianditu] - 天地图服务token令牌
 */
declare class TdtTerrainProvider extends Cesium.TerrainProvider {
    constructor(options?: {
        url?: string;
        subdomains?: string;
        key?: string;
    });
}

declare namespace BaseWidget {
    /**
     * widget 配置参数
     * @property name - 必须，中文名称，用于标识和弹窗标题。
     * @property uri - 必须，JS文件路径，路径是相对于widgets目录的路径。如："widgets/bookmark/widget.js"
     * @property [id] - 定义该插件的唯一标识,方便后续判断。
     * @property [autoDisable = true] - 激活其他新插件时，是否自动释放本插件
     * @property [disableOther = true] - 激活本插件时，是否释放其它已激活的插件
     * @property [group] - 配置group后，同group下的widget互斥，打开任意一个会自动释放其他的
     * @property [windowOptions] - 存在弹窗的插件的弹窗相关参数配置，更多参数请参考 [layer弹窗API]{@linkhttps://layui.gitee.io/v2/docs/modules/layer.html} 包括：
     * @property [windowOptions.width] - 窗口宽度，可以是 像素数字(像素值) 或者 字符串(屏幕宽度百分比)，示例：200 或 "20%"
     * @property [windowOptions.height] - 窗口高度，可以是 像素数字(像素值) 或者 字符串(屏幕高度百分比)，示例：600 或 "50%"
     * @property [windowOptions.position = 'auto'] - 窗口所在位置坐标，配置字符串可选值：auto垂直水平居中，t顶部,b底部,r右边缘,l左边缘,lt左上角,lb左下角,rt右上角,rb右下角；也可以配置对象：
     * @property [windowOptions.position.top] - 位置css的top值，可以是 像素数字(像素值) 或者 字符串(屏幕高度百分比)，示例：10 或 "5%"
     * @property [windowOptions.position.bottom] - 位置css的top值，可以是 像素数字(像素值) 或者 字符串(屏幕高度百分比)，示例：10 或 "5%"
     * @property [windowOptions.position.left] - 位置css的top值，可以是 像素数字(像素值) 或者 字符串(屏幕宽度百分比)，示例：10 或 "5%"
     * @property [windowOptions.position.right] - 位置css的top值，可以是 像素数字(像素值) 或者 字符串(屏幕宽度百分比)，示例：10 或 "5%"
     * @property [windowOptions.minHeight] - 限定的窗口最小高度(像素值)，默认不限制
     * @property [windowOptions.maxHeight] - 限定的窗口最大高度(像素值)，默认不限制
     * @property [windowOptions.minWidth] - 限定的窗口最小宽度(像素值)，默认不限制
     * @property [windowOptions.maxWidth] - 限定的窗口最大宽度(像素值)，默认不限制
     * @property [windowOptions.maxmin = true] - 是否可以在弹层右下角拖动来拉伸尺寸
     * @property [windowOptions.shade = 0] - 遮罩，默认为0不显示，可配置数字0.3透明度的黑色背景（'#000'），其他颜色，可以shade: [0.8, '#393D49']
     * @property [windowOptions.shadeClose = false] - 当shade是存在的，点击弹层外区域后是否关闭弹窗。
     * @property [windowOptions.closeBtn = 1] - 当为0时，不显示关闭按钮，配置1和2来展示两种风格的关闭按钮
     * @property [windowOptions.noTitle = false] - 是否不显示标题，为true是不显示标题
     * @property [windowOptions.show = true] - 激活后是否显示弹窗，false时激活后自动隐藏弹窗。
     * @property [openAtStart = false] - 打开系统后是否自动启动本插件
     * @property [style] - 添加到widget的view中的class样式名
     * @property [css] - 添加到widget的css值
     * @property [多个参数] - 传入数据等，定义的任意参数在widget内部方法中都可以通过this.config获取到
     */
    type widgetOptions = {
        name: string;
        uri: string;
        id?: string;
        autoDisable?: boolean;
        disableOther?: boolean;
        group?: string;
        windowOptions?: {
            width?: number | string;
            height?: number | string;
            position?: {
                top?: number | string;
                bottom?: number | string;
                left?: number | string;
                right?: number | string;
            };
            minHeight?: number;
            maxHeight?: number;
            minWidth?: number;
            maxWidth?: number;
            maxmin?: boolean;
            shade?: number | any[];
            shadeClose?: boolean;
            closeBtn?: number;
            noTitle?: number;
            show?: boolean;
        };
        openAtStart?: boolean;
        style?: string;
        css?: any;
        多个参数?: any;
    };
}

/**
 * widget基础类,
 * 需要继承后使用，不用手动实例化，框架内部自动实例化及相关处理。
 * 【需要引入  mars3d-widget 插件库】
 * @example
 * //使用示例
 * class MyWidget extends mars3d.widget.BaseWidget {
 *   //外部资源配置
 *   get resources() {
 *     return [
 *       'js/test.js', //当前同目录下
 *       './lib/dom2img/dom-to-image.js', //主页面相同目录下
 *     ]
 *   }
 *   //弹窗配置
 *   get view() {
 *     return {
 *       type: 'window',
 *       url: 'view.html',
 *       windowOptions: {  width: 250 },
 *     }
 *   }
 *   //初始化[仅执行1次]
 *   create() {}
 *   //每个窗口创建完成后调用
 *   winCreateOK(opt, result) {
 *     this.viewWindow = result
 *   }
 *   //打开激活
 *   activate() {}
 *   //关闭释放
 *   disable() {
 *     this.viewWindow = null
 *   }
 * }
 *
 * //注册到widget管理器中。
 * mars3d.widget.bindClass(MyWidget)
 * @param map - 地图对象
 * @param options - 配置参数
 */
declare class BaseWidget extends BaseClass {
    constructor(map: Map, options: BaseWidget.widgetOptions);
    /**
     * 获取当前地图
     */
    readonly map: Map;
    /**
     * 获取当前配置参数
     */
    readonly options: BaseWidget.widgetOptions;
    /**
     * 获取当前配置参数，别名，同options
     */
    readonly config: BaseWidget.widgetOptions;
    /**
     * 获取当前widget的目录路径
     */
    readonly path: string;
    /**
     * 是否激活状态
     */
    readonly isActivate: boolean;
    /**
     * 是否已创建
     */
    readonly isCreate: boolean;
    /**
     * 该模块依赖的外部js、css资源文件，会在实例化之前加入的页面中。
     * 默认引用是当前widget所在同path目录的资源，
     * 相当于html主页面的资源 或 外部资源 请 以 “/” 或 “.” 或 “http” 开始的url
     */
    readonly resources: string[];
    /**
     * 定义关联的view弹窗或页面配置信息，目前支持3种类型，
     * （1）type:'window'，iframe模式弹窗 ,参考_example示例， 独立的html子页面，比较自由，简单粗暴、无任何限制；可以每个页面用不同的UI和第三方插件不用考虑冲突问题；任何水平的开发人员均容易快速开发。
     * （2）type:'divwindow'，div元素模式弹窗 参考_example_divwin示例，可直接互相访问，这种模式弊端是易引起模块间id命名冲突，在css和html中命名时需注意。
     * （3）type:'append'，任意html元素 参考_example_append示例，任意div节点，比较自由。
     * 为空时表示当前模块无关联的view页面，
     * 其中url地址规则，参考resources说明
     */
    readonly view: any | any;
    /**
     * 激活widget，同 mars3d.widget.activate方法
     * @returns 无
     */
    activateBase(): void;
    /**
     * 构造方法完成后的钩子方法，子类继承后按需使用
     * @returns 无
     */
    init(): void;
    /**
     * 模块初始化，仅首次初始化执行1次
     * @param [endfun] - 当create内存在异步时，可以异步后调用下endfun
     * @returns 无
     */
    create(endfun?: (...params: any[]) => any): void;
    /**
     * 遍历所有view配置
     * @param callback - 回调方法
     * @param [index] - 当有多个view时，可以指定单个操作的view的index
     * @returns callback执行的返回结果
     */
    eachView(callback: (...params: any[]) => any, index?: number): any;
    /**
     * 更新窗口大小或位置，改变了主页面尺寸后需要调用(内部已自动调用)。
     * @returns 无
     */
    indexResize(): void;
    /**
     * 每个view窗口或页面创建完成后调用的钩子方法
     * @param opt - 对应的view配置
     * @param result - 得到iframe页的窗口对象 或 view的html内容
     * @returns 无
     */
    winCreateOK(opt: any, result: any | string): void;
    /**
     * 窗口最大化后触发后 的钩子方法
     * @returns 无
     */
    winFull(): void;
    /**
     * 窗口最小化后触发 的钩子方法
     * @returns 无
     */
    winMin(): void;
    /**
     * 最小化窗口
     * @returns 无
     */
    minView(): void;
    /**
     * 还原窗口
     * @returns 无
     */
    restoreView(): void;
    /**
     * 最大化窗口
     * @returns 无
     */
    fullView(): void;
    /**
     * 窗口还原后触发 的钩子方法
     * @returns 无
     */
    winRestore(): void;
    /**
     * 激活模块之前 的钩子方法
     * @returns 无
     */
    beforeActivate(): void;
    /**
     * 激活模块【类内部实现方法】
     * @returns 无
     */
    activate(): void;
    /**
     * 释放插件，同 mars3d.widget.disable方法
     * @returns 无
     */
    disableBase(): void;
    /**
     * 释放模块前
     * @returns 无
     */
    beforeDisable(): void;
    /**
     * 释放模块【类内部实现方法】
     * @returns 无
     */
    disable(): void;
    /**
     * 还原配置为初始状态
     * @returns 无
     */
    resetConfig(): void;
    /**
     * 设置view弹窗的显示和隐藏，基于修改css实现
     * @param show - 是否显示
     * @param [index] - 当有多个view时，可以指定单个操作的view的index
     * @returns 无
     */
    setViewShow(show: boolean, index?: number): void;
    /**
     * 设置view弹窗的css
     * @param style - css值
     * @param [index] - 当有多个view时，可以指定单个操作的view的index
     * @returns 无
     */
    setViewCss(style: any, index?: number): void;
    /**
     * 设置view弹窗的标题
     * @param title - css值
     * @param [index] - 当有多个view时，可以指定单个操作的view的index
     * @returns 无
     */
    setTitle(title: string, index?: number): void;
    /**
     * 读取html页面的内容
     * @param url - html页面的url
     * @param callback - 读取完成后的回调方法
     * @returns 无
     */
    getHtml(url: string, callback: (...params: any[]) => any): void;
}

/**
 * widget事件类型枚举, mars3d.widget.EventType
 * 【需要引入  mars3d-widget 插件库】
 */
declare enum WidgetEventType {
    /**
     * 在实例初始化之后、创建之前执行
     */
    beforeCreate = "beforeCreate",
    /**
     * 实例创建后执行
     */
    created = "created",
    /**
     * 在activat挂载开始之前调用
     */
    beforeActivate = "beforeActivate",
    /**
     * activate方法调用后
     */
    activated = "activated",
    /**
     * view弹窗构造完成后后调用
     */
    openView = "openView",
    /**
     * 实例销毁之前调用
     */
    beforeDisable = "beforeDisable",
    /**
     * 实例销毁完成调用
     */
    disabled = "disabled",
    /**
     * 加载完成 未做任何其他处理前
     */
    loadBefore = "loadBefore",
    /**
     * 加载完成，执行所有内部处理后
     */
    load = "load"
}

/**
 * widget模块化框架，公共处理类
 * 【需要引入  mars3d-widget 插件库】
 */
declare namespace widget {
    /**
     * 初始化widget管理器，在构造完成map后调用一次即可。
     * @example
     * let widgetCfg ={
     *   "version": "2017",
     *   "defaultOptions": {
     *     "style": "dark",
     *     "windowOptions": {
     *       "skin": "layer-mars-dialog animation-scale-up",
     *       "position": {
     *         "top": 50,
     *         "right": 10
     *       },
     *       "maxmin": false,
     *       "resize": true
     *     },
     *     "autoReset": false,
     *     "autoDisable": true,
     *     "disableOther": true
     *   },
     *   "openAtStart": [
     *     {
     *       "name": "放大缩小按钮",
     *       "uri": "widgets/toolButton/zoom.js"
     *     }
     *   ],
     *   "widgets": [
     *     {
     *       "name": "模板-div弹窗",
     *       "uri": "widgets/_example_divwin/widget.js"
     *     },
     *     {
     *       "name": "模板-append模板",
     *       "uri": "widgets/_example_append/widget.js"
     *     }
     *   ]
     * }
     * mars3d.widget.init(map, widgetCfg, './')
     * @param map - 地图对象
     * @param [widgetcfg = {}] - 全局配置(一般存放在widget.json)，包括：
     * @param [widgetcfg.defaultOptions] - 所有widget的默认参数值，可以系统内所有widget相同配置统一在此处传入，额外的个性化的再配置到各widget中。
     * @param [widgetcfg.openAtStart] - 默认自启动并不可释放的插件，其中autoDisable和openAtStart固定，设置无效。
     * @param [widgetcfg.widgets] - 所有插件配置，传入后后续激活时，只用传入uri即可。
     * @param [widgetcfg.version] - 加载资源时，附加的参数，主要为了清理浏览器缓存，可选值："time"（实时时间戳）或固定的字符串值，每次发布新版本换下固定值。
     * @param [widgetcfg.debugger] - 是否显示插件测试栏，true时会在地图下侧显示所有插件测试按钮，方便测试。
     * @param [_basePath = ''] - widgets目录所在的主路径(统一前缀), 如果widgets目录不在主页面一起或存在路由时，可以传入自定义主目录，值为 widgets目录相对于当前html页面的相对路径。
     * @returns 无
     */
    function init(map: Map, widgetcfg?: {
        defaultOptions?: BaseWidget.widgetOptions;
        openAtStart?: BaseWidget.widgetOptions[];
        widgets?: BaseWidget.widgetOptions[];
        version?: string;
        debugger?: boolean;
    }, _basePath?: string): void;
    /**
     * 获取默认init时中传入配置的 windowOptions 参数
     * @returns windowOptions参数默认值
     */
    function getDefWindowOptions(): any;
    /**
     * 激活指定 widget模块
     * @example
     * //常用方式，直接使用uri
     * mars3d.widget.activate("widgets/bookmark/widget.js");
     *
     * //使用对象，可以传入更多参数，具体参数参看配置项手册，。
     * mars3d.widget.activate({
     *   name:"视角书签"
     *   uri: "widgets/bookmark/widget.js",
     *   autoDisable: true,
     *   testdata:'测试数据1987', //传数据进widget内部，widget内部使用this.config.testdata获取到传的数据
     *   success:function(thisWidget){
     *     //创建完成的回调方法
     *   }
     * });
     * @param item - 指widget模块的uri 或 指模块的配置参数,当有配置参数时，参数优先级是：
     * 【activate方法传入的配置 > init方法传入的配置(widget.json) > widget.js内部配置的】
     * @param [item.map] - 当单页面简单场景没有init时，也可以传入map来使用单个widget
     * @param [noDisableOther = false] - 不释放其他已激活的widget
     * @returns 指widget模块对象
     */
    function activate(item: {
        map?: Map;
    }, noDisableOther?: boolean): BaseWidget.widgetOptions;
    /**
     * 获取指定的widget配置信息
     * @param uri - widget的uri 或 id
     * @returns widget配置信息
     */
    function getWidget(uri: string): BaseWidget.widgetOptions;
    /**
     * 获取指定的widget 对应的实例化对象
     * @param uri - widget的uri 或 id
     * @returns widget对应的实例化对象
     */
    function getClass(uri: string): BaseWidget;
    /**
     * 获取widget的当前激活状态
     * @param uri - widget的uri 或 id
     * @returns 是否激活
     */
    function isActivate(uri: string): boolean;
    /**
     * 设置view弹窗的显示和隐藏，基于修改css实现
     * @param uri - widget的uri 或 id
     * @param show - 是否显示
     * @param [index] - 当有多个view时，可以指定单个操作的view的index
     * @returns 是否成功设置
     */
    function setViewShow(uri: string, show: boolean, index?: number): boolean;
    /**
     * 释放指定的widget
     * @param uri - widget的uri 或 id
     * @returns 是否成功调用了释放
     */
    function disable(uri: string | string[]): boolean;
    /**
     * 关闭释放所有widget
     * @param [nodisable] - 传string时 指定不释放的widget的uri或id ，传true值强制释放所有widget(默认autoDisable为false的widet不会释放)
     * @param [group] - 指定强制释放的group名(默认autoDisable为false的widet不会释放)，传入group值后会强制释放所有同group组的widget
     * @returns 无
     */
    function disableAll(nodisable?: string | boolean, group?: string): void;
    /**
     * 关闭释放同组widget
     * @param group - 指定强制释放的group名
     * @param [nodisable] - 指定不释放的widget的uri或id
     * @returns 无
     */
    function disableGroup(group: string, nodisable?: string): void;
    /**
     * 遍历所有widget
     * @param method - 回调方法
     * @returns 无
     */
    function eachWidget(method: (...params: any[]) => any): void;
    /**
     * 绑定类到当前对应js的widget中。
     * @param _class - 定义的BaseWidget子类
     * @returns 实例化后的对象
     */
    function bindClass(_class: BaseWidget): any;
    /**
     * 移除Widget测试栏（当有开启debugger时）
     * @returns 无
     */
    function removeDebugeBar(): void;
    /**
     * 获取配置的version配置参数，用于附加清除浏览器缓存
     * @returns 配置的version参数
     */
    function getCacheVersion(): string;
    /**
     * 获取init方法传入的主目录配置参数
     * @returns 主目录配置参数
     */
    function getBasePath(): string;
    /**
     * 销毁对象
     * @returns 无
     */
    function destroy(): void;
    /**
     * 绑定指定类型事件监听器
     * @param types - 事件类型
     * @param [fn] - 绑定的监听器回调方法
     * @param [context] - 侦听器的上下文(this关键字将指向的对象)。
     * @returns 无
     */
    function on(types: WidgetEventType | WidgetEventType[], fn?: (...params: any[]) => any, context?: any): void;
    /**
     * 解除绑定指定类型事件监听器
     * @param types - 事件类型
     * @param [fn] - 绑定的监听器回调方法
     * @param [context] - 侦听器的上下文(this关键字将指向的对象)。
     * @returns 无
     */
    function off(types: WidgetEventType | WidgetEventType[], fn?: (...params: any[]) => any, context?: any): void;
    /**
     * 触发指定类型的事件。
     * @param type - 事件类型
     * @param data - 传输的数据或对象，可在事件回调方法中event对象中获取进行使用
     * @param [propagate] - 将事件传播给父类 (用addEventParent设置)
     * @returns 无
     */
    function fire(type: WidgetEventType, data: any, propagate?: BaseClass | any): void;
    /**
     * 绑定一次性执行的指定类型事件监听器
     * 与on类似，监听器只会被触发一次，然后被删除。
     * @param types - 事件类型
     * @param [fn] - 绑定的监听器回调方法
     * @param [context] - 侦听器的上下文(this关键字将指向的对象)。
     * @returns 无
     */
    function once(types: WidgetEventType | WidgetEventType[], fn?: (...params: any[]) => any, context?: any): void;
    /**
     * 是否有绑定指定的事件
     * @param type - 事件类型
     * @param [propagate] - 是否判断指定的父类 (用addEventParent设置的)
     * @returns 是否存在
     */
    function listens(type: WidgetEventType, propagate?: BaseClass): boolean;
}

declare namespace CanvasWindLayer {
    /**
     * Canvas风场图层， data数据结构
     * @property rows - 行总数
     * @property cols - 列总数
     * @property xmin - 最小经度（度数，-180-180）
     * @property xmax - 最大经度（度数，-180-180）
     * @property ymin - 最小纬度（度数，-90-90）
     * @property ymax - 最大纬度（度数，-90-90）
     * @property udata - U值一维数组, 数组长度应该是 rows*cols 。也支持按rows行cols列构建好的二维数组。
     * @property vdata - V值一维数组, 数组长度应该是 rows*cols 。也支持按rows行cols列构建好的二维数组。
     */
    type DataOptions = {
        rows: number;
        cols: number;
        xmin: number;
        xmax: number;
        ymin: number;
        ymax: number;
        udata: number[] | any[][];
        vdata: number[] | any[][];
    };
}

/**
 * Canvas风场图层，
 * 基于Canvas绘制，【需要引入 mars3d-wind 插件库】
 * @param [options] - 参数对象，包括以下：
 * @param [options.data] - 风场数据
 * @param [options.speedRate = 50] - 风前进速率，意思是将当前风场横向纵向分成100份，再乘以风速就能得到移动位置，无论地图缩放到哪一级别都是一样的速度，可以用该数值控制线流动的快慢，值越大，越慢，
 * @param [options.particlesnumber = 4096] - 初始粒子总数
 * @param [options.maxAge = 120] - 每个粒子的最大生存周期
 * @param [options.frameRate = 10] - 每秒刷新次数，因为requestAnimationFrame固定每秒60次的渲染，所以如果不想这么快，就把该数值调小一些
 * @param [options.color = '#ffffff'] - 线颜色
 * @param [options.lineWidth = 1] - 线宽度
 * @param [options.fixedHeight = 0] - 点的固定的海拔高度
 * @param [options.mouseHidden] - 鼠标按下时是否隐藏渲染
 * @param [options.worker] - 处理计算粒子点的多线程JS文件地址
 * @param [options.reverseY = false] - 是否翻转纬度数组顺序，正常数据是从北往南的（纬度从大到小），如果反向时请传reverseY为true
 * @param [options.pointerEvents = false] - 图层是否可以进行鼠标交互，为false时可以穿透操作及缩放地图
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 */
declare class CanvasWindLayer extends BaseLayer {
    constructor(options?: {
        data?: CanvasWindLayer.DataOptions;
        speedRate?: number;
        particlesnumber?: number;
        maxAge?: number;
        frameRate?: number;
        color?: string;
        lineWidth?: number;
        fixedHeight?: number;
        mouseHidden?: boolean;
        worker?: string;
        reverseY?: boolean;
        pointerEvents?: boolean;
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
    });
    /**
     * 图层对应的Canvas对象
     */
    readonly canvas: HTMLCanvasElement;
    /**
     * 线颜色
     */
    color: string;
    /**
     * 线宽度
     */
    lineWidth: number;
    /**
     * 点的固定的海拔高度
     */
    fixedHeight: number;
    /**
     * 是否翻转纬度数组顺序，正常数据是从北往南的（纬度从大到小），如果反向时请传reverseY为true
     */
    reverseY: boolean;
    /**
     * 图层对应的Canvas对象
     */
    readonly layer: HTMLCanvasElement;
    /**
     * Canvas对象宽度（单位：像素）
     */
    readonly canvasWidth: number;
    /**
     * Canvas对象高度（单位：像素）
     */
    readonly canvasHeight: number;
    /**
     * 图层是否可以鼠标交互，为false时可以穿透操作及缩放地图
     */
    pointerEvents: boolean;
    /**
     * 初始粒子总数
     */
    particlesnumber: number;
    /**
     * 风前进速率，意思是将当前风场横向纵向分成100份，再乘以风速就能得到移动位置，无论地图缩放到哪一级别都是一样的速度，可以用该数值控制线流动的快慢，值越大，越慢，
     */
    speedRate: number;
    /**
     * 每个粒子的最大生存周期
     */
    maxAge: number;
    /**
     * 风场数据，数据结构见类的构造方法说明
     */
    data: CanvasWindLayer.DataOptions;
    /**
     * 设置 风场数据
     * @param data - 风场数据
     * @returns 无
     */
    setData(data: any): void;
    /**
     * 重绘，根据现有参数重新生成风场
     * @returns 无
     */
    redraw(): void;
    /**
     * 清除数据
     * @returns 无
     */
    clear(): void;
}

/**
 * 风场相关 静态方法，【需要引入 mars3d-wind 插件库】
 */
declare namespace WindUtil {
    /**
     * 风速风向 转 U值
     * @param speed - 风速
     * @param direction - 风向
     * @returns U值
     */
    function getU(speed: number, direction: number): number;
    /**
     * 风速风向 转 V值
     * @param speed - 风速
     * @param direction - 风向
     * @returns V值
     */
    function getV(speed: number, direction: number): number;
    /**
     * UV值 转 风速, 风速是uv分量的平方和
     * @param u - U值
     * @param v - V值
     * @returns 风速
     */
    function getSpeed(u: number, v: number): number;
    /**
     * UV 转 风向
     * @param u - U值
     * @param v - V值
     * @returns 风向
     */
    function getDirection(u: number, v: number): number;
}

declare namespace WindLayer {
    /**
     * 风场图层， data数据结构
     * @property rows - 行总数
     * @property cols - 列总数
     * @property xmin - 最小经度（度数，-180-180）
     * @property xmax - 最大经度（度数，-180-180）
     * @property ymin - 最小纬度（度数，-90-90）
     * @property ymax - 最大纬度（度数，-90-90）
     * @property udata - U值一维数组, 数组长度应该是 rows*cols。
     * @property [umin] - 最小U值
     * @property [umax] - 最大U值
     * @property vdata - V值一维数组, 数组长度应该是 rows*cols。
     * @property [vmin] - 最小v值
     * @property [vmax] - 最大v值
     */
    type DataOptions = {
        rows: number;
        cols: number;
        xmin: number;
        xmax: number;
        ymin: number;
        ymax: number;
        udata: number[];
        umin?: number;
        umax?: number;
        vdata: number[];
        vmin?: number;
        vmax?: number;
    };
}

/**
 * 风场图层，基于粒子实现，
 * 【需要引入 mars3d-wind 插件库】
 * @param [options] - 参数对象，包括以下：
 * @param [options.data] - 风场数据
 * @param [options.particlesnumber = 4096] - 初始粒子总数
 * @param [options.fadeOpacity = 0.996] - 消失不透明度
 * @param [options.dropRate = 0.003] - 下降率
 * @param [options.dropRateBump = 0.01] - 下降速度
 * @param [options.speedFactor = 0.5] - 速度系数
 * @param [options.lineWidth = 2.0] - 线宽度
 * @param [options.fixedHeight = 0] - 粒子点的固定的海拔高度
 * @param [options.colors = ["rgb(206,255,255)"]] - 颜色色带数组
 * @param [options.id = createGuid()] - 图层id标识
 * @param [options.pid = -1] - 图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 图层名称
 * @param [options.show = true] - 图层是否显示
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为map对象，false时不冒泡
 * @param [options.center] - 图层自定义定位视角 {@link Map#setCameraView}
 * @param options.center.lng - 经度值, 180 - 180
 * @param options.center.lat - 纬度值, -90 - 90
 * @param [options.center.alt] - 高度值
 * @param [options.center.heading] - 方向角度值，绕垂直于地心的轴旋转角度, 0至360
 * @param [options.center.pitch] - 俯仰角度值，绕纬度线旋转角度, -90至90
 * @param [options.center.roll] - 翻滚角度值，绕经度线旋转角度, -90至90
 * @param [options.flyTo] - 加载完成数据后是否自动飞行定位到数据所在的区域。
 */
declare class WindLayer extends BaseLayer {
    constructor(options?: {
        data?: WindLayer.DataOptions;
        particlesnumber?: number;
        fadeOpacity?: number;
        dropRate?: number;
        dropRateBump?: number;
        speedFactor?: number;
        lineWidth?: number;
        fixedHeight?: number;
        colors?: string[];
        id?: string | number;
        pid?: string | number;
        name?: string;
        show?: boolean;
        eventParent?: BaseClass | boolean;
        center?: {
            lng: number;
            lat: number;
            alt?: number;
            heading?: number;
            pitch?: number;
            roll?: number;
        };
        flyTo?: boolean;
    });
    /**
     * 存放风场粒子对象的容器
     */
    readonly layer: Cesium.PrimitiveCollection;
    /**
     * 风场数据，数据结构见类的构造方法说明
     */
    data: WindLayer.DataOptions;
    /**
     * 颜色色带数组
     */
    colors: string[];
    /**
     * 设置 风场数据
     * @param data - 风场数据
     * @returns 无
     */
    setData(data: WindLayer.DataOptions): void;
}

/**
 * 百度 POI查询 工具类 ，
 * 参考文档： {@link https://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-placeapi}
 * @param [options] - 参数对象，包括以下：
 * @param [options.key = mars3d.Token.baiduArr] - 百度KEY,实际项目中请使用自己申请的百度KEY，因为我们的key不保证长期有效。
 * @param [options.city = '全国'] - 限定查询的区域，支持城市及对应百度编码（Citycode）（指定的区域的返回结果加权，可能返回其他城市高权重结果。若要对返回结果区域严格限制，请使用city_limit参数）
 * @param [options.headers = {}] - 将被添加到HTTP请求头。
 * @param [options.proxy] - 加载资源时使用的代理。
 */
declare class BaiduPOI {
    constructor(options?: {
        key?: string[];
        city?: string;
        headers?: any;
        proxy?: Cesium.Proxy;
    });
    /**
     * 百度key数组，内部轮询使用
     */
    keys: string[];
    /**
     * 轮询取单个key进行使用
     */
    readonly key: string;
    /**
     * 根据经纬度坐标获取地址，逆地理编码
     * @param queryOptions - 查询参数
     * @param [queryOptions.location = null] - 经纬度坐标
     * @param [queryOptions.success] - 查询完成的回调方法
     * @param [queryOptions.error] - 查询失败的回调方法
     * @returns 查询完成的Promise,等价于success参数
     */
    getAddress(queryOptions: {
        location?: LngLatPoint | Cesium.Cartesian3 | string | any[] | any;
        success?: (...params: any[]) => any;
        error?: (...params: any[]) => any;
    }): Promise<any>;
    /**
     * 搜索提示查询
     * @param queryOptions - 查询参数
     * @param queryOptions.text - 输入建议关键字（支持拼音）
     * @param [queryOptions.location] - 传入location参数后，返回结果将以距离进行排序
     * @param [queryOptions.city] - 可以限定查询的行政区
     * @param [queryOptions.citylimit = false] - 取值为"true"，仅返回city中指定城市检索结果
     * @param [queryOptions.success] - 查询完成的回调方法
     * @param [queryOptions.error] - 查询失败的回调方法
     * @returns 查询完成的Promise,等价于success参数
     */
    autoTip(queryOptions: {
        text: string;
        location?: LngLatPoint | Cesium.Cartesian3 | string | any[] | any;
        city?: string;
        citylimit?: boolean;
        success?: (...params: any[]) => any;
        error?: (...params: any[]) => any;
    }): Promise<any>;
    /**
     * 根据ID获取POI点详情
     * @param queryOptions - 查询参数
     * @param queryOptions.id - AOI唯一标识， 最多可以传入1个id，传入目标区域的poiid即可
     * @param [queryOptions.success] - 查询完成的回调方法
     * @param [queryOptions.error] - 查询失败的回调方法
     * @returns 查询完成的Promise,等价于success参数
     */
    detail(queryOptions: {
        id: string;
        success?: (...params: any[]) => any;
        error?: (...params: any[]) => any;
    }): Promise<any>;
    /**
     * 按限定区域搜索
     * @param queryOptions - 查询参数
     * @param queryOptions.text - 检索关键字。支持多个关键字并集检索，不同关键字间以空格符号分隔，最多支持10个关键字检索。
     * @param [queryOptions.types = ''] - 检索分类偏好，与text组合进行检索，多个分类以","分隔（POI分类），如果需要严格按分类检索，请通过text参数设置
     * @param [queryOptions.graphic] - 限定的搜索区域
     * @param [queryOptions.limit = false] - 取值为"true"，严格返回限定区域内检索结果
     * @param [queryOptions.count = 20] - 单次召回POI数量，最大返回25条。多关键字检索时，返回的记录数为关键字个数*count。多关键词检索时，单页返回总数=关键词数量*count
     * @param [queryOptions.page = 0] - 分页页码，默认为0, 0代表第一页，1代表第二页，以此类推。常与 count 搭配使用，仅当返回结果为poi时可以翻页。
     * @param [queryOptions.error] - 查询失败的回调方法
     * @param [queryOptions.success] - 查询完成的回调方法
     * @returns 查询完成的Promise,等价于success参数
     */
    query(queryOptions: {
        text: string;
        types?: string;
        graphic?: BaseGraphic | any;
        limit?: boolean;
        count?: number;
        page?: number;
        error?: (...params: any[]) => any;
        success?: (...params: any[]) => any;
    }): Promise<any>;
    /**
     * 关键字搜索
     * @param queryOptions - 查询参数
     * @param queryOptions.text - 检索关键字。支持多个关键字并集检索，不同关键字间以空格符号分隔，最多支持10个关键字检索。
     * @param [queryOptions.types = ''] - 检索分类偏好，与text组合进行检索，多个分类以","分隔（POI分类），如果需要严格按分类检索，请通过text参数设置
     * @param [queryOptions.location = null] - 圆形区域检索中心点，不支持多个点
     * @param queryOptions.location.lat - 纬度
     * @param queryOptions.location.lng - 经度
     * @param [queryOptions.radius] - 圆形区域检索半径，单位为米。（增加区域内数据召回权重，如需严格限制召回数据在区域内，请搭配使用radiuslimit参数），当半径过大，超过中心点所在城市边界时，会变为城市范围检索，检索范围为中心点所在城市
     * @param [queryOptions.radiuslimit = false] - 是否严格限定召回结果在设置检索半径范围内。true（是），false（否）。设置为true时会影响返回结果中total准确性及每页召回poi数量， 设置为false时可能会召回检索半径外的poi。
     * @param [queryOptions.city = null] - 可以重新限定查询的区域，默认为类构造时传入的city
     * @param [queryOptions.citylimit = false] - 取值为"true"，仅返回city中指定城市检索结果
     * @param [queryOptions.page = 0] - 分页页码，默认为0, 0代表第一页，1代表第二页，以此类推。常与 count 搭配使用，仅当返回结果为poi时可以翻页。
     * @param [queryOptions.count = 20] - 单次召回POI数量，最大返回20条。多关键字检索时，返回的记录数为关键字个数*count。多关键词检索时，单页返回总数=关键词数量*count
     * @param [queryOptions.success] - 查询完成的回调方法
     * @param [queryOptions.error] - 查询失败的回调方法
     * @returns 查询完成的Promise,等价于success参数
     */
    queryText(queryOptions: {
        text: string;
        types?: string;
        location?: {
            lat: number;
            lng: number;
        };
        radius?: number;
        radiuslimit?: boolean;
        city?: string;
        citylimit?: boolean;
        page?: number;
        count?: number;
        success?: (...params: any[]) => any;
        error?: (...params: any[]) => any;
    }): Promise<any>;
    /**
     * 周边搜索(圆形搜索)
     * @param queryOptions - 查询参数
     * @param queryOptions.text - 检索关键字。支持多个关键字并集检索，不同关键字间以空格符号分隔，最多支持10个关键字检索。
     * @param [queryOptions.types = ''] - 检索分类偏好，与text组合进行检索，多个分类以","分隔（POI分类），如果需要严格按分类检索，请通过text参数设置
     * @param [queryOptions.location] - 圆形区域检索中心点，取值范围:0-50000。规则：大于50000按默认值，单位：米
     * @param [queryOptions.radius = 3000] - 圆形区域检索半径，单位为米。（增加区域内数据召回权重，如需严格限制召回数据在区域内，请搭配使用radiuslimit参数），当半径过大，超过中心点所在城市边界时，会变为城市范围检索，检索范围为中心点所在城市
     * @param [queryOptions.limit = false] - 是否严格限定召回结果在设置检索半径范围内。true（是），false（否）。设置为true时会影响返回结果中total准确性及每页召回poi数量， 设置为false时可能会召回检索半径外的poi。
     * @param [queryOptions.count = 20] - 单次召回POI数量，最大返回25条。多关键字检索时，返回的记录数为关键字个数*count。多关键词检索时，单页返回总数=关键词数量*count
     * @param [queryOptions.page = 0] - 分页页码，默认为0, 0代表第一页，1代表第二页，以此类推。常与 count 搭配使用，仅当返回结果为poi时可以翻页。
     * @param [queryOptions.success] - 查询完成的回调方法
     * @param [queryOptions.error] - 查询失败的回调方法
     * @returns 查询完成的Promise,等价于success参数
     */
    queryCircle(queryOptions: {
        text: string;
        types?: string;
        location?: LngLatPoint | Cesium.Cartesian3 | string | any[] | any;
        radius?: number;
        limit?: boolean;
        count?: number;
        page?: number;
        success?: (...params: any[]) => any;
        error?: (...params: any[]) => any;
    }): Promise<any>;
    /**
     * 多边形搜索
     * @param queryOptions - 查询参数
     * @param queryOptions.text - 检索关键字。支持多个关键字并集检索，不同关键字间以空格符号分隔，最多支持10个关键字检索。
     * @param [queryOptions.types = ''] - 检索分类偏好，与text组合进行检索，多个分类以","分隔（POI分类），如果需要严格按分类检索，请通过text参数设置
     * @param queryOptions.polygon - 经纬度数组，经纬度小数点后不得超过6位。多边形为矩形时，可传入左上右下两顶点坐标对；其他情况下首尾坐标对需相同。
     * @param [queryOptions.limit = false] - 是否严格限定召回结果在设置检索的多边形或矩形范围内。true（是），false（否）。设置为true时会影响返回结果中total准确性及每页召回poi数量， 设置为false时可能会召回检索半径外的poi。
     * @param [queryOptions.count = 20] - 单次召回POI数量，最大返回25条。多关键字检索时，返回的记录数为关键字个数*count。多关键词检索时，单页返回总数=关键词数量*count
     * @param [queryOptions.page = 0] - 分页页码，默认为0, 0代表第一页，1代表第二页，以此类推。常与 count 搭配使用，仅当返回结果为poi时可以翻页。
     * @param [queryOptions.success] - 查询完成的回调方法
     * @param [queryOptions.error] - 查询失败的回调方法
     * @returns 查询完成的Promise,等价于success参数
     */
    queryPolygon(queryOptions: {
        text: string;
        types?: string;
        polygon: any[][];
        limit?: boolean;
        count?: number;
        page?: number;
        success?: (...params: any[]) => any;
        error?: (...params: any[]) => any;
    }): Promise<any>;
}

/**
 * 高德 POI查询 工具类，
 * 参考文档：{@link https://lbs.amap.com/api/webservice/guide/api/search}
 * @param [options] - 参数对象，包括以下：
 * @param [options.key = mars3d.Token.gaodeArr] - 高德KEY,在实际项目中请使用自己申请的高德KEY，因为我们的key不保证长期有效。
 * @param [options.headers = {}] - 将被添加到HTTP请求头。
 * @param [options.proxy] - 加载资源时使用的代理。
 */
declare class GaodePOI {
    constructor(options?: {
        key?: string[];
        headers?: any;
        proxy?: Cesium.Proxy;
    });
    /**
     * 高德key数组，内部轮询使用
     */
    keys: string[];
    /**
     * 轮询取单个key进行使用
     */
    readonly key: string;
    /**
     * 根据经纬度坐标获取地址，逆地理编码
     * @param queryOptions - 查询参数
     * @param [queryOptions.location] - 经纬度坐标
     * @param [queryOptions.success] - 查询完成的回调方法
     * @param [queryOptions.error] - 查询失败的回调方法
     * @returns 查询完成的Promise,等价于success参数
     */
    getAddress(queryOptions: {
        location?: LngLatPoint | Cesium.Cartesian3 | string | any[] | any;
        success?: (...params: any[]) => any;
        error?: (...params: any[]) => any;
    }): Promise<any>;
    /**
     * 高德搜索提示
     * @param queryOptions - 查询参数
     * @param queryOptions.text - 输入建议关键字（支持拼音）
     * @param [queryOptions.location] - 建议使用location参数，可在此location附近优先返回搜索关键词信息,在请求参数city不为空时生效
     * @param [queryOptions.city] - 可以限定查询的行政区
     * @param [queryOptions.citylimit = false] - 取值为"true"，仅返回city中指定城市检索结果
     * @param [queryOptions.success] - 查询完成的回调方法
     * @param [queryOptions.error] - 查询失败的回调方法
     * @returns 查询完成的Promise,等价于success参数
     */
    autoTip(queryOptions: {
        text: string;
        location?: LngLatPoint | Cesium.Cartesian3 | string | any[] | any;
        city?: string;
        citylimit?: boolean;
        success?: (...params: any[]) => any;
        error?: (...params: any[]) => any;
    }): Promise<any>;
    /**
     * 根据ID获取POI点详情
     * @param queryOptions - 查询参数
     * @param queryOptions.id - AOI唯一标识， 最多可以传入1个id，传入目标区域的poiid即可
     * @param [queryOptions.success] - 查询完成的回调方法
     * @param [queryOptions.error] - 查询失败的回调方法
     * @returns 查询完成的Promise,等价于success参数
     */
    detail(queryOptions: {
        id: string;
        success?: (...params: any[]) => any;
        error?: (...params: any[]) => any;
    }): Promise<any>;
    /**
     * 按限定区域搜索
     * @param queryOptions - 查询参数
     * @param queryOptions.text - 检索关键字。支持多个关键字并集检索，不同关键字间以空格符号分隔，最多支持10个关键字检索。
     * @param [queryOptions.types = ''] - 检索分类偏好，与text组合进行检索，多个分类以","分隔（POI分类），如果需要严格按分类检索，请通过text参数设置
     * @param [queryOptions.graphic] - 限定的搜索区域
     * @param [queryOptions.limit = false] - 取值为"true"，严格返回限定区域内检索结果
     * @param [queryOptions.page = 0] - 分页页码，默认为0, 0代表第一页，1代表第二页，以此类推。常与 count 搭配使用，仅当返回结果为poi时可以翻页。
     * @param [queryOptions.count = 20] - 单次召回POI数量，默认为10条记录，最大返回20条。多关键字检索时，返回的记录数为关键字个数*count。多关键词检索时，单页返回总数=关键词数量*count
     * @param [queryOptions.error] - 查询失败的回调方法
     * @param [queryOptions.success] - 查询完成的回调方法
     * @returns 查询完成的Promise,等价于success参数
     */
    query(queryOptions: {
        text: string;
        types?: string;
        graphic?: BaseGraphic | any;
        limit?: boolean;
        page?: number;
        count?: number;
        error?: (...params: any[]) => any;
        success?: (...params: any[]) => any;
    }): Promise<any>;
    /**
     * 关键字搜索
     * @param queryOptions - 查询参数
     * @param queryOptions.text - 检索关键字。支持多个关键字并集检索，不同关键字间以空格符号分隔，最多支持10个关键字检索。
     * @param [queryOptions.types = ''] - 检索分类偏好，与text组合进行检索，多个分类以","分隔（POI分类），如果需要严格按分类检索，请通过text参数设置
     * @param [queryOptions.city] - 可以重新限定查询的区域，默认为类构造时传入的city
     * @param [queryOptions.citylimit = false] - 取值为"true"，仅返回city中指定城市检索结果
     * @param [queryOptions.count = 20] - 单次召回POI数量，最大返回25条。多关键字检索时，返回的记录数为关键字个数*count。多关键词检索时，单页返回总数=关键词数量*count
     * @param [queryOptions.page = 0] - 分页页码，默认为0, 0代表第一页，1代表第二页，以此类推。常与 count 搭配使用，仅当返回结果为poi时可以翻页。
     * @param [queryOptions.success] - 查询完成的回调方法
     * @param [queryOptions.error] - 查询失败的回调方法
     * @returns 查询完成的Promise,等价于success参数
     */
    queryText(queryOptions: {
        text: string;
        types?: string;
        city?: string;
        citylimit?: boolean;
        count?: number;
        page?: number;
        success?: (...params: any[]) => any;
        error?: (...params: any[]) => any;
    }): Promise<any>;
    /**
     * 周边搜索(圆形搜索)
     * @param queryOptions - 查询参数
     * @param queryOptions.text - 检索关键字。支持多个关键字并集检索，不同关键字间以空格符号分隔，最多支持10个关键字检索。
     * @param [queryOptions.types = ''] - 检索分类偏好，与text组合进行检索，多个分类以","分隔（POI分类），如果需要严格按分类检索，请通过text参数设置
     * @param [queryOptions.location] - 圆形区域检索中心点，取值范围:0-50000。规则：大于50000按默认值，单位：米
     * @param [queryOptions.radius = 3000] - 圆形区域检索半径，单位为米。（增加区域内数据召回权重，如需严格限制召回数据在区域内，请搭配使用radiuslimit参数），当半径过大，超过中心点所在城市边界时，会变为城市范围检索，检索范围为中心点所在城市
     * @param [queryOptions.limit = false] - 是否严格限定召回结果在设置检索半径范围内。true（是），false（否）。设置为true时会影响返回结果中total准确性及每页召回poi数量， 设置为false时可能会召回检索半径外的poi。
     * @param [queryOptions.count = 20] - 单次召回POI数量，最大返回25条。多关键字检索时，返回的记录数为关键字个数*count。多关键词检索时，单页返回总数=关键词数量*count
     * @param [queryOptions.page = 0] - 分页页码，默认为0, 0代表第一页，1代表第二页，以此类推。常与 count 搭配使用，仅当返回结果为poi时可以翻页。
     * @param [queryOptions.success] - 查询完成的回调方法
     * @param [queryOptions.error] - 查询失败的回调方法
     * @returns 查询完成的Promise,等价于success参数
     */
    queryCircle(queryOptions: {
        text: string;
        types?: string;
        location?: LngLatPoint | Cesium.Cartesian3 | string | any[] | any;
        radius?: number;
        limit?: boolean;
        count?: number;
        page?: number;
        success?: (...params: any[]) => any;
        error?: (...params: any[]) => any;
    }): Promise<any>;
    /**
     * 多边形搜索
     * @param queryOptions - 查询参数
     * @param queryOptions.text - 检索关键字。支持多个关键字并集检索，不同关键字间以空格符号分隔，最多支持10个关键字检索。
     * @param [queryOptions.types = ''] - 检索分类偏好，与text组合进行检索，多个分类以","分隔（POI分类），如果需要严格按分类检索，请通过text参数设置
     * @param queryOptions.polygon - 经纬度数组，经纬度小数点后不得超过6位。多边形为矩形时，可传入左上右下两顶点坐标对；其他情况下首尾坐标对需相同。
     * @param [queryOptions.limit = false] - 是否严格限定召回结果在设置检索的多边形或矩形范围内。true（是），false（否）。设置为true时会影响返回结果中total准确性及每页召回poi数量， 设置为false时可能会召回检索半径外的poi。
     * @param [queryOptions.count = 20] - 单次召回POI数量，最大返回25条。多关键字检索时，返回的记录数为关键字个数*count。多关键词检索时，单页返回总数=关键词数量*count
     * @param [queryOptions.page = 0] - 分页页码，默认为0, 0代表第一页，1代表第二页，以此类推。常与 count 搭配使用，仅当返回结果为poi时可以翻页。
     * @param [queryOptions.success] - 查询完成的回调方法
     * @param [queryOptions.error] - 查询失败的回调方法
     * @returns 查询完成的Promise,等价于success参数
     */
    queryPolygon(queryOptions: {
        text: string;
        types?: string;
        polygon: any[][];
        limit?: boolean;
        count?: number;
        page?: number;
        success?: (...params: any[]) => any;
        error?: (...params: any[]) => any;
    }): Promise<any>;
}

/**
 * 高德 路径规划  工具类，
 * 参考文档：{@link https://lbs.amap.com/api/webservice/guide/api/direction}
 * @param [options] - 参数对象，包括以下：
 * @param [options.key = mars3d.Token.gaodeArr] - 百度KEY,在实际项目中请使用自己申请的高德KEY，因为我们的key不保证长期有效。
 * @param [options.headers = {}] - 将被添加到HTTP请求头。
 * @param [options.proxy] - 加载资源时使用的代理。
 */
declare class GaodeRoute {
    constructor(options?: {
        key?: string[];
        headers?: any;
        proxy?: Cesium.Proxy;
    });
    /**
     * 高德key数组，内部轮询使用
     */
    keys: string[];
    /**
     * 轮询取单个key进行使用
     */
    readonly key: string;
    /**
     * 按指定类别自动查询
     * @param queryOptions - 查询参数
     * @param queryOptions.type - 类型
     * @param queryOptions.points - 按起点、终点 顺序的坐标数组,如[[117.500244, 40.417801],[117.500244, 40.417801]]
     * @param [queryOptions.success] - 查询完成的回调方法
     * @param [queryOptions.error] - 查询失败的回调方法
     * @returns 查询完成的Promise,等价于success参数
     */
    query(queryOptions: {
        type: GaodeRoute.RouteType | number;
        points: any[][];
        success?: (...params: any[]) => any;
        error?: (...params: any[]) => any;
    }): Promise<any>;
    /**
     * 按指定类别自动查询(多个路线数组，递归处理)
     * @param queryOptions - 查询参数
     * @param queryOptions.type - 类型
     * @param queryOptions.points - 多条，按起点终点 顺序的坐标数组,如[
     *  [ [117.500244, 40.417801],[117.500244, 40.417801] ],
     *  [ [117.500244, 40.417801],[117.500244, 40.417801] ]
     * ]
     * @param [queryOptions.success] - 查询完成的回调方法
     * @param [queryOptions.error] - 查询失败的回调方法
     * @returns 查询完成的Promise,等价于success参数
     */
    queryArr(queryOptions: {
        type: GaodeRoute.RouteType;
        points: any[][];
        success?: (...params: any[]) => any;
        error?: (...params: any[]) => any;
    }): Promise<any>;
    /**
     * 计算结果中的最短距离的导航路径
     * @param data - queryArr返回的结果数组
     * @returns 返回路线数据和index顺序
     */
    getShortestPath(data: any): any;
    /**
     * 步行路径规划 (单个查询)
     * @param queryOptions - 查询参数
     * @param queryOptions.points - 按起点、终点 顺序的坐标数组,如[[117.500244, 40.417801],[117.500244, 40.417801]]
     * @param [queryOptions.success] - 查询完成的回调方法
     * @param [queryOptions.error] - 查询失败的回调方法
     * @returns 查询完成的Promise,等价于success参数
     */
    queryWalking(queryOptions: {
        points: any[][];
        success?: (...params: any[]) => any;
        error?: (...params: any[]) => any;
    }): Promise<any>;
    /**
     * 骑行路径查询 (单个查询)
     * @param queryOptions - 查询参数
     * @param queryOptions.points - 按起点、终点 顺序的坐标数组,如[[117.500244, 40.417801],[117.500244, 40.417801]]
     * @param [queryOptions.success] - 查询完成的回调方法
     * @param [queryOptions.error] - 查询失败的回调方法
     * @returns 查询完成的Promise,等价于success参数
     */
    queryBicycling(queryOptions: {
        points: any[][];
        success?: (...params: any[]) => any;
        error?: (...params: any[]) => any;
    }): Promise<any>;
    /**
     * 驾车路径规划查询
     * @param queryOptions - 查询参数
     * @param queryOptions.points - 按起点、途经点、终点 顺序的坐标数组,如[[117.500244, 40.417801],[117.500244, 40.417801]]
     * @param queryOptions.avoidpolygons - 区域避让数组(支持多个)，支持32个避让区域，每个区域最多可有16个顶点。避让区域不能超过81平方公里，否则避让区域会失效。
     * @param [queryOptions.extensions = 'base'] - 返回结果控制,可选值：core/all  base:返回基本信息；all：返回全部信息
     * @param [queryOptions.strategy = 0] - 驾车选择策略，参考高德官网说明，默认为0：速度优先，不考虑当时路况，此路线不一定距离最短
     * @param [queryOptions.success] - 查询完成的回调方法
     * @param [queryOptions.error] - 查询失败的回调方法
     * @returns 查询完成的Promise,等价于success参数
     */
    queryDriving(queryOptions: {
        points: any[][];
        avoidpolygons: any[][];
        extensions?: string;
        strategy?: string;
        success?: (...params: any[]) => any;
        error?: (...params: any[]) => any;
    }): Promise<any>;
}

declare namespace GaodeRoute {
    /**
     * 路径规划方式
     */
    enum RouteType {
        Walking,
        Bicycling,
        Driving
    }
}

declare namespace QueryArcServer {
    /**
     * 当前类支持的{@link EventType}事件类型
     * @example
     * //绑定监听事件
     * layer.on(mars3d.EventType.load, function (event) {
     *   console.log('矢量数据对象加载完成', event)
     * })
     * @property click - 左键单击 鼠标事件
     * @property load - 完成加载，执行所有内部处理后
     */
    type EventType = {
        click: string;
        load: string;
    };
}

/**
 * ArcGIS WFS矢量服务查询类
 * @param options - 参数对象，包括以下：
 * @param options.url - ArcGIS服务地址, 示例：'http://server.mars3d.cn/arcgis/rest/services/mars/hefei/MapServer/37'
 * @param [options.pageSize = 10] - 每页条数 *
 * @param [options.headers = {}] - 将被添加到HTTP请求头。
 * @param [options.proxy] - 加载资源时使用的代理。
 *
 * //以下是GeoJsonLayer图层参数
 * @param [options.id = createGuid()] - 赋予给layer图层，图层id标识
 * @param [options.pid = -1] - 赋予给layer图层，图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 赋予给layer图层，图层名称
 * @param [options.symbol] - 赋予给layer图层，图层矢量数据的style样式，参考{@link GeoJsonLayer}
 * @param [options.graphicOptions] - 赋予给layer图层，图层默认的graphic的构造参数，参考{@link GeoJsonLayer}
 * @param [options.popup] - 赋予给layer图层，图层绑定的popup弹窗值，参考{@link GeoJsonLayer}
 * @param [options.tooltip] - 赋予给layer图层，图层绑定的tooltip弹窗值，参考{@link GeoJsonLayer}
 */
declare class QueryArcServer extends BaseClass {
    constructor(options: {
        url: string;
        pageSize?: number;
        headers?: any;
        proxy?: Cesium.Proxy;
        id?: string | number;
        pid?: string | number;
        name?: string;
        symbol?: any | ((...params: any[]) => any);
        graphicOptions?: any;
        popup?: string | Globe.getTemplateHtml_template[] | ((...params: any[]) => any);
        tooltip?: string | Globe.getTemplateHtml_template[] | ((...params: any[]) => any) | any;
    });
    /**
     * ArcGIS服务地址
     */
    url: string;
    /**
     * 分页的 每页条数
     */
    pageSize: number;
    /**
     * 总记录数
     */
    readonly allCount: number;
    /**
     * 总页数
     */
    readonly allPage: number;
    /**
     * 页码，当前第几页
     */
    readonly pageIndex: number;
    /**
     * 用于显示查询结果的GeoJsonLayer图层，图层参数在当前类构造方法中传入
     */
    readonly layer: GeoJsonLayer;
    /**
     * 首页，查看第1页数据
     * @returns 无
     */
    showFirstPage(): void;
    /**
     * 上一页
     * @returns 无
     */
    showPretPage(): void;
    /**
     * 下一页
     * @returns 无
     */
    showNextPage(): void;
    /**
     * 跳转到指定页
     * @param pageIndex - 指定页
     * @returns 无
     */
    showPage(pageIndex: number): void;
    /**
     * 按指定类别自动查询
     * @param queryOptions - 查询参数
     * @param [queryOptions.text] - 检索关键字。
     * @param [queryOptions.column] - 检索关键字的字段名称。
     * @param [queryOptions.like = true] - 检索关键字时，是否模糊匹配，false时精确查询。
     * @param [queryOptions.where] - 自定义的检索条件，与text二选一
     * @param [queryOptions.graphic] - 限定的搜索区域
     * @param [queryOptions.page = true] - 是否分页查询,false时不分页，一次性查询返回
     * @param [queryOptions.success] - 查询完成的回调方法
     * @param [queryOptions.error] - 查询失败的回调方法
     * @returns 查询完成的Promise,等价于success参数
     */
    query(queryOptions: {
        text?: string;
        column?: string;
        like?: boolean;
        where?: string;
        graphic?: BaseGraphic | any;
        page?: boolean;
        success?: (...params: any[]) => any;
        error?: (...params: any[]) => any;
    }): Promise<any>;
    /**
     * 清除
     * @returns 无
     */
    clear(): void;
    /**
     * 当前类的构造参数
     */
    readonly options: any;
}

/**
 * GeoServer WFS服务查询类
 * @param options - 参数对象，包括以下：
 * @param options.url - GeoServer服务地址, 示例：'http://server.mars3d.cn/geoserver/mars/wfs'
 * @param options.layer - 图层名称（命名空间:图层名称），多个图层名称用逗号隔开
 * @param [options.crs = "EPSG:4326"] - 服务数据的坐标系，如'EPSG:4326' （可以从 {@link http://epsg.io }查询）
 * @param [options.headers = {}] - 将被添加到HTTP请求头。
 * @param [options.proxy] - 加载资源时使用的代理。
 *
 * //以下是GeoJsonLayer图层参数
 * @param [options.id = createGuid()] - 赋予给layer图层，图层id标识
 * @param [options.pid = -1] - 赋予给layer图层，图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 赋予给layer图层，图层名称
 * @param [options.symbol] - 赋予给layer图层，图层矢量数据的style样式，参考{@link GeoJsonLayer}
 * @param [options.graphicOptions] - 赋予给layer图层，图层默认的graphic的构造参数，参考{@link GeoJsonLayer}
 * @param [options.popup] - 赋予给layer图层，图层绑定的popup弹窗值，参考{@link GeoJsonLayer}
 * @param [options.tooltip] - 赋予给layer图层，图层绑定的tooltip弹窗值，参考{@link GeoJsonLayer}
 */
declare class QueryGeoServer extends BaseClass {
    constructor(options: {
        url: string;
        layer: string;
        crs?: string;
        headers?: any;
        proxy?: Cesium.Proxy;
        id?: string | number;
        pid?: string | number;
        name?: string;
        symbol?: any | ((...params: any[]) => any);
        graphicOptions?: any;
        popup?: string | Globe.getTemplateHtml_template[] | ((...params: any[]) => any);
        tooltip?: string | Globe.getTemplateHtml_template[] | ((...params: any[]) => any) | any;
    });
    /**
     * 用于显示查询结果的GeoJsonLayer图层，图层参数在当前类构造方法中传入
     */
    readonly layer: GeoJsonLayer;
    /**
     * 查询服务，基于filter条件
     * @param queryOptions - 查询参数
     * @param [queryOptions.text] - 检索关键字
     * @param [queryOptions.column] - 检索关键字时，对应的字段名称
     * @param [queryOptions.like = true] - 检索关键字时，是否模糊匹配，false时精确查询
     * @param [queryOptions.graphic] - 限定的搜索区域
     * @param [queryOptions.geometryName = 'the_geom'] - 限定的搜索区域时，对应的geometry字段名称, 比如：geom 或 the_geom
     * @param [queryOptions.maxFeatures = 1000] - 返回结果最大数量
     * @param [queryOptions.sortBy] - 排序的属性名称，默认升序，降序时+D
     * @param [queryOptions.更多参数] - WFS服务支持的其他参数，均支持
     * @param [queryOptions.success] - 查询完成的回调方法
     * @param [queryOptions.error] - 查询失败的回调方法
     * @returns 查询完成的Promise,等价于success参数
     */
    query(queryOptions: {
        text?: string;
        column?: string;
        like?: boolean;
        graphic?: BaseGraphic | any;
        geometryName?: string;
        maxFeatures?: number;
        sortBy?: string;
        更多参数?: any;
        success?: (...params: any[]) => any;
        error?: (...params: any[]) => any;
    }): Promise<any>;
    /**
     * 查询服务，基于cql_filter条件
     * @param queryOptions - 查询参数
     * @param queryOptions.cql_filter - 筛选服务数据的[SQL语句]{@link https://docs.geoserver.org/2.12.2/user/services/wfs/vendor.html#wfs-vendor-parameters}
     * @param [queryOptions.graphic] - 限定的搜索区域,自动转换后加入到cql_filter中，也可以外部自行处理
     * @param [queryOptions.geometryName = 'the_geom'] - 限定的搜索区域时，对应的geometry字段名称
     * @param [queryOptions.maxFeatures = 1000] - 返回结果最大数量
     * @param [queryOptions.sortBy] - 排序的属性名称，默认升序，降序时+D
     * @param [queryOptions.更多参数] - WFS服务支持的其他参数，均支持
     * @param [queryOptions.success] - 查询完成的回调方法
     * @param [queryOptions.error] - 查询失败的回调方法
     * @returns 查询完成的Promise,等价于success参数
     */
    queryBySql(queryOptions: {
        cql_filter: string;
        graphic?: BaseGraphic | any;
        geometryName?: string;
        maxFeatures?: number;
        sortBy?: string;
        更多参数?: any;
        success?: (...params: any[]) => any;
        error?: (...params: any[]) => any;
    }): Promise<any>;
    /**
     * 清除
     * @returns 无
     */
    clear(): void;
}

/**
 * 天地图 POI查询 工具类，
 * 参考文档：{@link http://lbs.tianditu.gov.cn/server/search2.html}
 * @param [options] - 参数对象，包括以下：
 * @param [options.key = mars3d.Token.tiandituArr] - 天地图KEY,在实际项目中请使用自己申请的天地图KEY，因为我们的key不保证长期有效。
 * @param [options.headers = {}] - 将被添加到HTTP请求头。
 * @param [options.proxy] - 加载资源时使用的代理。
 */
declare class TdtPOI {
    constructor(options?: {
        key?: string[];
        headers?: any;
        proxy?: Cesium.Proxy;
    });
    /**
     * 天地图key数组，内部轮询使用
     */
    keys: string[];
    /**
     * 轮询取单个key进行使用
     */
    readonly key: string;
    /**
     * 根据经纬度坐标获取地址，逆地理编码
     * @param queryOptions - 查询参数
     * @param [queryOptions.location] - 经纬度坐标
     * @param [queryOptions.success] - 查询完成的回调方法
     * @param [queryOptions.error] - 查询失败的回调方法
     * @returns 查询完成的Promise,等价于success参数
     */
    getAddress(queryOptions: {
        location?: LngLatPoint | Cesium.Cartesian3 | string | any[] | any;
        success?: (...params: any[]) => any;
        error?: (...params: any[]) => any;
    }): Promise<any>;
    /**
     * 天地图搜索提示
     * @param queryOptions - 查询参数
     * @param queryOptions.text - 输入建议关键字（支持拼音）
     * @param [queryOptions.location] - 建议使用location参数，可在此location附近优先返回搜索关键词信息,在请求参数city不为空时生效
     * @param [queryOptions.city] - 可以限定查询的行政区
     * @param [queryOptions.success] - 查询完成的回调方法
     * @param [queryOptions.error] - 查询失败的回调方法
     * @returns 查询完成的Promise,等价于success参数
     */
    autoTip(queryOptions: {
        text: string;
        location?: LngLatPoint | Cesium.Cartesian3 | string | any[] | any;
        city?: string;
        success?: (...params: any[]) => any;
        error?: (...params: any[]) => any;
    }): Promise<any>;
    /**
     * 按限定区域搜索
     * @param queryOptions - 查询参数
     * @param queryOptions.text - 检索关键字。支持多个关键字并集检索，不同关键字间以空格符号分隔，最多支持10个关键字检索。
     * @param [queryOptions.types = ''] - 检索分类偏好，与text组合进行检索，多个分类以","分隔（POI分类），如果需要严格按分类检索，请通过text参数设置
     * @param [queryOptions.graphic] - 限定的搜索区域
     * @param [queryOptions.limit = false] - 取值为"true"，严格返回限定区域内检索结果
     * @param [queryOptions.page = 0] - 分页页码，默认为0, 0代表第一页，1代表第二页，以此类推。常与 count 搭配使用，仅当返回结果为poi时可以翻页。
     * @param [queryOptions.count = 20] - 单次召回POI数量，默认为10条记录，最大返回20条。多关键字检索时，返回的记录数为关键字个数*count。多关键词检索时，单页返回总数=关键词数量*count
     * @param [queryOptions.error] - 查询失败的回调方法
     * @param [queryOptions.success] - 查询完成的回调方法
     * @returns 查询完成的Promise,等价于success参数
     */
    query(queryOptions: {
        text: string;
        types?: string;
        graphic?: BaseGraphic | any;
        limit?: boolean;
        page?: number;
        count?: number;
        error?: (...params: any[]) => any;
        success?: (...params: any[]) => any;
    }): Promise<any>;
    /**
     * 关键字搜索
     * @param queryOptions - 查询参数
     * @param queryOptions.text - 检索关键字。支持多个关键字并集检索，不同关键字间以空格符号分隔，最多支持10个关键字检索。
     * @param [queryOptions.types = ''] - 检索分类偏好，与text组合进行检索，多个分类以","分隔（POI分类），如果需要严格按分类检索，请通过text参数设置
     * @param [queryOptions.city] - 可以重新限定查询的区域，默认为类构造时传入的city
     * @param [queryOptions.level = 18] - 查询的级别,1-18级
     * @param [queryOptions.mapBound] - 查询的地图范围: "minx,miny,maxx,maxy"
     * @param [queryOptions.count = 20] - 单次召回POI数量，最大返回300条。多关键字检索时，返回的记录数为关键字个数*count。多关键词检索时，单页返回总数=关键词数量*count
     * @param [queryOptions.page = 0] - 分页页码，默认为0, 0代表第一页，1代表第二页，以此类推。常与 count 搭配使用，仅当返回结果为poi时可以翻页。
     * @param [queryOptions.success] - 查询完成的回调方法
     * @param [queryOptions.error] - 查询失败的回调方法
     * @returns 查询完成的Promise,等价于success参数
     */
    queryText(queryOptions: {
        text: string;
        types?: string;
        city?: string;
        level?: string;
        mapBound?: string;
        count?: number;
        page?: number;
        success?: (...params: any[]) => any;
        error?: (...params: any[]) => any;
    }): Promise<any>;
    /**
     * 周边搜索(圆形搜索)
     * @param queryOptions - 查询参数
     * @param queryOptions.text - 检索关键字。支持多个关键字并集检索，不同关键字间以空格符号分隔，最多支持10个关键字检索。
     * @param [queryOptions.types = ''] - 检索分类偏好，与text组合进行检索，多个分类以","分隔（POI分类），如果需要严格按分类检索，请通过text参数设置
     * @param [queryOptions.location] - 圆形区域检索中心点，取值范围:0-50000。规则：大于50000按默认值，单位：米
     * @param [queryOptions.radius = 3000] - 圆形区域检索半径，单位为米。（增加区域内数据召回权重，如需严格限制召回数据在区域内，请搭配使用radiuslimit参数），当半径过大，超过中心点所在城市边界时，会变为城市范围检索，检索范围为中心点所在城市
     * @param [queryOptions.limit = false] - 是否严格限定召回结果在设置检索半径范围内。true（是），false（否）。设置为true时会影响返回结果中total准确性及每页召回poi数量， 设置为false时可能会召回检索半径外的poi。
     * @param [queryOptions.count = 20] - 单次召回POI数量，最大返回25条。多关键字检索时，返回的记录数为关键字个数*count。多关键词检索时，单页返回总数=关键词数量*count
     * @param [queryOptions.page = 0] - 分页页码，默认为0, 0代表第一页，1代表第二页，以此类推。常与 count 搭配使用，仅当返回结果为poi时可以翻页。
     * @param [queryOptions.success] - 查询完成的回调方法
     * @param [queryOptions.error] - 查询失败的回调方法
     * @returns 查询完成的Promise,等价于success参数
     */
    queryCircle(queryOptions: {
        text: string;
        types?: string;
        location?: LngLatPoint | Cesium.Cartesian3 | string | any[] | any;
        radius?: number;
        limit?: boolean;
        count?: number;
        page?: number;
        success?: (...params: any[]) => any;
        error?: (...params: any[]) => any;
    }): Promise<any>;
    /**
     * 多边形搜索
     * @param queryOptions - 查询参数
     * @param queryOptions.text - 检索关键字。支持多个关键字并集检索，不同关键字间以空格符号分隔，最多支持10个关键字检索。
     * @param [queryOptions.types = ''] - 检索分类偏好，与text组合进行检索，多个分类以","分隔（POI分类），如果需要严格按分类检索，请通过text参数设置
     * @param queryOptions.polygon - 经纬度数组，经纬度小数点后不得超过6位。多边形为矩形时，可传入左上右下两顶点坐标对；其他情况下首尾坐标对需相同。
     * @param [queryOptions.limit = false] - 是否严格限定召回结果在设置检索的多边形或矩形范围内。true（是），false（否）。设置为true时会影响返回结果中total准确性及每页召回poi数量， 设置为false时可能会召回检索半径外的poi。
     * @param [queryOptions.count = 20] - 单次召回POI数量，最大返回25条。多关键字检索时，返回的记录数为关键字个数*count。多关键词检索时，单页返回总数=关键词数量*count
     * @param [queryOptions.page = 0] - 分页页码，默认为0, 0代表第一页，1代表第二页，以此类推。常与 count 搭配使用，仅当返回结果为poi时可以翻页。
     * @param [queryOptions.success] - 查询完成的回调方法
     * @param [queryOptions.error] - 查询失败的回调方法
     * @returns 查询完成的Promise,等价于success参数
     */
    queryPolygon(queryOptions: {
        text: string;
        types?: string;
        polygon: any[][];
        limit?: boolean;
        count?: number;
        page?: number;
        success?: (...params: any[]) => any;
        error?: (...params: any[]) => any;
    }): Promise<any>;
    /**
     * 视野内搜索
     * @param queryOptions - 查询参数
     * @param queryOptions.text - 检索关键字。支持多个关键字并集检索，不同关键字间以空格符号分隔，最多支持10个关键字检索。
     * @param [queryOptions.types = ''] - 检索分类偏好，与text组合进行检索，多个分类以","分隔（POI分类），如果需要严格按分类检索，请通过text参数设置
     * @param queryOptions.extent - 可传入左上右下两顶点坐标对；
     * @param [queryOptions.count = 20] - 单次召回POI数量，最大返回25条。多关键字检索时，返回的记录数为关键字个数*count。多关键词检索时，单页返回总数=关键词数量*count
     * @param [queryOptions.page = 0] - 分页页码，默认为0, 0代表第一页，1代表第二页，以此类推。常与 count 搭配使用，仅当返回结果为poi时可以翻页。
     * @param [queryOptions.success] - 查询完成的回调方法
     * @param [queryOptions.error] - 查询失败的回调方法
     * @returns 查询完成的Promise,等价于success参数
     */
    queryExtent(queryOptions: {
        text: string;
        types?: string;
        extent: any[][];
        count?: number;
        page?: number;
        success?: (...params: any[]) => any;
        error?: (...params: any[]) => any;
    }): Promise<any>;
}

declare namespace Measure {
    /**
     * @example
     * //绑定监听事件
     * thing.on(mars3d.EventType.change, function (event) {
     *   console.log('发送了变化', event)
     * })
     * @property change - 测量值变化了
     * @property start - 异步测量中，开始测量
     * @property end - 异步测量中，完成了测量后
     * @property add - 添加对象
     * @property remove - 移除对象
     * @property show - 显示了对象
     * @property hide - 隐藏了对象
     * @property click - 左键单击 鼠标事件
     * @property rightClick - 右键单击 鼠标事件
     * @property mouseOver - 鼠标移入 鼠标事件
     * @property mouseOut - 鼠标移出 鼠标事件
     * @property popupOpen - popup弹窗打开后
     * @property popupClose - popup弹窗关闭
     * @property tooltipOpen - tooltip弹窗打开后
     * @property tooltipClose - tooltip弹窗关闭
     * @property contextMenuOpen - 右键菜单 打开后
     * @property contextMenuClose - 右键菜单 关闭
     * @property contextMenuClick - 右键菜单 单击某一项后
     * @property drawStart - 开始绘制 标绘事件
     * @property drawMouseMove - 正在移动鼠标中，绘制过程中鼠标移动了点 标绘事件
     * @property drawAddPoint - 绘制过程中增加了点 标绘事件
     * @property drawRemovePoint - 绘制过程中删除了最后一个点 标绘事件
     * @property drawCreated - 创建完成 标绘事件
     * @property editStart - 开始编辑 标绘事件
     * @property editMouseDown - 移动鼠标按下左键（LEFT_DOWN）标绘事件
     * @property editMouseMove - 正在移动鼠标中，正在编辑拖拽修改点中（MOUSE_MOVE） 标绘事件
     * @property editMovePoint - 编辑修改了点（LEFT_UP）标绘事件
     * @property editRemovePoint - 编辑删除了点 标绘事件
     * @property editStyle - 图上编辑修改了相关style属性 标绘事件
     * @property editStop - 停止编辑 标绘事件
     */
    type EventType = {
        change: string;
        start: string;
        end: string;
        add: string;
        remove: string;
        show: string;
        hide: string;
        click: string;
        rightClick: string;
        mouseOver: string;
        mouseOut: string;
        popupOpen: string;
        popupClose: string;
        tooltipOpen: string;
        tooltipClose: string;
        contextMenuOpen: string;
        contextMenuClose: string;
        contextMenuClick: string;
        drawStart: string;
        drawMouseMove: string;
        drawAddPoint: string;
        drawRemovePoint: string;
        drawCreated: string;
        editStart: string;
        editMouseDown: string;
        editMouseMove: string;
        editMovePoint: string;
        editRemovePoint: string;
        editStyle: string;
        editStop: string;
    };
}

/**
 * 图上量算
 * @param [options] - 参数对象，包括以下：
 * @param [options.hasEdit = false] - 是否可编辑
 * @param [options.isAutoEditing = true] - 完成测量时是否自动启动编辑(需要hasEdit:true时)
 * @param [options.isContinued = false] - 是否连续测量
 * @param [options.label] - 测量结果文本的样式
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的map对象，false时不冒泡事件
 * @param [options.pid = -1] - 量算对应的图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 量算对应的图层名称
 */
declare class Measure extends BaseThing {
    constructor(options?: {
        hasEdit?: boolean;
        isAutoEditing?: boolean;
        isContinued?: boolean;
        label?: LabelEntity.StyleOptions | any;
        id?: string | number;
        enabled?: boolean;
        eventParent?: BaseClass | boolean;
        pid?: string | number;
        name?: string;
    });
    /**
     * 对应的矢量图层
     */
    readonly graphicLayer: GraphicLayer;
    /**
     * 图层内的Graphic集合对象
     */
    readonly graphics: BaseGraphic[];
    /**
     * 是否有进行量算
     */
    readonly hasMeasure: boolean;
    /**
     * 测量 空间长度
     * @param [options] - 控制参数
     * @param [options.style] - 路线的样式
     * @param [options.unit = 'auto'] - 计量单位,{@link MeasureUtil#formatDistance}可选值：auto、m、km、wm、mile、zhang 等。auto时根据距离值自动选用k或km
     * @param [options.maxPointNum = 9999] - 绘制时，最多允许点的个数
     * @param [options.addHeight] - 在绘制时，在绘制点的基础上增加的高度值
     * @param [options.showAddText = true] - 是否显示每一段的增加部分距离，如（+10.1km）
     * @param [options.decimal = 2] - 显示的文本中保留的小数位
     * @returns 绘制创建完成的Promise，返回 长度测量控制类 对象
     */
    distance(options?: {
        style?: PolylineEntity.StyleOptions | any;
        unit?: string;
        maxPointNum?: number;
        addHeight?: number;
        showAddText?: boolean;
        decimal?: number;
    }): Promise<DistanceMeasure | any>;
    /**
     * 测量 贴地长度
     * @param [options] - 控制参数
     * @param [options.style] - 路线的样式
     * @param [options.unit = 'auto'] - 计量单位,{@link MeasureUtil#formatDistance}可选值：auto、m、km、wm、mile、zhang 等。auto时根据距离值自动选用k或km
     * @param [options.maxPointNum = 9999] - 绘制时，最多允许点的个数
     * @param [options.addHeight] - 在绘制时，在绘制点的基础上增加的高度值
     * @param [options.showAddText = true] - 是否显示每一段的增加部分距离，如（+10.1km）
     * @param [options.splitNum = 100] - 插值数，将线段分割的个数
     * @param [options.has3dtiles = auto] - 是否在3dtiles模型上分析（模型分析较慢，按需开启）,默认内部根据点的位置自动判断（但可能不准）
     * @param [options.exact = true] - 是否进行精确计算， 传false时是否快速概略计算方式，该方式计算精度较低，但计算速度快，仅能计算在当前视域内坐标的高度
     * @param [options.decimal = 2] - 显示的文本中保留的小数位
     * @returns 绘制创建完成的Promise，返回 贴地长度测量控制类 对象
     */
    distanceSurface(options?: {
        style?: PolylineEntity.StyleOptions | any;
        unit?: string;
        maxPointNum?: number;
        addHeight?: number;
        showAddText?: boolean;
        splitNum?: number;
        has3dtiles?: boolean;
        exact?: boolean;
        decimal?: number;
    }): Promise<DistanceSurfaceMeasure | any>;
    /**
     * 剖面分析，测量线插值点的高程数据
     * @param [options] - 控制参数
     * @param [options.style] - 路线的样式
     * @param [options.unit = 'auto'] - 计量单位,{@link MeasureUtil#formatDistance}可选值：auto、m、km、wm、mile、zhang 等。auto时根据距离值自动选用k或km
     * @param [options.maxPointNum = 9999] - 绘制时，最多允许点的个数
     * @param [options.addHeight] - 在绘制时，在绘制点的基础上增加的高度值
     * @param [options.splitNum = 200] - 插值数，将线段分割的个数
     * @param [options.has3dtiles = auto] - 是否在3dtiles模型上分析（模型分析较慢，按需开启）,默认内部根据点的位置自动判断（但可能不准）
     * @param [options.exact = true] - 是否进行精确计算， 传false时是否快速概略计算方式，该方式计算精度较低，但计算速度快，仅能计算在当前视域内坐标的高度
     * @param [options.decimal = 2] - 显示的文本中保留的小数位
     * @returns 绘制创建完成的Promise，返回 剖面分析控制类矢量对象
     */
    section(options?: {
        style?: PolylineEntity.StyleOptions | any;
        unit?: string;
        maxPointNum?: number;
        addHeight?: number;
        splitNum?: number;
        has3dtiles?: boolean;
        exact?: boolean;
        decimal?: number;
    }): Promise<SectionMeasure | any>;
    /**
     * 面积测量（水平面）
     * @param [options] - 控制参数
     * @param [options.style] - 面的样式
     * @param [options.unit = 'auto'] - 计量单位,{@link MeasureUtil#formatArea}可选值：auto、m、km、mu、ha 。auto时根据面积值自动选用k或km
     * @param [options.decimal = 2] - 显示的文本中保留的小数位
     * @returns 绘制创建完成的Promise，返回 面积测量控制类 对象
     */
    area(options?: {
        style?: PolygonEntity.StyleOptions | any;
        unit?: string;
        decimal?: number;
    }): Promise<AreaMeasure | any>;
    /**
     * 贴地面积测量
     * @param [options] - 控制参数
     * @param [options.style] - 面的样式
     * @param [options.unit = 'auto'] - 计量单位,{@link MeasureUtil#formatArea}可选值：auto、m、km、mu、ha 。auto时根据面积值自动选用k或km
     * @param [options.splitNum = 10] - 插值数，将面分割的网格数
     * @param [options.has3dtiles = auto] - 是否在3dtiles模型上分析（模型分析较慢，按需开启）,默认内部根据点的位置自动判断（但可能不准）
     * @param [options.decimal = 2] - 显示的文本中保留的小数位
     * @param [options.exact = true] - 是否进行精确计算， 传false时是否快速概略计算方式，该方式计算精度较低，但计算速度快，仅能计算在当前视域内坐标的高度
     * @returns 绘制创建完成的Promise，返回 面积测量控制类 对象
     */
    areaSurface(options?: {
        style?: PolygonEntity.StyleOptions | any;
        unit?: string;
        splitNum?: number;
        has3dtiles?: boolean;
        decimal?: number;
        exact?: boolean;
    }): Promise<AreaSurfaceMeasure | any>;
    /**
     * 体积测量（方量分析）
     * @param [options] - 控制参数
     * @param [options.style] - 基准面的样式
     * @param [options.unit = 'auto'] - 计量单位,{@link MeasureUtil#formatArea}可选值：auto、m、km、mu、ha 。auto时根据面积值自动选用k或km
     * @param [options.splitNum = 10] - 插值数，将面分割的网格数
     * @param [options.has3dtiles] - 是否在3dtiles模型上分析（模型分析较慢，按需开启）,默认内部根据点的位置自动判断（但可能不准）
     * @param [options.exact = true] - 是否进行精确计算， 传false时是否快速概略计算方式，该方式计算精度较低，但计算速度快，仅能计算在当前视域内坐标的高度
     * @param [options.minHeight] - 可以指定最低高度（单位：米）
     * @param [options.maxHeight] - 可以指定最高高度（单位：米）
     * @param [options.height] - 可以指定基准面高度（单位：米），默认是绘制后的最低高度值
     * @param [options.heightLabel = true] - 是否显示各边界点高度值文本
     * @param [options.offsetLabel = false] - 是否显示各边界点高度差文本
     * @param [options.showArea = true] - 是否显示横切面积
     * @param [options.polygonWall] - 围合的墙样式
     * @param [options.labelHeight] - 各边界点高度结果文本的样式
     * @param [options.decimal = 2] - 显示的文本中保留的小数位
     * @returns 绘制创建完成的Promise，返回 体积测量控制类 对象
     */
    volume(options?: {
        style?: PolygonEntity.StyleOptions | any;
        unit?: string;
        splitNum?: number;
        has3dtiles?: boolean;
        exact?: boolean;
        minHeight?: number;
        maxHeight?: number;
        height?: number;
        heightLabel?: boolean;
        offsetLabel?: boolean;
        showArea?: boolean;
        polygonWall?: PolygonEntity.StyleOptions | any;
        labelHeight?: LabelEntity.StyleOptions | any;
        decimal?: number;
    }): Promise<VolumeMeasure | any>;
    /**
     * 高度测量
     * @param [options] - 控制参数
     * @param [options.style] - 路线的样式
     * @param [options.unit = 'auto'] - 计量单位,{@link MeasureUtil#formatDistance}可选值：auto、m、km、wm、mile、zhang 等。auto时根据距离值自动选用k或km
     * @param [options.decimal = 2] - 显示的文本中保留的小数位
     * @returns 绘制创建完成的Promise，返回 高度测量 对象
     */
    height(options?: {
        style?: PolylineEntity.StyleOptions | any;
        unit?: string;
        decimal?: number;
    }): Promise<HeightMeasure | any>;
    /**
     * 三角高度测量，
     * 包括水平距离、空间距离、高度差。
     * @param [options] - 控制参数
     * @param [options.style] - 路线的样式
     * @param [options.unit = 'auto'] - 计量单位,{@link MeasureUtil#formatDistance}可选值：auto、m、km、wm、mile、zhang 等。auto时根据距离值自动选用k或km
     * @param [options.decimal = 2] - 显示的文本中保留的小数位
     * @returns 绘制创建完成的Promise，返回 三角高度测量控制类 对象
     */
    heightTriangle(options?: {
        style?: PolylineEntity.StyleOptions | any;
        unit?: string;
        decimal?: number;
    }): Promise<HeightTriangleMeasure | any>;
    /**
     * 角度测量
     * @param [options] - 控制参数
     * @param [options.style] - 路线的样式，默认为箭头线
     * @param [options.angleDecimal = 1] - 显示的 角度值 文本中保留的小数位
     * @param [options.decimal = 2] - 显示的 距离值 文本中保留的小数位
     * @returns 绘制创建完成的Promise，返回 角度测量控制类 对象
     */
    angle(options?: {
        style?: PolylineEntity.StyleOptions | any;
        angleDecimal?: number;
        decimal?: number;
    }): Promise<AngleMeasure | any>;
    /**
     * 坐标测量
     * @param [options] - 控制参数
     * @param [options.style] - 点的样式
     * @returns 绘制创建完成的Promise，返回 坐标测量控制类 对象
     */
    point(options?: {
        style?: PointEntity.StyleOptions | any;
    }): Promise<PointMeasure | any>;
    /**
     * 停止绘制，如有未完成的绘制会自动删除
     * @returns 是否清除了未完成的对象
     */
    stopDraw(): boolean;
    /**
     * 清除正在绘制
     * @returns 是否清除了对象
     */
    clearDrawing(): boolean;
    /**
     * 完成绘制和编辑，如有未完成的绘制会自动完成。
     * 在移动端需要调用此方法来类似PC端双击结束。
     * @returns 是否正常结束了矢量对象绘制
     */
    endDraw(): boolean;
    /**
     * 清除测量
     * @returns 无
     */
    clear(): void;
    /**
     * 更新量测结果的单位
     * @param unit - 计量单位,{@link MeasureUtil#formatDistance}{@link MeasureUtil#formatArea} 可选值：auto、m、km、wm、mile、zhang 等等。auto时根据距离值自动选用k或km
     * @returns 无
     */
    updateUnit(unit: string): void;
    /**
     * 销毁当前对象
     * @param [noDel = false] - false:会自动delete释放所有属性，true：不delete绑定的变量
     * @returns 无
     */
    destroy(noDel?: boolean): void;
}

declare namespace Shadows {
    /**
     * 当前类支持的{@link EventType}事件类型
     * @example
     * //绑定监听事件
     * thing.on(mars3d.EventType.change, function (event) {
     *   console.log('时间发送了变化', event)
     * })
     * @property change - 变化了
     */
    type EventType = {
        change: string;
    };
}

/**
 * 日照分析
 * @param [options] - 参数对象，包括以下：
 * @param [options.multiplier = 1600] - 时钟倍率，控制速度
 * @param [options.time] - 当前时间
 * @param [options.terrain = true] - 是否启用地形的阴影效果，在平原地区或无地形时可以关闭
 * @param [options.lighting = true] - 是否显示晨昏线，可以看到地球的昼夜区域
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的map对象，false时不冒泡事件
 */
declare class Shadows extends BaseThing {
    constructor(options?: {
        multiplier?: number;
        time?: Date;
        terrain?: boolean;
        lighting?: boolean;
        id?: string | number;
        enabled?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 场景的ShadowMap阴影图
     */
    readonly shadowMap: Cesium.ShadowMap;
    /**
     * 当前时间
     */
    time: Date;
    /**
     * 是否在播放 【针对全局时钟的，即 map.clock.shouldAnimate】
     */
    readonly isStart: boolean;
    /**
     * 倍速,控制速率
     */
    multiplier: number;
    /**
     * 开始播放日照分析效果
     * @param startDate - 开始时间
     * @param endDate - 结束时间
     * @param [currentTime = startDate] - 当前所在时间
     * @returns 无
     */
    start(startDate: Date, endDate: Date, currentTime?: Date): void;
    /**
     * 暂停 【针对全局时钟的，即 map.clock.shouldAnimate】
     * @returns 无
     */
    pause(): void;
    /**
     * 继续 【针对全局时钟的，即 map.clock.shouldAnimate】
     * @returns 无
     */
    proceed(): void;
    /**
     * 停止 【针对全局时钟的，即 map.clock.shouldAnimate】
     * @returns 无
     */
    stop(): void;
    /**
     * 清除分析
     * @returns 无
     */
    clear(): void;
}

declare namespace Sightline {
    /**
     * 当前类支持的{@link EventType}事件类型
     * @example
     * //绑定监听事件
     * thing.on(mars3d.EventType.end, function (event) {
     *   console.log('分析完成', event)
     * })
     * @property start - 开始分析
     * @property end - 完成分析
     */
    type EventType = {
        start: string;
        end: string;
    };
}

/**
 * 通视分析
 * @param [options] - 参数对象，包括以下：
 * @param [options.visibleColor = new Cesium.Color(0, 1, 0, 1)] - 可视区域颜色
 * @param [options.hiddenColor = new Cesium.Color(1, 0, 0, 1)] - 不可视区域颜色
 * @param [options.depthFailColor] - 当线位于地形或被遮挡时的区域颜色
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的map对象，false时不冒泡事件
 */
declare class Sightline extends BaseThing {
    constructor(options?: {
        visibleColor?: Cesium.Color;
        hiddenColor?: Cesium.Color;
        depthFailColor?: Cesium.Color;
        id?: string | number;
        enabled?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 可视区域颜色
     */
    visibleColor: Cesium.Color;
    /**
     * 不可视区域颜色
     */
    hiddenColor: Cesium.Color;
    /**
     * 当线位于地形或被遮挡时的区域颜色
     */
    depthFailColor: Cesium.Color;
    /**
     * 添加通视分析
     * @param origin - 起点（视点位置）
     * @param target - 终点（目标点位置）
     * @param [options = {}] - 控制参数，包括：
     * @param [options.offsetHeight = 0] - 在起点增加的高度值，比如加上人的身高
     * @returns 分析结果
     */
    add(origin: Cesium.Cartesian3, target: Cesium.Cartesian3, options?: {
        offsetHeight?: number;
    }): any;
    /**
     * 添加通视分析，插值异步分析
     * @param origin - 起点
     * @param target - 终点（目标点）
     * @param [options = {}] - 控制参数，包括：
     * @param [options.offsetHeight = 0] - 在起点增加的高度值，比如加上人的身高
     * @param [options.splitNum = 50] - 插值数，等比分割的个数
     * @param [options.minDistance] - 插值时的最小间隔(单位：米)，优先级高于splitNum
     * @returns 分析结果完成的Promise
     */
    addAsync(origin: Cesium.Cartesian3, target: Cesium.Cartesian3, options?: {
        offsetHeight?: number;
        splitNum?: number;
        minDistance?: number;
    }): Promise<any>;
    /**
     * 清除分析
     * @returns 无
     */
    clear(): void;
}

/**
 * 天际线 描边
 * @param [options] - 参数对象，包括以下：
 * @param [options.color = new Cesium.Color(1.0, 0.0, 0.0)] - 边际线颜色
 * @param [options.width = 2] - 天际线宽度
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的map对象，false时不冒泡事件
 */
declare class Skyline extends BaseThing {
    constructor(options?: {
        color?: Cesium.Color;
        width?: number;
        id?: string | number;
        enabled?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 边际线颜色
     */
    color: Cesium.Color;
    /**
     * 天际线宽度
     */
    width: number;
}

/**
 * 地下模式类
 * @param [options] - 参数对象，包括以下：
 * @param [options.alpha = 0.5] - 透明度  0.0-1.0
 * @param [options.color = Cesium.Color.BLAC] - 当相机在地下或球体是半透明时，渲染球体背面的颜色
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的map对象，false时不冒泡事件
 */
declare class Underground extends BaseThing {
    constructor(options?: {
        alpha?: number;
        color?: Cesium.Color;
        id?: string | number;
        enabled?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 控制球体透明度的Cesium内部对象
     */
    readonly translucency: Cesium.GlobeTranslucency;
    /**
     * 透明度
     */
    alpha: number;
    /**
     * 当相机在地下或球体是半透明时，渲染球体背面的颜色，将根据相机的距离与地球颜色混合。
     * 禁用地下着色时，可以设置为undefined。
     */
    color: Cesium.Color;
    /**
     * 获取或设置将color与Globe颜色混合的远近距离。
     * alpha将插值在{@link Cesium.NearFarScalar#nearValue}和{@linkCesium.NearFarScalar#farValue}之间，
     * 同时摄像机距离在指定的{@link Cesium.NearFarScalar#near}和{@link Cesium.NearFarScalar#far}的上下边界内。
     * 在这些范围之外，alpha仍然被限制在最近的范围内。如果未定义，地下颜色将不会与地球颜色混合。
     * 当相机在椭球上方时，距离计算从椭球上最近的点而不是相机的位置。
     */
    colorAlphaByDistance: Cesium.NearFarScalar;
}

declare namespace CameraHistory {
    /**
     * 当前类支持的{@link EventType}事件类型
     * @example
     * //绑定监听事件
     * thing.on(mars3d.EventType.change, function (event) {
     *   console.log('记录发送了变化', event)
     * })
     * @property change - 变化了
     */
    type EventType = {
        change: string;
    };
}

/**
 * 相机视角记录及处理类，含 上一视图 下一视图 等
 * @param [options] - 参数对象，包括以下：
 * @param [options.maxCacheCount = 99] - 保留的历史记录最多个数
 * @param [options.limit] - 限定视角范围参数，包括以下：
 * @param options.limit.position - 中心点坐标
 * @param options.limit.radius - 半径（单位：米）
 * @param [options.limit.debugExtent] - 是否显示限定范围的边界
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的map对象，false时不冒泡事件
 */
declare class CameraHistory extends BaseThing {
    constructor(options?: {
        maxCacheCount?: number;
        limit?: {
            position: Cesium.Cartesian3;
            radius: number;
            debugExtent?: boolean;
        };
        id?: string | number;
        enabled?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 是否显示限定范围的边界
     */
    debugExtent: boolean;
    /**
     * 切换到 下一视角
     * @returns 是否成功切换
     */
    goNext(): boolean;
    /**
     * 切换到 上一视角
     * @returns 是否成功切换
     */
    goLast(): boolean;
    /**
     * 回到当前视角（记录的最后一个视角）
     * @returns 是否成功切换
     */
    goNow(): boolean;
    /**
     * 回到记录的第一个视角
     * @returns 是否成功切换
     */
    goFirst(): boolean;
}

/**
 * 第一人称贴地漫游，
 * 键盘漫游时，先单击地图激活后 按 W前进、 S后退、A左移、D右移
 * @param [options] - 参数对象，包括以下：
 * @param [options.speed = 1.5] - 速度
 * @param [options.rotateSpeed = -5] - 旋转速度
 * @param [options.height = 10] - 高度
 * @param [options.maxPitch = 88] - 最大pitch角度（度数值）
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的map对象，false时不冒泡事件
 */
declare class FirstPersonRoam extends BaseThing {
    constructor(options?: {
        speed?: number;
        rotateSpeed?: number;
        height?: number;
        maxPitch?: number;
        id?: string | number;
        enabled?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 速度
     */
    speed: number;
    /**
     * 旋转速度
     */
    rotateSpeed: number;
    /**
     * 高度（单位：米）
     */
    height: number;
    /**
     * 最大pitch角度（度数值）
     */
    maxPitch: number;
    /**
     * 开始自动前进漫游
     * @returns 无
     */
    startAutoForward(): void;
    /**
     * 停止自动前进漫游
     * @returns 无
     */
    stopAutoForward(): void;
}

declare namespace RotateOut {
    /**
     * 当前类支持的{@link EventType}事件类型
     * @example
     * //绑定监听事件
     * thing.on(mars3d.EventType.stop, function (event) {
     *   console.log('停止了旋转', event)
     * })
     * @property start - 开始旋转
     * @property change - 变化了角度
     * @property stop - 停止了旋转
     */
    type EventType = {
        start: string;
        change: string;
        stop: string;
    };
}

/**
 * 相机位置不动，对外四周旋转
 * @param [options] - 参数对象，包括以下：
 * @param [options.direction = false] - 旋转方向, true逆时针，false顺时针
 * @param [options.time = 60] - 飞行一周所需时间(单位 秒)，控制速度
 * @param [options.autoStopAngle] - 自动停止的角度值（0-360度），未设置时不自动停止
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的map对象，false时不冒泡事件
 */
declare class RotateOut extends BaseThing {
    constructor(options?: {
        direction?: boolean;
        time?: number;
        autoStopAngle?: number;
        id?: string | number;
        enabled?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 是否在旋转中
     */
    readonly isStart: boolean;
    /**
     * 开始旋转
     * @returns 无
     */
    start(): void;
    /**
     * 停止旋转
     * @returns 无
     */
    stop(): void;
}

declare namespace RotatePoint {
    /**
     * 当前类支持的{@link EventType}事件类型
     * @example
     * //绑定监听事件
     * thing.on(mars3d.EventType.stop, function (event) {
     *   console.log('停止了旋转', event)
     * })
     * @property start - 开始旋转
     * @property change - 变化了角度
     * @property stop - 停止了旋转
     */
    type EventType = {
        start: string;
        change: string;
        stop: string;
    };
}

/**
 * 相机绕 固定中心点 旋转
 * @param [options] - 参数对象，包括以下：
 * @param [options.direction = false] - 旋转方向, true逆时针，false顺时针
 * @param [options.time = 60] - 飞行一周所需时间(单位 秒)，控制速度
 * @param [options.autoStopAngle] - 自动停止的角度值（0-360度），未设置时不自动停止
 * @param [options.distance] - 可以指定旋转时相机到中心点的距离，默认不改变相对距离。
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的map对象，false时不冒泡事件
 */
declare class RotatePoint extends BaseThing {
    constructor(options?: {
        direction?: boolean;
        time?: number;
        autoStopAngle?: number;
        distance?: number;
        id?: string | number;
        enabled?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 是否在旋转中
     */
    readonly isStart: boolean;
    /**
     * 开始旋转
     * @param [point] - 旋转的中心点
     * @returns 无
     */
    start(point?: LngLatPoint | Cesium.Cartesian3 | number[]): void;
    /**
     * 停止旋转
     * @returns 无
     */
    stop(): void;
}

/**
 * 街景视角模式控制,
 * 1、右键拖拽，以相机视角为中心进行旋转;
 * 2、中键拖拽，可以升高或降低相机高度;
 * 3、左键双击，飞行定位到该点;
 * 4、右键双击，围绕该点旋转。
 * @param [options] - 参数对象，包括以下：
 * @param [options.rotateSpeed = 30] - 右键拖拽时，旋转速度，正负控制方向。
 * @param [options.heightStep = 0.2] - 中键拖拽时，高度移动比例，控制升高或降低相机高度的速度
 * @param [options.moveStep = 0.1] - 双击定位到点时，距离目标点的距离的移动比例 0.0-1.0
 * @param [options.moveDuration] - 双击定位到点时，飞行时间（单位：秒）。如果省略，SDK内部会根据飞行距离计算出理想的飞行时间。
 * @param [options.rotatePoint] - 右键双击，围绕该点旋转时的参考，具体同{@link RotatePoint}类的构造参数。
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的map对象，false时不冒泡事件
 */
declare class StreetView extends BaseThing {
    constructor(options?: {
        rotateSpeed?: number;
        heightStep?: number;
        moveStep?: number;
        moveDuration?: number;
        rotatePoint?: any;
        id?: string | number;
        enabled?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 右键拖拽时，旋转速度，正负控制方向。
     */
    rotateSpeed: number;
    /**
     * 中键拖拽时，高度移动比例，控制升高或降低相机高度的速度
     */
    heightStep: number;
    /**
     * 双击定位到点时，距离目标点的距离的移动比例 0.0-1.0
     */
    moveStep: number;
}

declare namespace MatrixMove {
    /**
     * 当前类支持的{@link EventType}事件类型
     * @example
     * //绑定监听事件
     * thing.on(mars3d.EventType.change, function (event) {
     *   console.log('发送了变化', event)
     * })
     * @property start - 开始拖动编辑
     * @property change - 编辑了坐标
     * @property stop - 停止了编辑
     */
    type EventType = {
        start: string;
        change: string;
        stop: string;
    };
}

/**
 * 坐标点按XYZ轴平移图上编辑处理类
 * @param [options] - 参数对象，包括以下：
 * @param [options.position] - 坐标位置
 * @param [options.onChange] - 编辑移动了坐标后的回调方法
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的map对象，false时不冒泡事件
 * @param [options.pid = -1] - 量算对应的图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 量算对应的图层名称
 */
declare class MatrixMove extends BaseThing {
    constructor(options?: {
        position?: LngLatPoint | Cesium.Cartesian3 | number[];
        onChange?: (...params: any[]) => any;
        id?: string | number;
        enabled?: boolean;
        eventParent?: BaseClass | boolean;
        pid?: string | number;
        name?: string;
    });
    /**
     * 位置坐标 （笛卡尔坐标）, 赋值时可以传入LatLngPoint对象
     */
    position: Cesium.Cartesian3;
    /**
     * 是否正在拖动编辑
     */
    readonly isMoveing: boolean;
}

/**
 * 按XYZ轴旋转方向图上编辑处理类
 * @param [options] - 参数对象，包括以下：
 * @param [options.position] - 坐标位置
 * @param [options.heading = 0] - 方向角 （度数值，0-360度）
 * @param [options.pitch = 0] - 俯仰角（度数值，0-360度）
 * @param [options.roll = 0] - 翻滚角（度数值，0-360度）
 * @param [options.onChange] - 旋转了方向后的回调方法
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的map对象，false时不冒泡事件
 * @param [options.pid = -1] - 量算对应的图层父级的id，一般图层管理中使用
 * @param [options.name = ''] - 量算对应的图层名称
 */
declare class MatrixRotate extends MatrixMove {
    constructor(options?: {
        position?: LngLatPoint | Cesium.Cartesian3 | number[];
        heading?: number;
        pitch?: number;
        roll?: number;
        onChange?: (...params: any[]) => any;
        id?: string | number;
        enabled?: boolean;
        eventParent?: BaseClass | boolean;
        pid?: string | number;
        name?: string;
    });
    /**
     * 四周方向角，0-360度角度值
     */
    heading: number;
    /**
     * 俯仰角，上下摇摆的角度，0-360度角度值
     */
    pitch: number;
    /**
     * 滚转角，左右摆动的角度，0-360度角度值
     */
    roll: number;
}

/**
 * 等高线
 * @param [options] - 参数对象，包括以下：
 * @param [options.positions] - 坐标位置数组，只显示单个区域【单个区域场景时使用】
 * @param [options.contourShow = true] - 是否显示等高线
 * @param [options.spacing = 100.0] - 等高线 间隔（单位：米）
 * @param [options.width = 1.5] - 等高线 线宽（单位：像素）
 * @param [options.color = Cesium.Color.RED] - 等高线 颜色
 * @param [options.shadingType = 'none'] - 地表渲染效果，可选值: 无none, 高程 elevation, 坡度slope, 坡向aspect
 * @param [options.shadingAlpha = 0.6] - 地表渲染透明度，0.0-1.0
 * @param [options.colorScheme] - 地表渲染配色方案,默认值为：
 * {
 *       elevation: {
 *         step: [0.0, 0.045, 0.1, 0.15, 0.37, 0.54, 1.0],
 *         color: ['#000000', '#2747E0', '#D33B7D', '#D33038', '#FF9742', '#FF9742', '#ffd700'],
 *       },
 *       slope: {
 *         step: [0.0, 0.29, 0.5, Math.sqrt(2) / 2, 0.87, 0.91, 1.0],
 *         color: ['#000000', '#2747E0', '#D33B7D', '#D33038', '#FF9742', '#FF9742', '#ffd700'],
 *       },
 *       aspect: {
 *         step: [0.0, 0.2, 0.4, 0.6, 0.8, 0.9, 1.0],
 *         color: ['#000000', '#2747E0', '#D33B7D', '#D33038', '#FF9742', '#FF9742', '#ffd700'],
 *       },
 *    }
 * @param [options.showElseArea = true] - 是否显示区域外的地图
 * @param [options.minHeight = -414.0] - 地表渲染配色方案中的 最低海拔高度
 * @param [options.maxHeight = 8777] - 地表渲染配色方案中的 最高海拔高度
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的map对象，false时不冒泡事件
 */
declare class ContourLine extends TerrainEditBase {
    constructor(options?: {
        positions?: any[][] | string[] | LngLatPoint[] | Cesium.Cartesian3[];
        contourShow?: boolean;
        spacing?: number;
        width?: number;
        color?: Cesium.Color | string;
        shadingType?: string;
        shadingAlpha?: number;
        colorScheme?: any;
        showElseArea?: boolean;
        minHeight?: number;
        maxHeight?: number;
        id?: string | number;
        enabled?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 是否显示等高线
     */
    contourShow: boolean;
    /**
     * 地表渲染效果，可选值: 无none, 高程 elevation, 坡度slope, 坡向aspect
     */
    shadingType: string;
    /**
     * 地表渲染透明度，0.0-1.0
     */
    shadingAlpha: number;
    /**
     * 等高线 线宽（单位：像素）
     */
    width: number;
    /**
     * 等高线 间隔（单位：米）
     */
    spacing: number;
    /**
     * 等高线 颜色
     */
    color: Cesium.Color | string;
    /**
     * 清除数据
     * @returns 无
     */
    clear(): void;
}

declare namespace FloodByGraphic {
    /**
     * 当前类支持的{@link EventType}事件类型
     * @example
     * //绑定监听事件
     * thing.on(mars3d.EventType.end, function (event) {
     *   console.log('分析完成', event)
     * })
     * @property start - 开始分析
     * @property change - 变化了
     * @property end - 完成分析
     */
    type EventType = {
        start: string;
        change: string;
        end: string;
    };
}

/**
 * 淹没分析，
 * 基于polygon矢量面抬高模拟，只支持单个区域
 * @param [options] - 参数对象，包括以下：
 * @param [options.positions] - 区域位置，坐标位置数组
 * @param [options.perPositionHeight = false] - 指定是否使用每个位置的高度，true时不改变传入坐标的高度值，适合有坡度的水域,并且true时涉及的高度值均是至偏移值，0代表原始高度。
 * @param [options.style] - 淹没区域的样式
 * @param [options.speed] - 淹没速度
 * @param [options.minHeight] - 淹没起始的海拔高度（单位：米）
 * @param [options.maxHeight] - 淹没结束的海拔高度（单位：米）
 * @param [options.has3dtiles = auto] - 是否在3dtiles模型上分析（模型分析较慢，按需开启）,默认内部根据点的位置自动判断（但可能不准），未设置时根据坐标自动判断（判断可能不准确）
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的map对象，false时不冒泡事件
 */
declare class FloodByGraphic extends BaseThing {
    constructor(options?: {
        positions?: any[][] | string[] | LngLatPoint[] | Cesium.Cartesian3[];
        perPositionHeight?: boolean;
        style?: PolygonEntity.StyleOptions | any;
        speed?: number;
        minHeight?: number;
        maxHeight?: number;
        has3dtiles?: boolean;
        id?: string | number;
        enabled?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 淹没区域 坐标位置数组
     */
    positions: any[][] | string[] | LngLatPoint[] | Cesium.Cartesian3[];
    /**
     * 淹没平面高度（单位：米）
     */
    height: number;
    /**
     * 淹没速度
     */
    speed: number;
    /**
     * 重新赋值参数，同构造方法参数一致。
     * @param options - 参数,与类的构造方法参数相同
     * @returns 当前对象本身，可以链式调用
     */
    setOptions(options: any): FloodByGraphic;
    /**
     * 开始播放淹没动画效果
     * @returns 无
     */
    start(): void;
    /**
     * 停止播放淹没动画效果
     * @returns 无
     */
    stop(): void;
    /**
     * 重新开始播放淹没动画效果
     * @returns 无
     */
    restart(): void;
    /**
     * 清除分析
     * @returns 无
     */
    clear(): void;
    /**
     * 当前类的构造参数
     */
    readonly options: any;
    /**
     * 销毁当前对象
     * @param [noDel = false] - false:会自动delete释放所有属性，true：不delete绑定的变量
     * @returns 无
     */
    destroy(noDel?: boolean): void;
}

declare namespace FloodByMaterial {
    /**
     * 当前类支持的{@link EventType}事件类型
     * @example
     * //绑定监听事件
     * thing.on(mars3d.EventType.end, function (event) {
     *   console.log('分析完成', event)
     * })
     * @property start - 开始分析
     * @property change - 变化了
     * @property end - 完成分析
     */
    type EventType = {
        start: string;
        change: string;
        end: string;
    };
}

/**
 * 淹没分析 ，
 * 基于地球材质，可以多个区域
 * @param [options] - 参数对象，包括以下：
 * @param [options.positions] - 坐标位置数组，只显示单个区域【单个区域场景时使用】
 * @param [options.speed] - 淹没速度
 * @param [options.color = new Cesium.Color(0.15, 0.7, 0.95, 0.5)] - 淹没颜色
 * @param [options.minHeight] - 淹没起始的海拔高度（单位：米）
 * @param [options.maxHeight] - 淹没结束的海拔高度（单位：米）
 * @param [options.showElseArea = true] - 是否显示区域外的地图
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的map对象，false时不冒泡事件
 */
declare class FloodByMaterial extends TerrainEditBase {
    constructor(options?: {
        positions?: any[][] | string[] | LngLatPoint[] | Cesium.Cartesian3[];
        speed?: number;
        color?: Cesium.Color | string;
        minHeight?: number;
        maxHeight?: number;
        showElseArea?: boolean;
        id?: string | number;
        enabled?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 淹没高度（单位：米）
     */
    height: number;
    /**
     * 淹没速度
     */
    speed: number;
    /**
     * 淹没颜色
     */
    color: Cesium.Color;
    /**
     * 重新赋值参数，同构造方法参数一致。
     * @param options - 参数,与类的构造方法参数相同
     * @returns 当前对象本身，可以链式调用
     */
    setOptions(options: any): FloodByMaterial;
    /**
     * 开始播放淹没动画效果
     * @returns 无
     */
    start(): void;
    /**
     * 暂停播放淹没动画效果
     * @returns 无
     */
    stop(): void;
    /**
     * 重新开始播放淹没动画效果
     * @returns 无
     */
    restart(): void;
    /**
     * 清除分析
     * @returns 无
     */
    clear(): void;
    /**
     * 添加单个区域
     * @param positions - 坐标位置数组
     * @param [options = {}] - 控制的参数
     * @param [options.diffHeight] - 开挖深度（地形开挖时，可以控制单个区域的开挖深度）
     * @returns 添加区域的记录对象
     */
    addArea(positions: string[] | any[][] | LngLatPoint[] | Cesium.Cartesian3[], options?: {
        diffHeight?: any;
    }): any;
}

declare namespace Slope {
    /**
     * 当前类支持的{@link EventType}事件类型
     * @example
     * //绑定监听事件
     * thing.on(mars3d.EventType.change, function (event) {
     *   console.log('发送了变化', event)
     * })
     * @property endItem - 多个数据异步分析时，完成其中一个时的回调事件
     * @property end - 多个数据异步分析时，完成所有的回调事件
     */
    type EventType = {
        endItem: string;
        end: string;
    };
}

/**
 * 坡度坡向分析
 * @param [options] - 参数对象，包括以下：
 * @param [options.positions] - 分析区域 坐标位置数组
 * @param [options.arrow] - 箭头线的样式，包括以下：
 * @param [options.arrow.show = true] - 是否显示箭头线
 * @param [options.arrow.color = Cesium.Color.YELLOW] - 颜色
 * @param [options.arrow.width = 15] - 箭头宽度值
 * @param [options.arrow.scale = 0.3] - 箭头长度的比例（网格大小），根据绘制区域的大小和插值数来计算实际长度值。
 * @param [options.arrow.length] - 箭头长度固定值,将覆盖scale参数
 * @param [options.tooltip] - 可以指定绑定tooltip
 * @param [options.tooltipOptions] - tooltip弹窗时的配置参数，也支持如pointerEvents等{@link Tooltip}构造参数
 * @param [options.popup] - 可以指定绑定popup
 * @param [options.popupOptions] - popup弹窗时的配置参数，也支持如pointerEvents等{@link Popup}构造参数
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的map对象，false时不冒泡事件
 */
declare class Slope extends BaseThing {
    constructor(options?: {
        positions?: any[][] | string[] | LngLatPoint[] | Cesium.Cartesian3[];
        arrow?: {
            show?: boolean;
            color?: Cesium.Color;
            width?: number;
            scale?: number;
            length?: number;
        };
        tooltip?: (...params: any[]) => any;
        tooltipOptions?: Tooltip.StyleOptions | any;
        popup?: (...params: any[]) => any;
        popupOptions?: Popup.StyleOptions | any;
        id?: string | number;
        enabled?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 添加计算的 位置
     * @param positions - 坐标数组 或 单个坐标
     * @param [options = {}] - 控制参数，包括：
     * @param [options.splitNum = 8] - 插值数，横纵等比分割的网格个数
     * @param [options.radius = 2] - 取样分析，点周边半径（单位：米）
     * @param [options.count = 4] - 取样分析，点周边象限内点的数量，共计算 count*4 个点
     * @param [options.has3dtiles = auto] - 是否在3dtiles模型上分析（模型分析较慢，按需开启）,默认内部根据点的位置自动判断（但可能不准）
     * @returns 无，计算结果在 end事件中返回
     */
    add(positions: any[][] | LngLatPoint[] | Cesium.Cartesian3[] | LngLatPoint | Cesium.Cartesian3, options?: {
        splitNum?: number;
        radius?: number;
        count?: number;
        has3dtiles?: boolean;
    }): void;
    /**
     * 计算两点之间的坡度
     * @param c1 - 点1
     * @param c2 - 点2
     * @returns 坡度值
     */
    getSlope(c1: Cesium.Cartesian3, c2: Cesium.Cartesian3): number;
    /**
     * 清除分析
     * @returns 无
     */
    clear(): void;
    /**
     * 异步计算点的坡度坡向
     * @param options - 参数对象，具有以下属性:
     * @param options.map - Map地图对象
     * @param options.positions - 坐标数组
     * @param options.radius - 缓冲半径（影响坡度坡向的精度）
     * @param options.count - 缓冲的数量（影响坡度坡向的精度）会求周边(count*4)个点
     * @param options.has3dtiles - 是否在3dtiles模型上分析（模型分析较慢，按需开启）
     * @param options.endItem - 异步计算中，每计算完成1个点的坡度坡向后 的回调方法
     * @returns 异步计算完成的Promise
     */
    static getSlope(options: {
        map: Map;
        positions: Cesium.Cartesian3[];
        radius: number;
        count: number;
        has3dtiles: boolean;
        endItem: getSlope_endItem;
    }): Promise<any>;
}

/**
 * 异步计算完成所有点的坡度坡向后 的回调方法
 * @param event - 参数对象，具有以下属性:
 * @param event.data - 数组对象，数组中每一个值，具有以下属性:
 * @param event.data.position - 坐标位置
 * @param event.data.slope - 度数法值【 α(坡度)=arc tan (高程差/水平距离)】
 * @param event.data.slopeStr1 - 度数法值字符串
 * @param event.data.slopeStr2 - 百分比法值字符串【 坡度 = (高程差/水平距离)x100%】
 * @param event.data.direction - 坡向值（0-360度）
 */
declare type getSlope_callback = (event: {
    data: {
        position: Cesium.Cartesian3;
        slope: number;
        slopeStr1: string;
        slopeStr2: string;
        direction: number;
    }[];
}) => void;

/**
 * 异步计算中，每计算完成1个点的坡度坡向后 的回调方法
 * @param event - 参数对象，具有以下属性:
 * @param event.index - 数组点中的index顺序
 * @param event.data - 数据对象，具有以下属性:
 * @param event.data.position - 坐标位置
 * @param event.data.slope - 度数法值【 α(坡度)=arc tan (高程差/水平距离)】
 * @param event.data.slopeStr1 - 度数法值字符串
 * @param event.data.slopeStr2 - 百分比法值字符串【 坡度 = (高程差/水平距离)x100%】
 * @param event.data.direction - 坡向值（0-360度）
 */
declare type getSlope_endItem = (event: {
    index: number;
    data: {
        position: Cesium.Cartesian3;
        slope: number;
        slopeStr1: string;
        slopeStr2: string;
        direction: number;
    };
}) => void;

/**
 * 地形开挖，
 * 基于地球材质，可以多个区域开挖。
 * @param [options] - 参数对象，包括以下：
 * @param [options.positions] - 坐标位置数组，只显示单个区域【单个区域场景时使用】
 * @param [options.clipOutSide = false] - 是否外切开挖
 * @param [options.image] - 开挖区域的井墙面贴图URL。未传入该值时，不显示开挖区域的井。
 * @param [options.imageBottom] - 当显示开挖区域的井时，井底面贴图URL
 * @param [options.diffHeight] - 当显示开挖区域的井时，设置所有区域的挖掘深度（单位：米）
 * @param [options.splitNum = 30] - 当显示开挖区域的井时，井墙面每两点之间插值个数
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的map对象，false时不冒泡事件
 */
declare class TerrainClip extends TerrainEditBase {
    constructor(options?: {
        positions?: any[][] | string[] | LngLatPoint[] | Cesium.Cartesian3[];
        clipOutSide?: boolean;
        image?: string;
        imageBottom?: string;
        diffHeight?: number;
        splitNum?: number;
        id?: string | number;
        enabled?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 是否外切开挖
     */
    clipOutSide: boolean;
    /**
     * 设置所有区域的挖掘深度（单位：米）
     */
    diffHeight: number;
    /**
     * 清除开挖
     * @returns 无
     */
    clear(): void;
}

/**
 * 地形开挖、淹没等分析 基础类
 * @param [options] - 参数对象，包括以下：
 * @param [options.positions] - 坐标位置数组，只显示单个区域【单个区域场景时使用】
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的map对象，false时不冒泡事件
 */
declare class TerrainEditBase extends BaseThing {
    constructor(options?: {
        positions?: any[][] | string[] | LngLatPoint[] | Cesium.Cartesian3[];
        id?: string | number;
        enabled?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 区域 列表
     */
    readonly list: any;
    /**
     * 是否显示区域外的地图
     */
    showElseArea: boolean;
    /**
     * 坐标位置数组，只显示单个区域【单个区域场景时使用】
     */
    positions: any[][] | string[] | LngLatPoint[] | Cesium.Cartesian3[];
    /**
     * 已添加的区域个数
     */
    readonly length: number;
    /**
     * 清除所有区域
     * @returns 无
     */
    clear(): void;
    /**
     * 根据id获取区域对象
     * @param id - id值
     * @returns 区域对象
     */
    getAreaById(id: number): any;
    /**
     * 隐藏单个区域
     * @param id - 区域id值
     * @returns 无
     */
    hideArea(id: number): void;
    /**
     * 显示单个区域
     * @param id - 区域id值
     * @returns 无
     */
    showArea(id: number): void;
    /**
     * 移除单个区域
     * @param item - 区域的id值，或 addArea返回的区域对象
     * @returns 无
     */
    removeArea(item: number | any): void;
    /**
     * 添加单个区域
     * @param positions - 坐标位置数组
     * @param [options = {}] - 控制的参数
     * @param [options.diffHeight] - 开挖深度（地形开挖时，可以控制单个区域的开挖深度）
     * @returns 添加区域的记录对象
     */
    addArea(positions: string[] | any[][] | LngLatPoint[] | Cesium.Cartesian3[], options?: {
        diffHeight?: any;
    }): any;
}

/**
 * 地形开挖 ，
 * 基于clippingPlanes接口，只支持单个开挖。
 * @param [options] - 参数对象，包括以下：
 * @param [options.positions] - 开挖区域的 坐标位置数组
 * @param [options.clipOutSide = false] - 是否外切开挖
 * @param [options.image] - 开挖区域的井墙面贴图URL。未传入该值时，不显示开挖区域的井。
 * @param [options.imageBottom] - 当显示开挖区域的井时，井底面贴图URL
 * @param [options.diffHeight] - 当显示开挖区域的井时，设置区域的挖掘深度（单位：米）
 * @param [splitNum = 30] - 当显示开挖区域的井时，井墙面每两点之间插值个数
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的map对象，false时不冒泡事件
 */
declare class TerrainPlanClip extends BaseThing {
    constructor(options?: {
        positions?: any[][] | string[] | LngLatPoint[] | Cesium.Cartesian3[];
        clipOutSide?: boolean;
        image?: string;
        imageBottom?: string;
        diffHeight?: number;
        id?: string | number;
        enabled?: boolean;
        eventParent?: BaseClass | boolean;
    }, splitNum?: number);
    /**
     * 开挖区域的 坐标位置数组
     */
    positions: any[][] | string[] | LngLatPoint[] | Cesium.Cartesian3[];
    /**
     * 设置所有区域的挖掘深度（单位：米）
     */
    diffHeight: number;
    /**
     * 是否外切开挖
     */
    clipOutSide: boolean;
    /**
     * 清除开挖
     * @returns 无
     */
    clear(): void;
}

/**
 * 限高分析
 * @param [options] - 参数对象，包括以下：
 * @param [options.positions] - 限高区域坐标数组
 * @param [options.height] - 限高高度（单位米）,相对于bottomHeight模型地面的海拔高度的相对高度。
 * @param [options.bottomHeight] - 模型地面的海拔高度（单位米）
 * @param [options.color = "#3388ff"] - 颜色
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的map对象，false时不冒泡事件
 */
declare class LimitHeight extends BaseThing {
    constructor(options?: {
        positions?: any[][] | string[] | LngLatPoint[] | Cesium.Cartesian3[];
        height?: number;
        bottomHeight?: number;
        color?: string | Cesium.Color;
        id?: string | number;
        enabled?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 矢量数据图层
     */
    readonly layer: GraphicLayer;
    /**
     * 分析区域坐标数组
     */
    positions: any[][] | string[] | LngLatPoint[] | Cesium.Cartesian3[];
    /**
     * 限高高度（单位米）,相对于bottomHeight模型地面的海拔高度的相对高度。
     */
    height: number;
    /**
     * 模型地面的海拔高度（单位：米）
     */
    bottomHeight: number;
    /**
     * 清除限高分析
     * @returns 无
     */
    clear(): void;
}

/**
 * Gltf模型剖切，
 * 基于clippingPlanes接口，只支持单个开挖。
 * @param [options] - 参数对象，包括以下：
 * @param options.graphic - 需要裁剪的对象（gltf模型）
 * @param [options.positions] - 裁剪区域坐标数组(按面或线裁剪)
 * @param [options.height] - 当有裁剪区域挖时，底面的高度（单位米），未设置时不显示底面。
 * @param [options.type] - 裁剪类型（按方向类型正方向单面裁剪）
 * @param [options.distance = 0] - 裁剪的距离
 * @param [options.clipOutSide = false] - 是否外裁剪
 * @param [options.edgeWidth = 0] - 裁剪区域边线宽度，0时不显示
 * @param [options.edgeColor = Cesium.Color.WHITE] - 裁剪区域边线颜色
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的map对象，false时不冒泡事件
 */
declare class ModelPlanClip extends TilesetPlanClip {
    constructor(options?: {
        graphic: ModelEntity;
        positions?: any[][] | string[] | LngLatPoint[] | Cesium.Cartesian3[];
        height?: number;
        type?: ClipType;
        distance?: number;
        clipOutSide?: boolean;
        edgeWidth?: number;
        edgeColor?: Cesium.Color;
        id?: string | number;
        enabled?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 需要裁剪的对象（gltf模型）
     */
    graphic: ModelEntity;
    /**
     * 获取当前转换计算模型逆矩阵，
     * 用于 局部坐标系 与 世界坐标系 的转换。
     */
    readonly inverseMatrix: Cesium.Matrix4;
}

declare namespace ModelPlanClip {
    /**
     * 裁剪模型 类型 枚举 同{@link ClipType}
     */
    enum Type {
    }
}

/**
 * 3dtiles模型box盒子裁剪，
 * 基于clippingPlanes接口，只支持单个开挖。
 * @param [options] - 参数对象，包括以下：
 * @param options.layer - 需要裁剪的对象（3dtiles图层）
 * @param options.position - 裁剪盒子中心坐标位置
 * @param options.dimensions - 裁剪盒子区域的长度、宽度和高度
 * @param [options.showBox = false] - 是否显示box盒子
 * @param [options.boxStyle] - box盒子显示时的样式
 * @param [options.clipOutSide = false] - 是否外裁剪
 * @param [options.edgeWidth = 0] - 裁剪区域边线宽度，0时不显示
 * @param [options.edgeColor = Cesium.Color.WHITE] - 裁剪区域边线颜色
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的map对象，false时不冒泡事件
 */
declare class TilesetBoxClip extends BaseThing {
    constructor(options?: {
        layer: TilesetLayer;
        position: LngLatPoint | Cesium.Cartesian3;
        dimensions: Cesium.Cartesian3;
        showBox?: boolean;
        boxStyle?: BoxEntity.StyleOptions | any;
        clipOutSide?: boolean;
        edgeWidth?: number;
        edgeColor?: Cesium.Color;
        id?: string | number;
        enabled?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 需要裁剪的对象（3dtiles图层）
     */
    layer: TilesetLayer;
    /**
     * 裁剪面集合
     */
    readonly planes: Cesium.ClippingPlaneCollection;
    /**
     * 获取当前转换计算模型逆矩阵，
     * 用于 局部坐标系 与 世界坐标系 的转换。
     */
    readonly inverseMatrix: Cesium.Matrix4;
    /**
     * 模型当前中心点坐标
     */
    readonly center: Cesium.Cartesian3;
    /**
     * 裁剪box中心点坐标
     */
    position: number[] | LngLatPoint | Cesium.Cartesian3;
    /**
     * 裁剪box的长宽高
     */
    dimensions: Cesium.Cartesian3;
    /**
     * 是否显示box盒子
     */
    showBox: boolean;
    /**
     * 重新绘制
     * @returns 无
     */
    redraw(): void;
    /**
     * 清除裁剪面
     * @returns 无
     */
    clear(): void;
}

/**
 * 3dtiles模型裁剪
 * @param [options] - 参数对象，包括以下：
 * @param options.layer - 需要裁剪的对象（3dtiles图层）
 * @param [options.area] - 多区域数组对象, 示例： [{ positions: [[108.959062, 34.220134, 397], [108.959802, 34.220147, 397], [108.959106, 34.21953, 398]] }]
 * @param [options.clipOutSide = false] - 是否外裁剪
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的map对象，false时不冒泡事件
 */
declare class TilesetClip extends TilesetEditBase {
    constructor(options?: {
        layer: TilesetLayer;
        area?: any;
        clipOutSide?: boolean;
        id?: string | number;
        enabled?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 是否外裁剪
     */
    clipOutSide: boolean;
}

/**
 * 3dtiles模型分析（裁剪、压平、淹没） 基础类
 * @param [options] - 参数对象，包括以下：
 * @param options.layer - 需要模型分析的对象（3dtiles图层）
 * @param [options.area] - 多区域数组对象, 示例： [{ positions: [[108.959062, 34.220134, 397], [108.959802, 34.220147, 397], [108.959106, 34.21953, 398]] }]
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的map对象，false时不冒泡事件
 */
declare class TilesetEditBase extends BaseThing {
    constructor(options?: {
        layer: TilesetLayer;
        area?: any;
        id?: string | number;
        enabled?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 区域 列表
     */
    readonly list: any;
    /**
     * 需要分析的模型（3dtiles图层）
     */
    layer: TilesetLayer;
    /**
     * 需要分析的模型 对应的 Cesium3DTileset 对象
     */
    readonly tileset: Cesium.Cesium3DTileset;
    /**
     * 压平高度 (单位：米)，基于压平区域最低点高度的偏移量
     */
    readonly layerHeight: number;
    /**
     * 已添加的区域个数
     */
    readonly length: number;
    /**
     * 清除分析
     * @returns 无
     */
    clear(): void;
    /**
     * 根据id获取区域对象
     * @param id - id值
     * @returns 区域对象
     */
    getAreaById(id: number): any;
    /**
     * 隐藏单个区域
     * @param id - 区域id值
     * @returns 无
     */
    hideArea(id: number): void;
    /**
     * 显示单个区域
     * @param id - 区域id值
     * @returns 无
     */
    showArea(id: number): void;
    /**
     * 移除单个区域
     * @param item - 区域的id，或 addArea返回的区域对象
     * @returns 无
     */
    removeArea(item: number | any): void;
    /**
     * 添加区域
     * @param positions - 坐标位置数组
     * @returns 添加区域的记录对象
     */
    addArea(positions: string[] | any[][] | LngLatPoint[] | Cesium.Cartesian3[]): any;
    /**
     * 转为Json简单对象，用于存储后再传参加载
     * @returns Json简单对象
     */
    toJSON(): any;
}

/**
 * 3dtiles模型压平
 * @param [options] - 参数对象，包括以下：
 * @param options.layer - 需要压平的对象（3dtiles图层）
 * @param [options.area] - 多区域数组对象, 示例： [{ positions: [[108.959062, 34.220134, 397], [108.959802, 34.220147, 397], [108.959106, 34.21953, 398]] }]
 * @param [options.flatHeight] - 模型基准高度(单位：米)，基于压平区域最低点高度的纠偏，也支持定义在模型图层中
 * @param [options.old] - 使用老版本压平，即内部自动使用{@link TilesetFlatOld}类
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的map对象，false时不冒泡事件
 */
declare class TilesetFlat extends TilesetEditBase {
    constructor(options?: {
        layer: TilesetLayer;
        area?: any;
        flatHeight?: number;
        old?: boolean;
        id?: string | number;
        enabled?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 区域 列表
     */
    readonly list: any;
    /**
     * 需要分析的模型（3dtiles图层）
     */
    layer: TilesetLayer;
    /**
     * 需要分析的模型 对应的 Cesium3DTileset 对象
     */
    readonly tileset: Cesium.Cesium3DTileset;
    /**
     * 压平高度 (单位：米)，基于压平区域最低点高度的偏移量
     */
    readonly layerHeight: number;
    /**
     * 已添加的区域个数
     */
    readonly length: number;
    /**
     * 添加单个区域
     * @param positions - 坐标位置数组
     * @param [options = {}] - 控制的参数
     * @param [options.height] - 开挖深度（地形开挖时，可以控制单个区域的开挖深度）
     * @returns 添加区域的记录对象
     */
    addArea(positions: string[] | any[][] | LngLatPoint[] | Cesium.Cartesian3[], options?: {
        height?: any;
    }): Promise<any>;
    /**
     * 根据id获取区域对象
     * @param id - id值
     * @returns 区域对象
     */
    getAreaById(id: number): any;
    /**
     * 更新压平高度 (单位：米)
     * @param height - 高度值（单位：米）
     * @param [id] - 区域对象id
     */
    updateHeight(height: number, id?: number): void;
    /**
     * 隐藏单个区域
     * @param id - 区域id值
     * @returns 无
     */
    hideArea(id: number): void;
    /**
     * 显示单个区域
     * @param id - 区域id值
     * @returns 无
     */
    showArea(id: number): void;
    /**
     * 移除单个区域
     * @param item - 区域的id，或 addArea返回的区域对象
     * @returns 无
     */
    removeArea(item: number | any): void;
    /**
     * 转为Json简单对象，用于存储后再传参加载
     * @returns Json简单对象
     */
    toJSON(): any;
    /**
     * 清除分析
     * @returns 无
     */
    clear(): void;
}

/**
 * 3dtiles模型压平
 * @param [options] - 参数对象，包括以下：
 * @param options.layer - 需要压平的对象（3dtiles图层）
 * @param [options.area] - 多区域数组对象, 示例： [{ positions: [[108.959062, 34.220134, 397], [108.959802, 34.220147, 397], [108.959106, 34.21953, 398]] }]
 * @param [options.height] - 压平高度 (单位：米)，基于压平区域最低点高度的偏移量
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的map对象，false时不冒泡事件
 */
declare class TilesetFlatOld extends TilesetEditBase {
    constructor(options?: {
        layer: TilesetLayer;
        area?: any;
        height?: number;
        id?: string | number;
        enabled?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 压平高度 (单位：米)，基于压平区域最低点高度的偏移量
     */
    height: number;
    /**
     * 更新压平高度 (单位：米)
     * @param height - 高度值（单位：米）
     */
    updateHeight(height: number): void;
}

declare namespace TilesetFlood {
    /**
     * 当前类支持的{@link EventType}事件类型
     * @example
     * //绑定监听事件
     * thing.on(mars3d.EventType.end, function (event) {
     *   console.log('分析完成', event)
     * })
     * @property start - 开始分析
     * @property change - 变化了
     * @property end - 完成分析
     */
    type EventType = {
        start: string;
        change: string;
        end: string;
    };
}

/**
 * 3dtiles模型淹没分析
 * @param [options] - 参数对象，包括以下：
 * @param options.layer - 需要裁剪的对象（3dtiles图层）
 * @param [options.area] - 多区域数组对象, 示例： [{ positions: [[108.959062, 34.220134, 397], [108.959802, 34.220147, 397], [108.959106, 34.21953, 398]] }]
 * @param [options.speed] - 淹没速度，米/秒（默认刷新频率为55Hz）
 * @param [options.minHeight] - 淹没起始的海拔高度（单位：米）
 * @param [options.maxHeight] - 淹没结束的海拔高度（单位：米）
 * @param [options.color = new Cesium.Color(0.15, 0.7, 0.95, 0.5)] - 淹没颜色
 * @param [options.floodAll] - 是否对整个模型进行分析
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的map对象，false时不冒泡事件
 */
declare class TilesetFlood extends TilesetEditBase {
    constructor(options?: {
        layer: TilesetLayer;
        area?: any;
        speed?: number;
        minHeight?: number;
        maxHeight?: number;
        color?: Cesium.Color | string;
        floodAll?: boolean;
        id?: string | number;
        enabled?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 淹没速度，米/秒（默认刷新频率为55Hz）
     */
    speed: number;
    /**
     * 是否对整个模型进行分析
     */
    floodAll: boolean;
    /**
     * 淹没高度（单位：米）
     */
    height: number;
    /**
     * 淹没颜色
     */
    color: Cesium.Color;
    /**
     * 重新赋值参数，同构造方法参数一致。
     * @param options - 参数,与类的构造方法参数相同
     * @returns 当前对象本身，可以链式调用
     */
    setOptions(options: any): TilesetFlood;
    /**
     * 开始播放淹没动画效果
     * @returns 无
     */
    start(): void;
    /**
     * 暂停播放淹没动画效果
     * @returns 无
     */
    stop(): void;
    /**
     * 重新开始播放淹没动画效果
     * @returns 无
     */
    restart(): void;
    /**
     * 清除分析
     * @returns 无
     */
    clear(): void;
}

/**
 * 3dtiles模型裁剪，
 * 基于clippingPlanes接口，只支持单个开挖。
 * @param [options] - 参数对象，包括以下：
 * @param options.layer - 需要裁剪的对象（3dtiles图层）
 * @param [options.positions] - 裁剪区域坐标数组(按面或线裁剪)
 * @param [options.height] - 当有裁剪区域挖时，底面的高度（单位米），未设置时不显示底面。
 * @param [options.type] - 裁剪类型（按方向类型正方向单面裁剪）
 * @param [options.distance = 0] - 裁剪的距离
 * @param [options.clipOutSide = false] - 是否外裁剪
 * @param [options.edgeWidth = 0] - 裁剪区域边线宽度，0时不显示
 * @param [options.edgeColor = Cesium.Color.WHITE] - 裁剪区域边线颜色
 * @param [options.showPlane = false] - 是否显示裁剪平面
 * @param [options.editPlane = false] - 是否可以拖拽裁剪平面进行编辑，需要showPlane：true时有效
 * @param [options.planeStyle] - 裁剪平面显示时的样式
 * @param [options.id = createGuid()] - 对象的id标识
 * @param [options.enabled = true] - 对象的启用状态
 * @param [options.eventParent] - 指定的事件冒泡对象，默认为所加入的map对象，false时不冒泡事件
 */
declare class TilesetPlanClip extends BaseThing {
    constructor(options?: {
        layer: TilesetLayer;
        positions?: any[][] | string[] | LngLatPoint[] | Cesium.Cartesian3[];
        height?: number;
        type?: ClipType;
        distance?: number;
        clipOutSide?: boolean;
        edgeWidth?: number;
        edgeColor?: Cesium.Color;
        showPlane?: boolean;
        editPlane?: boolean;
        planeStyle?: PlaneEntity.StyleOptions | any;
        id?: string | number;
        enabled?: boolean;
        eventParent?: BaseClass | boolean;
    });
    /**
     * 需要裁剪的对象（3dtiles图层）
     */
    layer: TilesetLayer;
    /**
     * 裁剪面集合
     */
    readonly planes: Cesium.ClippingPlaneCollection;
    /**
     * 获取当前转换计算模型逆矩阵，
     * 用于 局部坐标系 与 世界坐标系 的转换。
     */
    readonly inverseMatrix: Cesium.Matrix4;
    /**
     * 模型当前中心点坐标
     */
    readonly center: Cesium.Cartesian3;
    /**
     * 更新最后一个面的 裁剪距离 (单位：米)
     */
    distance: number;
    /**
     * 裁剪的斜面偏移量
     */
    normalZ: number;
    /**
     * 裁剪类型（按方向类型正方向单面裁剪）
     */
    type: ClipType;
    /**
     * 裁剪区域坐标数组(按面或线裁剪)
     */
    positions: any[][] | string[] | LngLatPoint[] | Cesium.Cartesian3[];
    /**
     * 是否外裁剪
     */
    clipOutSide: boolean;
    /**
     * 清除裁剪面
     * @returns 无
     */
    clear(): void;
    /**
     * 更新所有面的 裁剪距离 (单位：米)
     * @param val - 裁剪距离 (单位：米)
     * @returns 无
     */
    updateAllDistance(val: number): void;
    /**
     * 更新所有面的 裁剪的斜面偏移量
     * @param val - 斜面偏移量
     * @returns 无
     */
    updateAllNormalZ(val: number): void;
    /**
     * 转为Json简单对象，用于存储后再传参加载
     * @returns Json简单对象
     */
    toJSON(): any;
}

/**
 * 控件相关 静态方法
 */
declare namespace ControlUtil {
    /**
     * 注册控件类
     * @param type - 控件类型
     * @param layerClass - 控件类
     * @returns 无
     */
    function register(type: string, layerClass: BaseControl): void;
    /**
     * 根据 控件类型 获取 控件类
     * @param type - 控件类型
     * @returns 控件类
     */
    function getClass(type: ControlType): BaseControl | undefined;
    /**
     * 创建控件工厂方法
     * @param type - 控件类型
     * @param options - 控件参数，具体见各{@link ControlType}对应的控件类的构造方法参数
     * @returns 创建完成的控件对象
     */
    function create(type: ControlType, options: any): BaseControl;
}

/**
 * 通用材质 转换处理类
 * @param [options] - 控制参数
 */
declare class BaseMaterialConver extends BaseOptsConver {
    constructor(options?: any);
    /**
     * 转换为Cesium相关属性值
     * @param style - 样式配置
     * @param [czmVal = {}] - Cesium属性值
     * @returns Cesium属性值
     */
    static toCesiumVal(style: any, czmVal?: any): any;
    /**
     * 转换Ceium对象为json简单对象，用于导出
     * @param czmVal - Cesium属性值
     * @param [style = {}] - json简单对象
     * @returns json简单对象
     */
    static toJSON(czmVal: any, style?: any): any;
    /**
     * 转换为json简单对象，用于导出
     * @param czmVal - Cesium属性值
     * @param [style = {}] - json简单对象
     * @returns json简单对象
     */
    toJSON(czmVal: any, style?: any): any;
}

/**
 * 图片材质 转换处理类
 * @param [options] - 控制参数
 */
declare class ImageOptsConver extends BaseMaterialConver {
    constructor(options?: any);
    /**
     * 转换style到Cesium对象需要的格式
     * @param style - 样式配置
     * @param [czmVal = {}] - Cesium属性值
     * @returns Cesium属性值
     */
    static toCesiumVal(style: any, czmVal?: any): any;
    /**
     * 转换Ceium对象为json简单对象，用于导出
     * @param czmVal - Cesium属性值
     * @param [style = {}] - json简单对象
     * @returns json简单对象
     */
    static toJSON(czmVal: any, style?: any): any;
}

/**
 * 矢量数据style转换处理基类
 * @param [options] - 控制参数
 */
declare class BaseStyleConver extends BaseOptsConver {
    constructor(options?: any);
}

/**
 * Billboard 矢量数据style转换处理类
 * @param [options] - 控制参数
 */
declare class BillboardStyleConver extends BaseStyleConver {
    constructor(options?: any);
    /**
     * 转换style到Cesium对象需要的格式
     * @param style - 样式配置
     * @param [czmVal = {}] - Cesium属性值
     * @param [isEntity] - 是否为Entity对象
     * @returns Cesium属性值
     */
    static toCesiumVal(style: any, czmVal?: any, isEntity?: boolean): any;
    /**
     * 导出Cesium的样式对象到json可以保存的格式
     * @param czmVal - Cesium属性值
     * @param [style = {}] - json简单对象
     * @param [isEntity] - 是否为Entity对象
     * @returns json简单对象
     */
    static toJSON(czmVal: any, style?: any, isEntity?: boolean): any;
}

/**
 * Box矢量数据style转换处理类
 * @param [options] - 控制参数
 */
declare class BoxStyleConver extends BaseStyleConver {
    constructor(options?: any);
    /**
     * 转换style到Cesium对象需要的格式
     * @param style - 样式配置
     * @param [czmVal = {}] - Cesium属性值
     * @param [isEntity] - 是否为Entity对象
     * @returns Cesium属性值
     */
    static toCesiumVal(style: any, czmVal?: any, isEntity?: boolean): any;
    /**
     * 导出Cesium的样式对象到json可以保存的格式
     * @param czmVal - Cesium属性值
     * @param [style = {}] - json简单对象
     * @param [isEntity] - 是否为Entity对象
     * @returns json简单对象
     */
    static toJSON(czmVal: any, style?: any, isEntity?: boolean): any;
}

/**
 * Circle 矢量数据style转换处理类
 * @param [options] - 控制参数
 */
declare class CircleStyleConver extends BaseStyleConver {
    constructor(options?: any);
    /**
     * 转换style到Cesium对象需要的格式
     * @param style - 样式配置
     * @param [czmVal = {}] - Cesium属性值
     * @param [isEntity] - 是否为Entity对象
     * @returns Cesium属性值
     */
    static toCesiumVal(style: any, czmVal?: any, isEntity?: boolean): any;
    /**
     * 导出Cesium的样式对象到json可以保存的格式
     * @param czmVal - Cesium属性值
     * @param [style = {}] - json简单对象
     * @param [isEntity] - 是否为Entity对象
     * @returns json简单对象
     */
    static toJSON(czmVal: any, style?: any, isEntity?: boolean): any;
}

/**
 * Cloud 矢量数据style转换处理类
 * @param [options] - 控制参数
 */
declare class CloudStyleConver extends BaseStyleConver {
    constructor(options?: any);
    /**
     * 转换style到Cesium对象需要的格式
     * @param style - 样式配置
     * @param [czmVal = {}] - Cesium属性值
     * @returns Cesium属性值
     */
    static toCesiumVal(style: any, czmVal?: any): any;
    /**
     * 导出Cesium的样式对象到json可以保存的格式
     * @param czmVal - Cesium属性值
     * @param [style = {}] - json简单对象
     * @returns json简单对象
     */
    static toJSON(czmVal: any, style?: any): any;
}

/**
 * Corridor 矢量数据style转换处理类
 * @param [options] - 控制参数
 */
declare class CorridorStyleConver extends BaseStyleConver {
    constructor(options?: any);
    /**
     * 转换style到Cesium对象需要的格式
     * @param style - 样式配置
     * @param [czmVal = {}] - Cesium属性值
     * @param [isEntity] - 是否为Entity对象
     * @returns Cesium属性值
     */
    static toCesiumVal(style: any, czmVal?: any, isEntity?: boolean): any;
    /**
     * 导出Cesium的样式对象到json可以保存的格式
     * @param czmVal - Cesium属性值
     * @param [style = {}] - json简单对象
     * @param [isEntity] - 是否为Entity对象
     * @returns json简单对象
     */
    static toJSON(czmVal: any, style?: any, isEntity?: boolean): any;
}

/**
 * Cylinder 矢量数据style转换处理类
 * @param [options] - 控制参数
 */
declare class CylinderStyleConver extends BaseStyleConver {
    constructor(options?: any);
    /**
     * 转换style到Cesium对象需要的格式
     * @param style - 样式配置
     * @param [czmVal = {}] - Cesium属性值
     * @param [isEntity] - 是否为Entity对象
     * @returns Cesium属性值
     */
    static toCesiumVal(style: any, czmVal?: any, isEntity?: boolean): any;
    /**
     * 导出Cesium的样式对象到json可以保存的格式
     * @param czmVal - Cesium属性值
     * @param [style = {}] - json简单对象
     * @param [isEntity] - 是否为Entity对象
     * @returns json简单对象
     */
    static toJSON(czmVal: any, style?: any, isEntity?: boolean): any;
}

/**
 * DivGraphic 矢量数据style转换处理类
 * @param [options] - 控制参数
 */
declare class DivGraphicStyleConver extends BaseStyleConver {
    constructor(options?: any);
    /**
     * 转换style到Cesium对象需要的格式
     * @param style - 样式配置
     * @param [czmVal = {}] - Cesium属性值
     * @returns Cesium属性值
     */
    static toCesiumVal(style: any, czmVal?: any): any;
    /**
     * 转换Ceium对象为json简单对象，用于导出
     * @param czmVal - Cesium属性值
     * @param [style = {}] - json简单对象
     * @returns json简单对象
     */
    static toJSON(czmVal: any, style?: any): any;
}

/**
 * Ellipsoid 矢量数据style转换处理类
 * @param [options] - 控制参数
 */
declare class EllipsoidStyleConver extends BaseStyleConver {
    constructor(options?: any);
    /**
     * 转换style到Cesium对象需要的格式
     * @param style - 样式配置
     * @param [czmVal = {}] - Cesium属性值
     * @param [isEntity] - 是否为Entity对象
     * @returns Cesium属性值
     */
    static toCesiumVal(style: any, czmVal?: any, isEntity?: boolean): any;
    /**
     * 导出Cesium的样式对象到json可以保存的格式
     * @param czmVal - Cesium属性值
     * @param [style = {}] - json简单对象
     * @param [isEntity] - 是否为Entity对象
     * @returns json简单对象
     */
    static toJSON(czmVal: any, style?: any, isEntity?: boolean): any;
}

/**
 * Label 矢量数据style转换处理类
 * @param [options] - 控制参数
 */
declare class LabelStyleConver extends BaseStyleConver {
    constructor(options?: any);
    /**
     * 转换Ceium对象为json简单对象，用于导出
     * @param czmVal - Cesium属性值
     * @param [style = {}] - json简单对象
     * @returns json简单对象
     */
    static toJSON(czmVal: any, style?: any): any;
    /**
     * 设置Label全局透明度
     * @param label - 文本对象
     * @param value - 透明度
     * @returns 无
     */
    static setOpacity(label: Cesium.Label | Cesium.LabelGraphics, value: number): void;
}

/**
 * Model 矢量数据style转换处理类
 * @param [options] - 控制参数
 */
declare class ModelStyleConver extends BaseStyleConver {
    constructor(options?: any);
    /**
     * 转换style到Cesium对象需要的格式
     * @param style - 样式配置
     * @param [czmVal = {}] - Cesium属性值
     * @param [isEntity] - 是否为Entity对象
     * @returns Cesium属性值
     */
    static toCesiumVal(style: any, czmVal?: any, isEntity?: boolean): any;
    /**
     * 导出Cesium的样式对象到json可以保存的格式
     * @param czmVal - Cesium属性值
     * @param [style = {}] - json简单对象
     * @param [isEntity] - 是否为Entity对象
     * @returns json简单对象
     */
    static toJSON(czmVal: any, style?: any, isEntity?: boolean): any;
    /**
     * 设置Model全局透明度
     * @param model - 模型对象
     * @param value - 透明度
     * @returns 无
     */
    static setOpacity(model: Cesium.Model | Cesium.ModelGraphics, value: number): void;
}

/**
 * Path 矢量数据style转换处理类
 * @param [options] - 控制参数
 */
declare class PathStyleConver extends BaseStyleConver {
    constructor(options?: any);
    /**
     * 转换style到Cesium对象需要的格式
     * @param style - 样式配置
     * @param [czmVal = {}] - Cesium属性值
     * @param [isEntity] - 是否为Entity对象
     * @returns Cesium属性值
     */
    static toCesiumVal(style: any, czmVal?: any, isEntity?: boolean): any;
    /**
     * 导出Cesium的样式对象到json可以保存的格式
     * @param czmVal - Cesium属性值
     * @param [style = {}] - json简单对象
     * @param [isEntity] - 是否为Entity对象
     * @returns json简单对象
     */
    static toJSON(czmVal: any, style?: any, isEntity?: boolean): any;
}

/**
 * Plane 矢量数据style转换处理类
 * @param [options] - 控制参数
 */
declare class PlaneStyleConver extends BaseStyleConver {
    constructor(options?: any);
    /**
     * 转换style到Cesium对象需要的格式
     * @param style - 样式配置
     * @param [czmVal = {}] - Cesium属性值
     * @param [isEntity] - 是否为Entity对象
     * @returns Cesium属性值
     */
    static toCesiumVal(style: any, czmVal?: any, isEntity?: boolean): any;
    /**
     * 导出Cesium的样式对象到json可以保存的格式
     * @param czmVal - Cesium属性值
     * @param [style = {}] - json简单对象
     * @param [isEntity] - 是否为Entity对象
     * @returns json简单对象
     */
    static toJSON(czmVal: any, style?: any, isEntity?: boolean): any;
}

/**
 * Point 矢量数据style转换处理类
 * @param [options] - 控制参数
 */
declare class PointStyleConver extends BaseStyleConver {
    constructor(options?: any);
    /**
     * 转换style到Cesium对象需要的格式
     * @param style - 样式配置
     * @param [czmVal = {}] - Cesium属性值
     * @param [isEntity] - 是否为Entity对象
     * @returns Cesium属性值
     */
    static toCesiumVal(style: any, czmVal?: any, isEntity?: boolean): any;
    /**
     * 导出Cesium的样式对象到json可以保存的格式
     * @param czmVal - Cesium属性值
     * @param [style = {}] - json简单对象
     * @param [isEntity] - 是否为Entity对象
     * @returns json简单对象
     */
    static toJSON(czmVal: any, style?: any, isEntity?: boolean): any;
}

/**
 * Polygon 矢量数据style转换处理类
 */
declare class PolygonStyleConver extends BaseStyleConver {
    /**
     * style样式属性赋值到 entity
     * @param style - 样式
     * @param entityGraphic - 矢量数据对应的 Cesium内部对象
     * @param isEntity - 是否为entity
     * @returns 矢量数据所需的Cesium内部对象
     */
    static toCesiumVal(style: PolygonEntity.StyleOptions | any, entityGraphic: Cesium.PolygonGraphics | null, isEntity: boolean): Cesium.PolygonGraphics;
    /**
     * 导出Cesium的样式对象到json可以保存的格式
     * @param czmVal - Cesium属性值
     * @param [style = {}] - json简单对象
     * @param [isEntity] - 是否为Entity对象
     * @returns json简单对象
     */
    static toJSON(czmVal: any, style?: any, isEntity?: boolean): any;
}

/**
 * Polyline 矢量数据style转换处理类
 * @param [options] - 控制参数
 */
declare class PolylineStyleConver extends BaseStyleConver {
    constructor(options?: any);
    /**
     * 转换style到Cesium对象需要的格式
     * @param style - 样式配置
     * @param [czmVal = {}] - Cesium属性值
     * @param [isEntity] - 是否为Entity对象
     * @returns Cesium属性值
     */
    static toCesiumVal(style: any, czmVal?: any, isEntity?: boolean): any;
    /**
     * 导出Cesium的样式对象到json可以保存的格式
     * @param czmVal - Cesium属性值
     * @param [style = {}] - json简单对象
     * @param [isEntity] - 是否为Entity对象
     * @returns json简单对象
     */
    static toJSON(czmVal: any, style?: any, isEntity?: boolean): any;
}

/**
 * PolylineVolume 矢量数据style转换处理类
 * @param [options] - 控制参数
 */
declare class PolylineVolumeStyleConver extends BaseStyleConver {
    constructor(options?: any);
    /**
     * 转换style到Cesium对象需要的格式
     * @param style - 样式配置
     * @param [czmVal = {}] - Cesium属性值
     * @param [isEntity] - 是否为Entity对象
     * @returns Cesium属性值
     */
    static toCesiumVal(style: any, czmVal?: any, isEntity?: boolean): any;
    /**
     * 导出Cesium的样式对象到json可以保存的格式
     * @param czmVal - Cesium属性值
     * @param [style = {}] - json简单对象
     * @param [isEntity] - 是否为Entity对象
     * @returns json简单对象
     */
    static toJSON(czmVal: any, style?: any, isEntity?: boolean): any;
}

/**
 * Rectangle 矢量数据style转换处理类
 * @param [options] - 控制参数
 */
declare class RectangleStyleConver extends BaseStyleConver {
    constructor(options?: any);
    /**
     * 转换style到Cesium对象需要的格式
     * @param style - 样式配置
     * @param [czmVal = {}] - Cesium属性值
     * @param [isEntity] - 是否为Entity对象
     * @returns Cesium属性值
     */
    static toCesiumVal(style: any, czmVal?: any, isEntity?: boolean): any;
    /**
     * 导出Cesium的样式对象到json可以保存的格式
     * @param czmVal - Cesium属性值
     * @param [style = {}] - json简单对象
     * @param [isEntity] - 是否为Entity对象
     * @returns json简单对象
     */
    static toJSON(czmVal: any, style?: any, isEntity?: boolean): any;
}

/**
 * RectangularSensor 矢量数据style转换处理类
 * @param [options] - 控制参数
 */
declare class RectangularSensorStyleConver extends BaseStyleConver {
    constructor(options?: any);
    /**
     * 转换style到Cesium对象需要的格式
     * @param style - 样式配置
     * @param [czmVal = {}] - Cesium属性值
     * @returns Cesium属性值
     */
    static toCesiumVal(style: any, czmVal?: any): any;
    /**
     * 转换Ceium对象为json简单对象，用于导出
     * @param czmVal - Cesium属性值
     * @param [style = {}] - json简单对象
     * @returns json简单对象
     */
    static toJSON(czmVal: any, style?: any): any;
}

/**
 * Wall 矢量数据style转换处理类
 * @param [options] - 控制参数
 */
declare class WallStyleConver extends BaseStyleConver {
    constructor(options?: any);
    /**
     * 转换style到Cesium对象需要的格式
     * @param style - 样式配置
     * @param [czmVal = {}] - Cesium属性值
     * @param [isEntity] - 是否为Entity对象
     * @returns Cesium属性值
     */
    static toCesiumVal(style: any, czmVal?: any, isEntity?: boolean): any;
    /**
     * 导出Cesium的样式对象到json可以保存的格式
     * @param czmVal - Cesium属性值
     * @param [style = {}] - json简单对象
     * @param [isEntity] - 是否为Entity对象
     * @returns json简单对象
     */
    static toJSON(czmVal: any, style?: any, isEntity?: boolean): any;
}

/**
 * DOM操作 相关静态方法类
 */
declare namespace DomUtil {
    /**
     * 创建一个tagName的HTML元素，将其class设置为className，并可选择将其添加到container元素中
     * @param tagName - 元素类型，比如 div
     * @param [className] - 附加的class样式名
     * @param [container] - 添加到指定的父节点(可选)
     * @returns 创建好的DOM元素
     */
    function create(tagName: string, className?: string, container?: HTMLElement | HTMLDivElement | null): HTMLElement | HTMLDivElement | any;
    /**
     * 创建svg元素
     * @param width - 宽度
     * @param height - 高度
     * @param path - url路径
     * @param container - 添加到指定的父节点(可选)
     * @returns 创建的svg元素
     */
    function createSvg(width: number, height: number, path: string, container: HTMLElement): SVGElement;
    /**
     * 创建Video元素
     * @param url - url地址
     * @param [type] - 视频类型
     * @param [className] - 样式名称
     * @param [container] - 添加到指定的父节点(可选)
     * @returns 创建的Video元素
     */
    function createVideo(url: string, type?: string, className?: string, container?: HTMLElement): HTMLVideoElement;
    /**
     * 返回给定DOM id的元素，或者返回元素本身
     * @param id - dom的id
     * @returns DOM元素
     */
    function get(id: string | HTMLElement): HTMLElement;
    /**
     * 将HTML字符串解析为DOM
     * @param domStr - HTML字符串
     * @param [withWrapper] - 是否返回DIV父节点
     * @param [className] - 指定加上的样式名称
     * @returns 解析后的DOM元素
     */
    function parseDom(domStr: string, withWrapper?: boolean, className?: string): HTMLDivElement | NodeListOf<ChildNode>;
    /**
     * 从其父元素中移除元素
     * @param el - DOM元素或元素ID
     * @returns 无
     */
    function remove(el: HTMLElement | string): void;
    /**
     * 删除所有子元素
     * @param el - DOM元素
     * @returns 无
     */
    function empty(el: HTMLElement): void;
    /**
     * 返回元素上某个样式属性的值
     * @param el - 指定的DOM元素
     * @param style - 样式名称
     * @returns 样式的值
     */
    function getStyle(el: HTMLElement, style: string): string | null;
    /**
     * 判断元素是否有指定class样式
     * @param el - DOM元素
     * @param name - class样式名称
     * @returns 包含返回`true`,不包含返回`false`
     */
    function hasClass(el: HTMLElement, name: string): boolean;
    /**
     * 在元素上添加指定的name的calss样式
     * @param el - DOM元素
     * @param name - class样式名称
     * @returns 无
     */
    function addClass(el: HTMLElement, name: string): void;
    /**
     * 在元素上移除指定的name的calss样式
     * @param el - DOM元素
     * @param name - class样式名称
     * @returns 无
     */
    function removeClass(el: HTMLElement, name: string): void;
    /**
     * 在元素上赋值设置指定的name的calss样式
     * @param el - DOM元素
     * @param name - class样式名称
     * @returns 无
     */
    function setClass(el: HTMLElement, name: string): void;
    /**
     * 获取dom元素上的class样式名称
     * @param el - DOM元素
     * @returns class样式名称
     */
    function getClass(el: HTMLElement): string;
    /**
     * 复制canvas对象
     * @param oldCanvas - 原canvas对象
     * @returns 复制后的canvas对象
     */
    function copyCanvas(oldCanvas: HTMLCanvasElement): HTMLCanvasElement;
}

/**
 * 矢量数据标绘编辑相关常量
 */
declare namespace DrawUtil {
    /**
     * 拖拽点分类
     */
    const PointType: number;
    /**
     * 拖拽点颜色
     * @example
     * mars3d.DrawUtil.PointColor.Control = '#1c197d' //位置控制拖拽点
     * mars3d.DrawUtil.PointColor.MoveAll = '#8c003a' //整体平移(如线面)拖拽点
     * mars3d.DrawUtil.PointColor.MoveHeight = '#9500eb' //上下移动高度的拖拽点
     * mars3d.DrawUtil.PointColor.EditAttr = '#f73163' //辅助修改属性（如半径）的拖拽点
     * mars3d.DrawUtil.PointColor.AddMidPoint = 'rgba(4,194,201,0.3)' //增加新点，辅助拖拽点
     */
    const PointColor: Cesium.Color;
    /**
     * 设置编辑点的样式（color颜色除外）
     * @param value - 像素
     * @returns 无
     */
    function setPointStyle(value: PointPrimitive.StyleOptions | any): void;
}

/**
 * 特效相关 静态方法
 */
declare namespace EffectUtil {
    /**
     * 注册特效类
     * @param type - 特效类型
     * @param layerClass - 特效类
     * @returns 无
     */
    function register(type: string, layerClass: BaseEffect): void;
    /**
     * 根据 特效类型 获取 特效类
     * @param type - 特效类型
     * @returns 特效类
     */
    function getClass(type: EffectType): BaseEffect | undefined;
    /**
     * 创建特效工厂方法
     * @param type - 特效类型
     * @param options - 特效参数，具体见各{@link EffectType}对应的特效类的构造方法参数
     * @returns 创建完成的特效对象
     */
    function create(type: EffectType, options: any): BaseEffect;
}

/**
 * 矢量数据 相关静态方法
 */
declare namespace GraphicUtil {
    /**
     * 是否有指定类型矢量对象
     * @param type - 矢量数据类型
     * @returns 是否有指定类型
     */
    function hasType(type: string): boolean;
    /**
     * 循环执行矢量数据类型
     * @param method - 执行的方法
     */
    function eachGraphicType(method: (...params: any[]) => any): void;
    /**
     * 判断该类型是否点状对象
     * @param type - 矢量数据类型
     * @returns 是否点状对象类型
     */
    function isPointType(type: string): boolean;
    /**
     * 判断该类型是否大数据对象
     * @param type - 矢量数据类型
     * @returns 是否大数据对象（继承了BaseCombine的相关类型）
     */
    function isCombineType(type: string): boolean;
    /**
     * 注册矢量数据类
     * @param type - 矢量数据类型
     * @param graphicClass - 矢量数据类
     * @param [isPoint] - 是否为点状数据
     * @returns 无
     */
    function register(type: string, graphicClass: BaseGraphic | any, isPoint?: boolean): void;
    /**
     * 根据 矢量数据类型 获取 矢量数据类
     * @param type - 矢量数据类型
     * @returns 矢量数据类
     */
    function getClass(type: string): BaseGraphic | undefined;
    /**
     * 根据类型和参数 创建Graphic工厂方法
     * @param type - 数据类型
     * @param options - 构造参数， 按type支持{@link GraphicType}类的构造方法参数
     * @returns 创建完成的矢量数据对象
     */
    function create(type: any, options: any): BaseGraphic | any;
    /**
     * 通过标绘  创建Graphic工厂方法
     * @param layer - 图层对象
     * @param options - Graphic构造参数,包含：
     * @param options.type - 类型
     * @param [options.style] - 矢量数据样式，具体参考支持 {@link GraphicType}查询对应type的类
     * @param [options.attr] - 矢量数据的 属性信息，可以任意附加属性。
     * @param [options.name] - 矢量数据名称
     * @returns 创建完成的矢量数据对象
     */
    function fromDraw(layer: GraphicLayer, options: {
        type: GraphicType | string;
        style?: any;
        attr?: any;
        name?: string;
    }): BaseGraphic | any;
}

/**
 * 图层相关 静态方法
 */
declare namespace LayerUtil {
    /**
     * 注册图层类
     * @param type - 图层类型
     * @param layerClass - 图层类
     * @returns 无
     */
    function register(type: string, layerClass: BaseLayer): void;
    /**
     * 根据 图层类型 获取 图层类
     * @param type - 图层类型
     * @returns 图层类
     */
    function getClass(type: LayerType): BaseLayer | undefined;
    /**
     * 创建图层工厂方法
     * @param options - 图层参数，包括：
     * @param options.type - 图层类型
     * @param options.其他 - 具体见各{@link LayerType}对应的图层类的构造方法参数
     * @param [templateValues] - url模版
     * @returns 创建完成的图层对象
     */
    function create(options: {
        type: LayerType;
        其他: any;
    }, templateValues?: any): BaseLayer;
    /**
     * 注册ImageryProvider类
     * @param type - Provider类型
     * @param layerClass - ImageryProvider类
     * @returns 无
     */
    function registerImageryProvider(type: string, layerClass: any): void;
    /**
     * 创建地图底图ImageryProvider的工厂方法
     * @param options - Provider参数，具体见各Provider类的构造方法参数说明
     * @returns ImageryProvider类
     */
    function createImageryProvider(options: any): any;
    /**
     * 获取baseLayerPicker使用的绑定图层列表配置，
     * 用于将config.json的配置basemaps数据转换为imageryProviderViewModels
     * @param arrLayer - basemaps配置
     * @param [templateValues] - url模版，用于替换Url中的模板值的键/值对
     * @returns 转换后的 imageryProviderViewModels数组 和 显示图层的index(selectedIndex)
     */
    function getImageryProviderViewModels(arrLayer: any, templateValues?: any): any;
    /**
     * 创建 无地形的 标准椭球体对象
     * @returns 无地形 标准椭球体对象
     */
    function getNoTerrainProvider(): Cesium.EllipsoidTerrainProvider;
    /**
     * 注册TerrainProvider类
     * @param type - Provider类型
     * @param layerClass - TerrainProvider类
     * @returns 无
     */
    function registerTerrainProvider(type: string, layerClass: any): void;
    /**
     * 创建地形对象的工厂方法
     * @param options - 地形参数
     * @param options.type - 地形类型
     * @param options.url - 地形服务地址
     * @param [options.proxy] - 加载资源时要使用的代理服务url。
     * @param [options.templateValues] - url模版，用于替换Url中的模板值的键/值对
     * @param [options.queryParameters] - 一个对象，其中包含在检索资源时将发送的查询参数。比如：queryParameters: {'access_token': '123-435-456-000'}
     * @param [options.headers] - 一个对象，将发送的其他HTTP标头。比如：headers: { 'X-My-Header': 'valueOfHeader' }
     * @param [options.requestVertexNormals = true] - 是否应该从服务器请求额外的光照信息，如果可用，以每个顶点法线的形式。
     * @param [options.requestWaterMask = false] - 是否应该向服务器请求每个瓦的水掩膜(如果有的话)。
     * @param [options.requestMetadata = true] - 是否应该从服务器请求每个块元数据(如果可用)。
     * @returns 地形对象
     */
    function createTerrainProvider(options: {
        type: TerrainType;
        url: string | Cesium.Resource;
        proxy?: string;
        templateValues?: any;
        queryParameters?: any;
        headers?: any;
        requestVertexNormals?: boolean;
        requestWaterMask?: boolean;
        requestMetadata?: boolean;
    }): Cesium.CesiumTerrainProvider;
    /**
     * 获取baseLayerPicker使用的绑定地形列表
     * @param options - 地形参数,同{@link createTerrainProvider}方法参数
     * @returns 地形列表
     */
    function getTerrainProviderViewModels(options: any): Cesium.ProviderViewModel[];
}

/**
 * SDK内部统一调用console.* 打印日志的控制类，在外部可以按需开启和关闭。
 */
declare namespace Log {
    /**
     * 是否 console.log 打印普通日志信息，可以按需关闭或开启
     * @param val - 是否打印
     * @returns 无
     */
    function hasInfo(val: boolean): void;
    /**
     * 是否 console.warn 打印警告日志信息，可以按需关闭或开启，但不建议关闭
     * @param val - 是否打印
     * @returns 无
     */
    function hasWarn(val: boolean): void;
    /**
     * 是否 console.error 打印错误日志信息，可以按需关闭或开启，但不建议关闭
     * @param val - 是否打印
     * @returns 无
     */
    function hasError(val: boolean): void;
    /**
     * console.log 打印普通日志信息,方便开发调试
     * @param sources - 打印的日志内容
     * @returns 无
     */
    function logInfo(sources: string | any): void;
    /**
     * console.warn 打印警告日志信息,方便开发调试
     * @param sources - 打印的警告日志内容
     * @returns 无
     */
    function logWarn(sources: string | any): void;
    /**
     * console.warn 打印错误日志信息,方便开发调试定位问题
     * @param sources - 打印的错误日志内容
     * @returns 无
     */
    function logError(sources: string | any): void;
}

/**
 * 矢量数据材质
 */
declare namespace MaterialUtil {
    /**
     * 注册自定义的材质
     * @param type - 类型名称
     * @param materialTemplate - 材质模版
     */
    function register(type: string, materialTemplate: any): void;
    /**
     * 创建 材质属性（用于Entity）
     * @param type - 材质类型
     * @param options - 创建参数,具体对照{@link MaterialType}的注释说明
     * @returns 材质属性对象
     */
    function createMaterialProperty(type: any, options: any): BaseMaterialProperty;
    /**
     * 创建 材质（用于Primitive）
     * @param type - 材质类型
     * @param options - 创建参数,具体对照{@link MaterialType}的注释说明
     * @returns 材质对象
     */
    function createMaterial(type: any, options: any): Cesium.Material;
    /**
     * 是否存在指定材质
     * @param type - 材质类型
     * @param [property] - 是否属性材质
     * @returns 是否存在
     */
    function hasMaterial(type: any, property?: boolean): boolean;
    /**
     * 将材质对象转为Josn简单对象，用于保存。
     * @param material - 材质对象
     * @param style - 附加到的目标对象
     * @returns json简单对象
     */
    function toJSON(material: Cesium.Material | BaseMaterialProperty, style: any): any;
    /**
     * 将材质对象参数转为Josn简单对象，用于保存。
     * @param materialType - 材质对象
     * @param materialOptions - 复杂对象
     * @returns json简单对象
     */
    function toJSONByType(materialType: string, materialOptions: any): any;
}

/**
 * 图上量算 的 常用静态方法
 */
declare namespace MeasureUtil {
    /**
     * 求坐标数组的空间距离
     * @param positions - 坐标数组
     * @param [closure] - 是否闭合，如求面的周长时，传入true
     * @returns 距离（单位：米）
     */
    function getDistance(positions: Cesium.Cartesian3[] | LngLatPoint[], closure?: boolean): number;
    /**
     * 求坐标数组的 距离（地球表面弧度的）,
     * 比如北京到纽约（不能穿过球心，是贴地表的线的距离）
     * @param positions - 坐标数组
     * @returns 距离（单位：米）
     */
    function getSurfaceDistance(positions: Cesium.Cartesian3[] | LngLatPoint[]): number;
    /**
     * 异步计算贴地距离中，每计算完成2个点之间的距离后 的回调方法
     * @param options - 参数对象，具有以下属性:
     * @param options.index - 坐标数组的index顺序
     * @param options.positions - 当前2个点之间的 贴地坐标数组
     * @param options.distance - 当前2个点之间的 贴地距离
     * @param options.arrDistance - 已计算完成从第0点到index点的 每一段的长度数组
     * @param options.all_distance - 已计算完成从第0点到index点的 贴地距离
     */
    type getClampDistance_endItem = (options: {
        index: number;
        positions: Cesium.Cartesian3[];
        distance: number;
        arrDistance: number[];
        all_distance: number;
    }) => void;
    /**
     * 异步计算贴地距离完成 的回调方法
     * @param all_distance - 路线的全部距离，单位：米
     * @param arrDistance - 每2个点间的 每一段的长度数组
     */
    type getClampDistance_callback = (all_distance: number, arrDistance: any[]) => void;
    /**
     * 异步计算贴地(地表或模型表面)距离，单位：米
     * @param positions - 坐标数组
     * @param options - 参数对象，具有以下属性:
     * @param options.scene - 三维地图场景对象，一般用map.scene或viewer.scene
     * @param [options.splitNum = 100] - 插值数，将线段分割的个数
     * @param [options.has3dtiles = auto] - 是否在3dtiles模型上分析（模型分析较慢，按需开启）,默认内部根据点的位置自动判断（但可能不准）
     * @param [options.exact = true] - 是否进行精确计算， 传false时是否快速概略计算方式，该方式计算精度较低，但计算速度快，仅能计算在当前视域内坐标的高度
     * @param options.endItem - 异步计算贴地距离中，每计算完成2个点之间的距离后 的回调方法
     * @param options.end - 异步计算完成的 回调方法
     * @returns 异步计算完成的Promise
     */
    function getClampDistance(positions: Cesium.Cartesian3[] | LngLatPoint[], options: {
        scene: Cesium.Scene;
        splitNum?: number;
        has3dtiles?: boolean;
        exact?: boolean;
        endItem: getClampDistance_endItem;
        end: getClampDistance_endItem;
    }): Promise<any>;
    /**
     * 计算面积（空间平面）
     * @param positions - 坐标数组
     * @returns 面积，单位：平方米
     */
    function getArea(positions: Cesium.Cartesian3[] | LngLatPoint[]): number;
    /**
     * 求坐标数组的 横切平面的面积（基于turf.area）
     * @param positions - 坐标数组
     * @returns 距离（单位：米）
     */
    function getSurfaceArea(positions: Cesium.Cartesian3[] | LngLatPoint[]): number;
    /**
     * 计算三角形面积（空间平面）
     * @param pos1 - 三角形顶点坐标1
     * @param pos2 - 三角形顶点坐标2
     * @param pos3 - 三角形顶点坐标3
     * @returns 面积，单位：平方米
     */
    function getTriangleArea(pos1: Cesium.Cartesian3, pos2: Cesium.Cartesian3, pos3: Cesium.Cartesian3): number;
    /**
     * 计算贴地面积(单位：平方米)
     * @param positions - 坐标数组
     * @param options - 参数对象，具有以下属性:
     * @param options.scene - 三维地图场景对象，一般用map.scene或viewer.scene
     * @param [options.splitNum = 10] - 插值数，将面分割的网格数
     * @param [options.has3dtiles = auto] - 是否在3dtiles模型上分析（模型分析较慢，按需开启）,默认内部根据点的位置自动判断（但可能不准）
     * @param [options.exact = true] - 是否进行精确计算， 传false时是否快速概略计算方式，该方式计算精度较低，但计算速度快，仅能计算在当前视域内坐标的高度
     * @returns 异步计算完成的Promise
     */
    function getClampArea(positions: Cesium.Cartesian3[] | LngLatPoint[], options: {
        scene: Cesium.Scene;
        splitNum?: number;
        has3dtiles?: boolean;
        exact?: boolean;
    }): Promise<any>;
    /**
     * 计算2点的角度值，角度已正北为0度，顺时针为正方向
     * @param startPosition - 需要计算的点
     * @param endPosition - 目标点，以该点为参考中心。
     * @param [isNorthZero = false] - 是否正东为0时的角度（如方位角）
     * @returns 返回角度值，0-360度
     */
    function getAngle(startPosition: Cesium.Cartesian3, endPosition: Cesium.Cartesian3, isNorthZero?: boolean): number;
    /**
     * 格式化显示距离值, 可指定单位
     * @param val - 距离值，米
     * @param [options] - 参数：
     * @param [options.unit = 'auto'] - 计量单位, 可选值：auto、m、km、wm、mile、zhang 等。auto时根据距离值自动选用k或km
     * @param [options.lang = 0] - 使用的语言
     * @param [options.decimal = 2] - 保留的小数位
     * @returns 带单位的格式化距离值字符串，如：20.17 米
     */
    function formatDistance(val: number, options?: {
        unit?: string;
        lang?: LangType;
        decimal?: number;
    }): string;
    /**
     * 格式化显示面积值, 可指定单位
     * @param val - 面积值，平方米
     * @param [options] - 参数：
     * @param [options.unit = 'auto'] - 计量单位，可选值：auto、m、km、mu、ha 。auto时根据面积值自动选用m或km
     * @param [options.lang = 0] - 使用的语言
     * @param [options.decimal = 2] - 保留的小数位
     * @returns 带单位的格式化面积值字符串，如：20.21 平方公里
     */
    function formatArea(val: number, options?: {
        unit?: string;
        lang?: LangType;
        decimal?: number;
    }): string;
    /**
     * 格式化显示体积值, 可指定单位
     * @param val - 体积值，立方米
     * @param [options] - 参数：
     * @param [options.unit = 'auto'] - 计量单位，当前无用，备用参数
     * @param [options.lang = 0] - 使用的语言
     * @param [options.decimal = 2] - 保留的小数位
     * @returns 带单位的格式化体积值字符串，如：20.21 方
     */
    function formatVolume(val: number, options?: {
        unit?: string;
        lang?: LangType;
        decimal?: number;
    }): string;
}

/**
 * 坐标点的转换 相关静态方法。
 *  提供了cesium内部不同坐标系之间的坐标转换、提供了国内偏移坐标系与标准坐标的转换。
 */
declare namespace PointTrans {
    /**
     * 经度/纬度 十进制 转为 度分秒格式
     * @param value - 经度或纬度值
     * @returns 度分秒对象，如： { degree:113, minute:24, second:40 }
     */
    function degree2dms(value: number): any;
    /**
     * 经度/纬度  度分秒 转为 十进制
     * @param degree - 度
     * @param minute - 分
     * @param second - 秒
     * @returns 十进制
     */
    function dms2degree(degree: number, minute: number, second: number): number;
    /**
     * 根据经度值 获取CGCS2000投影坐标对应的 EPSG值
     * @param lng - 经度值
     * @param [fd6 = false] - 是否为6度分带， true:6度分带,false:3度分带
     * @param [hasAddDH = true] - 横坐标前是否加带号
     * @returns EPSG值
     */
    function getCGCS2000EPSGByLng(lng: number, fd6?: boolean, hasAddDH?: boolean): string | undefined;
    /**
     * 根据加带号的横坐标值 获取CGCS2000投影坐标对应的EPSG值
     * @param x - 根据加带号的横坐标值
     * @returns EPSG值
     */
    function getCGCS2000EPSGByX(x: number): string | undefined;
    /**
     * 使用proj4转换坐标（支持任意坐标系），
     * 坐标系 可以在 {@link http://epsg.io }进行查询，已经内置支持 EPSG:4326、EPSG:3857、EPSG:4490、EPSG:4491至4554
     * @param arrdata - 原始坐标,示例：[39396641,3882123]
     * @param fromProjParams - 原始坐标的坐标系，如'EPSG:4527'
     * @param [toProjParams = 'EPSG:4326'] - 转为返回的结果坐标系
     * @returns 返回结果坐标系的对应坐标,示例：[115.866936, 35.062583]
     */
    function proj4Trans(arrdata: number[], fromProjParams: string | CRS, toProjParams?: string | CRS): number[];
    /**
     * 使用proj4转换坐标数组（支持任意坐标系），
     * 坐标系 可以在 {@link http://epsg.io }进行查询，已经内置支持 EPSG:4326、EPSG:3857、EPSG:4490、EPSG:4491至4554
     * @param coords - 原始坐标数组,示例：[[39396641,3882123],[39396623,3882134]]
     * @param fromProjParams - 原始坐标的坐标系，如'EPSG:4527'
     * @param [toProjParams = 'EPSG:4326'] - 转为返回的结果坐标系
     * @returns 返回结果坐标系的对应坐标数组,示例：[[115.866936, 35.062583],[115.866923, 35.062565]]
     */
    function proj4TransArr(coords: number[], fromProjParams: string, toProjParams?: string): number[];
    /**
     * Cesium笛卡尔空间坐标 转 经纬度坐标 ,等价于 LngLatPoint.toArray
     * 常用于转换geojson
     * @param cartesian - Cesium笛卡尔空间xyz坐标
     * @param [noAlt] - 是否包含高度值
     * @returns 经纬度坐标,示例：[123.123456,32.654321,198.7]
     */
    function cartesian2lonlat(cartesian: Cesium.Cartesian3, noAlt?: boolean): number[];
    /**
     * Cesium笛卡尔空间坐标数组 转 经纬度坐标数组，等价于 LngLatArray.toArray
     * 常用于转换geojson
     * @param positions - Cesium笛卡尔空间xyz坐标数组
     * @param [noAlt] - 是否包含高度值
     * @returns 经纬度坐标数组,示例：[ [123.123456,32.654321,198.7], [111.123456,22.654321,50.7] ]
     */
    function cartesians2lonlats(positions: Cesium.Cartesian3[], noAlt?: boolean): any[][];
    /**
     * Cesium笛卡尔空间坐标 转 WebMercator投影平面坐标
     * @param position - Cesium笛卡尔空间xyz坐标
     * @returns 墨卡托投影平面坐标,示例：[13048882,3741659,20.1]
     */
    function cartesian2mercator(position: Cesium.Cartesian3): number[];
    /**
     * Cesium笛卡尔空间坐标数组 转 WebMercator投影平面坐标数组
     * @param positions - Cesium笛卡尔空间xyz坐标数组
     * @returns WebMercator投影平面坐标数组,示例：[[13048882,3741659,20.1],[13048882,3741659,21.2] ]
     */
    function cartesians2mercators(positions: Cesium.Cartesian3[]): any[][];
    /**
     * 经纬度坐标 转 Cesium笛卡尔空间xyz坐标
     * @param coord - 经纬度坐标,示例：[123.123456,32.654321,198.7]
     * @param [defHeight = 0] - 默认高度
     * @returns Cesium笛卡尔空间xyz坐标
     */
    function lonlat2cartesian(coord: any[][], defHeight?: number): Cesium.Cartesian3;
    /**
     * 经纬度坐标数组 转 Cesium笛卡尔空间xyz坐标数组
     * @param coords - 经纬度坐标数组,示例：[ [123.123456,32.654321,198.7], [111.123456,22.654321,50.7] ]
     * @param [defHeight = 0] - 默认高度
     * @returns Cesium笛卡尔空间xyz坐标数组
     */
    function lonlats2cartesians(coords: any[][], defHeight?: number): Cesium.Cartesian3[];
    /**
     * 经纬度地理坐标 转 投影平面坐标
     * @param lnglat - 经纬度坐标,示例：[123.123456,32.654321,20.1]
     * @returns WebMercator投影平面坐标,示例：[13048882,3741659,20.1]
     */
    function lonlat2mercator(lnglat: number[]): number[];
    /**
     * 经纬度地理坐标数组 转 投影平面坐标数组
     * @param arr - 经纬度坐标数组,示例：[ [123.123456,32.654321,20.1], [111.123456,22.654321,21.2] ]
     * @returns WebMercator投影平面坐标数组,示例：[[13048882,3741659,20.1],[13048882,3741659,21.2] ]
     */
    function lonlats2mercators(arr: any[][]): any[][];
    /**
     * 投影平面坐标 转 Cesium笛卡尔空间xyz坐标
     * @param arr - WebMercator投影平面坐标,示例：[13048882,3741659,20.1]
     * @param [height] - 赋值高度
     * @returns Cesium笛卡尔空间xyz坐标
     */
    function mercator2cartesian(arr: number[], height?: number): Cesium.Cartesian3;
    /**
     * 投影平面坐标数组 转 Cesium笛卡尔空间xyz坐标数组
     * @param arr - WebMercator投影平面坐标数组,示例：[[13048882,3741659,20.1],[13048882,3741659,21.2] ]
     * @param [height] - 赋值高度
     * @returns Cesium笛卡尔空间xyz坐标数组
     */
    function mercators2cartesians(arr: number[], height?: number): Cesium.Cartesian3;
    /**
     * 投影平面坐标 转 经纬度地理坐标
     * @param arr - WebMercator投影平面坐标,示例：[13048882,3741659,20.1]
     * @returns 经纬度坐标,示例：[123.123456,32.654321,20.1]
     */
    function mercator2lonlat(arr: number[]): number[];
    /**
     * 投影平面坐标数组 转 经纬度地理坐标数组
     * @param arr - WebMercator投影平面坐标数组,示例：[[13048882,3741659,20.1],[13048882,3741659,21.2] ]
     * @returns 经纬度坐标数组,示例：[ [123.123456,32.654321,20.1], [111.123456,22.654321,21.2] ]
     */
    function mercators2lonlats(arr: any[][]): any[][];
    /**
     * 经纬度坐标转换，
     * 百度坐标 (BD09) 转换为 国测局坐标 (GCJ02)
     * @param arrdata - 百度坐标 (BD09)坐标数据，示例：[117.225590,31.832916]
     * @returns 国测局坐标 (GCJ02)坐标数据，示例：[:117.22559,31.832917]
     */
    function bd2gcj(arrdata: number[]): number[];
    /**
     * 经纬度坐标转换，
     * 国测局坐标 (GCJ02) 转换为 百度坐标 (BD09)
     * @param arrdata - 高德谷歌等国测局坐标 (GCJ02) 坐标数据，示例：[117.225590,31.832916]
     * @returns 百度坐标 (BD09)坐标数据，示例：[117.232039,31.839177]
     */
    function gcj2bd(arrdata: number[]): number[];
    /**
     * 经纬度坐标转换，
     * 标准无偏坐标（WGS84） 转为 国测局坐标 (GCJ02)
     * @param arrdata - 标准无偏坐标（WGS84）坐标数据，示例：[117.220102, 31.834912]
     * @returns 国测局坐标 (GCJ02)坐标数据，示例：[117.225590,31.832916]
     */
    function wgs2gcj(arrdata: number[]): number[];
    /**
     * 经纬度坐标转换，
     * 国测局坐标 (GCJ02)  转换为 标准无偏坐标（WGS84）
     * @param arrdata - 国测局坐标 (GCJ02)坐标数据，示例：[117.225590,31.832916]
     * @returns 标准无偏坐标（WGS84）坐标数据，示例：[117.220102, 31.834912]
     */
    function gcj2wgs(arrdata: number[]): number[];
    /**
     * 经纬度坐标转换，
     * 百度坐标 (BD09) 转 标准无偏坐标（WGS84）
     * @param arrdata - 百度坐标 (BD09)坐标数据，示例：[117.232039,31.839177]
     * @returns 标准无偏坐标（WGS84）坐标数据，示例：[117.220102, 31.834912]
     */
    function bd2wgs(arrdata: number[]): number[];
    /**
     * 标准无偏坐标（WGS84）  转 百度坐标 (BD09)
     * @param arrdata - 标准无偏坐标（WGS84）坐标数据，示例：[117.220102, 31.834912]
     * @returns 百度坐标 (BD09)坐标数据，示例：[117.232039,31.839177]
     */
    function wgs2bd(arrdata: number[]): number[];
}

/**
 * 单个坐标或位置矩阵相关的处理 静态方法
 */
declare namespace PointUtil {
    /**
     * 获取PointTrans中对应的坐标转换方法
     * srcCoordType 转 dstCoordType 对应的方法名称
     * @param srcCoordType - 原始的坐标系
     * @param dstCoordType - 转换后的坐标系
     * @returns PointTrans中对应的坐标转换方法
     */
    function getTransFun(srcCoordType: ChinaCRS, dstCoordType: ChinaCRS): (...params: any[]) => any;
    /**
     * 获取position的最终value值，
     * 因为cesium经常属性或绑定一层，通过该方法可以内部去判断是否有getValue或_value进行取最终value值。
     * @param position - 各种位置属性对象
     * @param [time = Cesium.JulianDate.now()] - 指定的时间值
     * @returns 具体的Cartesian3对象坐标值
     */
    function getPositionValue(position: Cesium.Cartesian3 | Cesium.SampledPositionProperty | any, time?: Cesium.JulianDate): Cesium.Cartesian3;
    /**
     * 获取 坐标数组 中 最高高程值
     * @param positions - 笛卡尔坐标数组
     * @param [defaultVal = 0] - 默认高程值
     * @returns 最高高程值
     */
    function getMaxHeight(positions: Cesium.Cartesian3[] | LngLatPoint[] | any[], defaultVal?: number): number;
    /**
     * 获取 坐标数组 中 最低高程值
     * @param positions - 笛卡尔坐标数组
     * @param [defaultVal = 0] - 默认高程值
     * @returns 最低高程值
     */
    function getMinHeight(positions: Cesium.Cartesian3[], defaultVal?: number): number;
    /**
     * 对坐标（或坐标数组）增加 指定的海拔高度值
     * @param positions - 笛卡尔坐标数组
     * @param [addHeight = 0] - 增加的海拔高度值
     * @returns 增加高度后的坐标（或坐标数组）
     */
    function addPositionsHeight(positions: Cesium.Cartesian3 | Cesium.Cartesian3[], addHeight?: number): Cesium.Cartesian3 | Cesium.Cartesian3[];
    /**
     * 对坐标（或坐标数组）赋值修改为 指定的海拔高度值
     * @param positions - 笛卡尔坐标数组
     * @param [height = 0] - 增加的海拔高度值
     * @returns 增加高度后的坐标（或坐标数组）
     */
    function setPositionsHeight(positions: Cesium.Cartesian3 | Cesium.Cartesian3[], height?: number): Cesium.Cartesian3 | Cesium.Cartesian3[];
    /**
     * 获取 坐标 的 贴地高度
     * （非精确计算，根据当前加载的地形和模型数据情况有关,准确计算请用getSurfaceHeight方法）
     * @param scene - 三维地图场景对象，一般用map.scene或viewer.scene
     * @param position - 坐标
     * @param [options = {}] - 参数对象:
     * @param [options.has3dtiles = auto] - 是否在3dtiles模型上分析（模型分析较慢，按需开启）,默认内部根据点的位置自动判断（但可能不准）
     * @param [options.objectsToExclude] - 贴模型分析时，排除的不进行贴模型计算的模型对象，可以是： primitives, entities, 或 3D Tiles features
     * @param [options.width = 0.1] - Width of the intersection volume in meters.
     * @returns 贴地高度
     */
    function getHeight(scene: Cesium.Scene, position: Cesium.Cartesian3 | LngLatPoint, options?: {
        has3dtiles?: boolean;
        objectsToExclude?: any;
        width?: number;
    }): number;
    /**
     * 异步精确计算坐标的 贴地(或贴模型)高度
     * @example
     * const position = graphic.position
     *   mars3d.PointUtil.getSurfaceHeight(map.scene, graphic.position, { has3dtiles: true }).then((result) => {
     *     console.log("原始高度为：" + result.height_original.toFixed(2) + ",贴地高度：" + result.height.toFixed(2))
     *
     *     graphic.position = result.position
     *   })
     * @param scene - 三维地图场景对象，一般用map.scene或viewer.scene
     * @param position - 坐标
     * @param [options = {}] - 参数对象:
     * @param [options.has3dtiles = auto] - 是否在3dtiles模型上分析（模型分析较慢，按需开启）, 默认内部根据点的位置自动判断（但可能不准）
     * @param [options.objectsToExclude] - 贴模型分析时，排除的不进行贴模型计算的模型对象，可以是： primitives, entities, 或 3D Tiles features
     * @returns 异步计算完成的Promise
     */
    function getSurfaceHeight(scene: Cesium.Scene, position: Cesium.Cartesian3 | LngLatPoint, options?: {
        has3dtiles?: boolean;
        objectsToExclude?: any;
    }): Promise<any>;
    /**
     * 异步精确计算坐标的 贴地形高度
     * @param scene - 三维地图场景对象，一般用map.scene或viewer.scene
     * @param position - 坐标
     * @returns 异步计算完成的Promise
     */
    function getSurfaceTerrainHeight(scene: Cesium.Scene, position: Cesium.Cartesian3 | LngLatPoint): Promise<any>;
    /**
     * 计算 贴地(或贴模型)高度 坐标
     * （非精确计算，根据当前加载的地形和模型数据情况有关）
     * @param scene - 三维地图场景对象，一般用map.scene或viewer.scene
     * @param position - 坐标
     * @param [options = {}] - 参数对象，具有以下属性:
     * @param [options.relativeHeight = fasle] - 是否在地形上侧的高度，在对象具备Cesium.HeightReference.RELATIVE_TO_GROUND时，可以设置为ture
     * @param [options.maxHeight] - 可以限定最高高度，当计算的结果大于maxHeight时，原样返回，可以屏蔽计算误差的数据。
     * @param [options.has3dtiles = auto] - 是否在3dtiles模型上分析（模型分析较慢，按需开启）,默认内部根据点的位置自动判断（但可能不准）
     * @param [options.objectsToExclude] - 贴模型分析时，排除的不进行贴模型计算的模型对象，
     * @returns 贴地坐标
     */
    function getSurfacePosition(scene: Cesium.Scene, position: Cesium.Cartesian3, options?: {
        relativeHeight?: boolean;
        maxHeight?: number;
        has3dtiles?: boolean;
        objectsToExclude?: any;
    }): Cesium.Cartesian3;
    /**
     * 获取 屏幕XY坐标 对应的 笛卡尔三维坐标
     * @example
     * //Cesium原生鼠标单击事件
     * let handler = new Cesium.ScreenSpaceEventHandler(map.scene.canvas);
     * handler.setInputAction(function (event) {
     *   let cartesian = mars3d.PointUtil.getCurrentMousePosition(map.scene, event.position);
     *   //继续写其他代码
     * }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
     * @param scene - 三维地图场景对象，一般用map.scene或viewer.scene
     * @param position - 屏幕XY坐标（如鼠标所在位置)
     * @param noPickEntity - 排除的不拾取矢量对象，主要用于绘制中，排除对自己本身的拾取
     * @returns 笛卡尔三维坐标
     */
    function getCurrentMousePosition(scene: Cesium.Scene, position: Cesium.Cartesian2, noPickEntity: any): Cesium.Cartesian3;
    /**
     * 获取 屏幕XY坐标 对应的 地形上的笛卡尔三维坐标（不拾取模型、矢量数据等）
     * @param scene - 三维地图场景对象，一般用map.scene或viewer.scene
     * @param position - 屏幕XY坐标（如鼠标所在位置)
     * @returns 笛卡尔三维坐标
     */
    function getCurrentMouseTerrainPosition(scene: Cesium.Scene, position: Cesium.Cartesian2): Cesium.Cartesian3;
    /**
     * 求2点的中间点（贴地表）
     * @param mpt1 - 点1坐标
     * @param mpt2 - 点2坐标
     * @returns 2个点是否为重复的点
     */
    function getMidpoint(mpt1: Cesium.Cartesian3 | LngLatPoint, mpt2: Cesium.Cartesian3 | LngLatPoint): Cesium.Cartesian3;
    /**
     * 判断2个点是否为重复的点，比如标绘中的双击会偶尔产生2个重复点
     * @param mpt1 - 点1坐标
     * @param mpt2 - 点2坐标
     * @returns 2个点是否为重复的点
     */
    function isRepeatPoint(mpt1: Cesium.Cartesian3, mpt2: Cesium.Cartesian3): boolean;
    /**
     * 获取 点point1 绕 点center 的地面法向量 旋转顺时针angle角度 后的 新坐标
     * @param center - 中心点坐标
     * @param point1 - 点坐标
     * @param angle - 旋转角度,顺时针方向 0-360度
     * @returns 计算得到的新坐标
     */
    function getRotateCenterPoint(center: Cesium.Cartesian3, point1: Cesium.Cartesian3, angle: number): Cesium.Cartesian3;
    /**
     * 求 p1指向p2方向线上，距离p1或p2指定长度的 新的点
     * @param p1 - 起点坐标
     * @param p2 - 终点坐标
     * @param len - 指定的距离，addBS为false时：len为距离起点p1的距离，addBS为true时：len为距离终点p2的距离
     * @param [addBS = false] - 标识len的参考目标
     * @returns 计算得到的新坐标
     */
    function getOnLinePointByLen(p1: Cesium.Cartesian3, p2: Cesium.Cartesian3, len: number, addBS?: boolean): Cesium.Cartesian3;
    /**
     * 根据 坐标位置、hpr方向、偏移距离，计算目标点坐标
     * @param position - 坐标位置
     * @param offest - 偏移距离值, xyz值的单位：米
     * @param hpr - 方向值
     * @param [ellipsoid = Cesium.Ellipsoid.WGS84] - 变换中使用固定坐标系的椭球。
     * @param [fixedFrameTransform = Cesium.Transforms.eastNorthUpToFixedFrame] - 参考系
     * @returns 目标点坐标
     */
    function getPositionByHprAndOffset(position: Cesium.Cartesian3 | LngLatPoint, offest: Cesium.Cartesian3, hpr: Cesium.HeadingPitchRoll, ellipsoid?: Cesium.Ellipsoid, fixedFrameTransform?: Cesium.Transforms.LocalFrameToFixedFrame): Cesium.Cartesian3;
    /**
     * 根据观察点的方向角度和距离，计算目标点坐标
     * @param position - 观察点坐标
     * @param angle - 方向角度 (正东方向为0,顺时针到360度)
     * @param radius - 半径距离
     * @returns 目标点坐标
     */
    function getPositionByDirectionAndLen(position: Cesium.Cartesian3 | LngLatPoint, angle: number, radius: number): Cesium.Cartesian3;
    /**
     * 根据观察点的hpr方向和距离，计算目标点坐标
     * @param position - 观察点坐标
     * @param hpr - 方向值
     * @param radiusZ - 半径距离
     * @returns 目标点坐标
     */
    function getPositionByHprAndLen(position: Cesium.Cartesian3 | LngLatPoint, hpr: Cesium.HeadingPitchRoll, radiusZ: number): Cesium.Cartesian3;
    /**
     * 按观察点坐标和orientation方向，求观察点射向地球与地球的交点
     * @param position - 观察点坐标
     * @param orientation - HeadingPitchRoll方向 或 四元数实例
     * @param reverse - 是否翻转射线方向
     * @param [ellipsoid = Cesium.Ellipsoid.WGS84] - 变换中使用固定坐标系的椭球。
     * @returns 射线与地球的交点
     */
    function getRayEarthPosition(position: Cesium.Cartesian3, orientation: Cesium.HeadingPitchRoll | Cesium.Quaternion, reverse: boolean, ellipsoid?: Cesium.Ellipsoid): Cesium.Cartesian3;
    /**
     * 按转换矩阵，求观察点射向地球与地球的交点
     * @param matrix - 转换矩阵
     * @param reverse - 是否翻转射线方向
     * @param [ellipsoid = Cesium.Ellipsoid.WGS84] - 变换中使用固定坐标系的椭球。
     * @returns 射线与地球的交点
     */
    function getRayEarthPositionByMatrix(matrix: Cesium.Matrix4, reverse: boolean, ellipsoid?: Cesium.Ellipsoid): Cesium.Cartesian3;
    /**
     * 根据 position位置 和 orientation四元数实例 求 Heading Pitch Roll方向
     * @param position - 位置坐标
     * @param orientation - 四元数实例
     * @param [ellipsoid = Cesium.Ellipsoid.WGS84] - 变换中使用固定坐标系的椭球。
     * @param [fixedFrameTransform = Cesium.Transforms.eastNorthUpToFixedFrame] - 参考系
     * @returns Heading Pitch Roll方向
     */
    function getHeadingPitchRollByOrientation(position: Cesium.Cartesian3, orientation: Cesium.Quaternion, ellipsoid?: Cesium.Ellipsoid, fixedFrameTransform?: Cesium.Transforms.LocalFrameToFixedFrame): Cesium.HeadingPitchRoll;
    /**
     * 根据matrix转换矩阵 求 Heading Pitch Roll角度
     * @param matrix - 转换矩阵
     * @param [ellipsoid = Cesium.Ellipsoid.WGS84] - 变换中使用固定坐标系的椭球。
     * @param [fixedFrameTransform = Cesium.Transforms.eastNorthUpToFixedFrame] - 参考系
     * @param [result] - 可以先实例化返回的 Heading Pitch Roll角度对象
     * @returns Heading Pitch Roll角度
     */
    function getHeadingPitchRollByMatrix(matrix: Cesium.Matrix4, ellipsoid?: Cesium.Ellipsoid, fixedFrameTransform?: Cesium.Transforms.LocalFrameToFixedFrame, result?: Cesium.HeadingPitchRoll): Cesium.HeadingPitchRoll;
    /**
     * 求 localStart点 到 localEnd点的 Heading Pitch Roll方向
     * @param localStart - 起点坐标
     * @param localEnd - 终点坐标
     * @param [ellipsoid = Cesium.Ellipsoid.WGS84] - 变换中使用固定坐标系的椭球。
     * @param [fixedFrameTransform = Cesium.Transforms.eastNorthUpToFixedFrame] - 参考系
     * @returns Heading Pitch Roll方向
     */
    function getHeadingPitchRollForLine(localStart: Cesium.Cartesian3 | LngLatPoint, localEnd: Cesium.Cartesian3 | LngLatPoint, ellipsoid?: Cesium.Ellipsoid, fixedFrameTransform?: Cesium.Transforms.LocalFrameToFixedFrame): Cesium.HeadingPitchRoll;
}

/**
 * 多个点 或 线面数据 相关处理 静态方法
 */
declare namespace PolyUtil {
    /**
     * 求坐标数组的中心点
     * @param arr - 坐标数组
     * @param height - 指定中心点的高度值，默认为所有点的最高高度
     * @returns 中心点坐标
     */
    function centerOfMass(arr: any[][] | string[] | LngLatPoint[] | Cesium.Cartesian3[], height: number): Cesium.Cartesian3;
    /**
     * 缓冲分析，求指定 点线面geojson对象 按width半径的 缓冲面对象
     * @param geojson - geojson格式对象
     * @param width - 缓冲半径,单位：米
     * @param [steps = 8] - 缓冲步幅
     * @returns 缓冲面对象，geojson格式
     */
    function buffer(geojson: any, width: number, steps?: number): any;
    /**
     * 缓冲分析，坐标数组围合面，按width半径的 缓冲新的坐标
     * @param points - 坐标数组
     * @param width - 缓冲半径,单位：米
     * @param [steps = 8] - 缓冲步幅
     * @returns 缓冲后的新坐标数组
     */
    function bufferPoints(points: LngLatPoint[] | Cesium.Cartesian3[] | any[], width: number, steps?: number): LngLatPoint[];
    /**
     * 求坐标数组的矩形范围内 按 splitNum网格数插值的 granularity值
     * @param positions - 坐标数组
     * @param [splitNum = 10] - splitNum网格数
     * @returns granularity值
     */
    function getGranularity(positions: LngLatPoint[] | Cesium.Cartesian3[] | any[], splitNum?: number): number;
    /**
     * 面内进行贴地(或贴模型)插值, 返回三角网等计算结果 的回调方法
     * @param [options = {}] - 参数对象:
     * @param options.list - 三角网对象数组，每个对象包含三角形的3个顶点(point1\point2\point3)相关值
     * @param options.maxHeight - 面内最大高度
     * @param options.minHeight - 面内最小高度
     * @param options.granularity - 面内按splitNum网格数插值的granularity值
     * @param options.has3dtiles - 是否贴模型
     * @param options.hasTerrain - 是否贴地形
     */
    type interPolygonResult = (options?: {
        list: any;
        maxHeight: number;
        minHeight: number;
        granularity: number;
        has3dtiles: boolean;
        hasTerrain: boolean;
    }) => void;
    /**
     * 面内进行贴地(或贴模型)插值, 返回三角网等计算结果
     * @param [options = {}] - 参数对象:
     * @param options.scene - 三维地图场景对象，一般用map.scene或viewer.scene
     * @param options.positions - 坐标数组
     * @param [options.splitNum = 10] - 插值数，横纵等比分割的网格个数
     * @param [options.exact = false] - 是否进行精确计算
     * @param [options.has3dtiles] - 是否在3dtiles模型上分析（模型分析较慢，按需开启）,默认内部根据点的位置自动判断（但可能不准）
     * @param [options.objectsToExclude] - 贴模型分析时，排除的不进行贴模型计算的模型对象，可以是： primitives, entities, 或 3D Tiles features
     * @param [options.onlyPoint = false] - truea时，返回结果中只返回点，不返回三角网
     * @returns 异步计算完成的Promise
     */
    function interPolygon(options?: {
        scene: Cesium.Scene;
        positions: LngLatPoint[] | Cesium.Cartesian3[] | any[];
        splitNum?: number;
        exact?: boolean;
        has3dtiles?: boolean;
        objectsToExclude?: any;
        onlyPoint?: boolean;
    }): Promise<interPolygonResult>;
    /**
     * 计算面内最大、最小高度值
     * @param positions - 坐标数组
     * @param scene - 三维地图场景对象，一般用map.scene
     * @param [options = {}] - 参数对象:
     * @param [options.splitNum = 10] - 插值数，横纵等比分割的网格个数
     * @param [options.has3dtiles = auto] - 是否在3dtiles模型上分析（模型分析较慢，按需开启）,默认内部根据点的位置自动判断（但可能不准）
     * @param [options.objectsToExclude] - 贴模型分析时，排除的不进行贴模型计算的模型对象，可以是： primitives, entities, 或 3D Tiles features
     * @returns 异步计算完成的Promise，结果示例：{ maxHeight: 100, minHeight: 21 }
     */
    function getHeightRange(positions: LngLatPoint[] | Cesium.Cartesian3[] | any[], scene: Cesium.Scene, options?: {
        splitNum?: number;
        has3dtiles?: boolean;
        objectsToExclude?: any;
    }): Promise<any>;
    /**
     * 面内进行贴地(或贴模型)插值, 返回三角网等计算结果 的回调方法
     * @param [options = {}] - 参数对象:
     * @param options.list - 三角网对象数组，每个对象包含三角形的3个顶点(point1\point2\point3)相关值
     * @param options.maxHeight - 面内最大高度
     * @param options.minHeight - 面内最小高度
     * @param options.granularity - 面内按splitNum网格数插值的granularity值
     * @param options.has3dtiles - 是否贴模型
     * @param options.hasTerrain - 是否贴地形
     * @param options.totalArea - 总面积(横截面/投影底面)，执行updateVolumeByMinHeight后赋值
     * @param options.totalVolume - 总体积，执行updateVolumeByMinHeight后赋值
     * @param options.digVolume - 挖方体积，执行updateVolume后赋值
     * @param options.fillVolume - 填方体积，执行updateVolume后赋值
     */
    type VolumeResult = (options?: {
        list: any;
        maxHeight: number;
        minHeight: number;
        granularity: number;
        has3dtiles: boolean;
        hasTerrain: boolean;
        totalArea: number;
        totalVolume: number;
        digVolume: number;
        fillVolume: number;
    }) => void;
    /**
     * 体积计算
     * @param [options = {}] - 参数对象:
     * @param options.scene - 三维地图场景对象，一般用map.scene或viewer.scene
     * @param options.positions - 坐标数组
     * @param [options.exact = false] - 是否进行精确计算
     * @param [options.splitNum = 10] - 插值数，横纵等比分割的网格个数
     * @param [options.has3dtiles = auto] - 是否在3dtiles模型上分析（模型分析较慢，按需开启）,默认内部根据点的位置自动判断（但可能不准）
     * @param [options.objectsToExclude] - 贴模型分析时，排除的不进行贴模型计算的模型对象，可以是： primitives, entities, 或 3D Tiles features
     * @returns 异步计算完成的Promise
     */
    function computeVolume(options?: {
        scene: Cesium.Scene;
        positions: LngLatPoint[] | Cesium.Cartesian3[] | any[];
        exact?: boolean;
        splitNum?: number;
        has3dtiles?: boolean;
        objectsToExclude?: any;
    }): Promise<VolumeResult>;
    /**
     * 根据 minHeight最低底面高度 计算（或重新计算）填挖方体积
     * @param resultInter - 插值完的对象
     * @returns 计算完成的填挖方体积
     */
    function updateVolumeByMinHeight(resultInter: interPolygonResult): VolumeResult;
    /**
     * 根据 基准面高度 重新计算填挖方体积
     * @param resultInter - 插值完的对象
     * @param cutHeight - 基准面高度
     * @returns 重新计算填挖方体积后的对象
     */
    function updateVolume(resultInter: VolumeResult, cutHeight: number): VolumeResult;
    /**
     * 获取 圆（或椭圆）边线上的坐标点数组
     * @param options - 参数对象:
     * @param options.position - 圆的中心坐标
     * @param [options.radius] - 如是圆时，半径（单位：米）
     * @param [options.semiMajorAxis] - 椭圆时的 长半轴半径（单位：米）
     * @param [options.semiMinorAxis] - 椭圆时的 短半轴半径（单位：米）
     * @param [options.count = 1] - 象限内点的数量，返回的总数为 count*4
     * @param [options.granularity] - granularity值,与count二选一
     * @param [options.rotation = 0] - 旋转的角度
     * @returns 边线上的坐标点数组
     */
    function getEllipseOuterPositions(options: {
        position: Cesium.Cartesian3 | LngLatPoint;
        radius?: number;
        semiMajorAxis?: number;
        semiMinorAxis?: number;
        count?: number;
        granularity?: number;
        rotation?: number;
    }): Cesium.Cartesian3[];
    /**
     * 格式化Rectangle矩形对象,返回经纬度值
     * @param rectangle - 矩形对象
     * @param [digits = 6] - 经纬度保留的小数位数
     * @returns 返回经纬度值，示例： { xmin: 73.16895, xmax: 134.86816, ymin: 12.2023, ymax: 54.11485 }
     */
    function formatRectangle(rectangle: Cesium.Rectangle, digits?: number): any;
    /**
     * 计算geojson的边界范围
     * @param [geojson] - Geojson对象
     * @returns 返回经纬度值，示例： { xmin: 73.16895, xmax: 134.86816, ymin: 12.2023, ymax: 54.11485 }
     */
    function getExtentByGeoJSON(geojson?: any): any;
    /**
     * 获取 坐标数组 的 矩形边界值
     * @param positions - 坐标数组
     * @param [isFormat = false] - 是否格式化，格式化时示例： { xmin: 73.16895, xmax: 134.86816, ymin: 12.2023, ymax: 54.11485 }
     * @returns isFormat：true时，返回格式化对象，isFormat：false时返回Cesium.Rectangle对象
     */
    function getRectangle(positions: Cesium.Cartesian3[] | string[] | any[][] | LngLatPoint[], isFormat?: boolean): Cesium.Rectangle | any;
    /**
     * 获取坐标点数组的外接矩形的 4个顶点坐标点（数组）
     * @param positions - 坐标点数组
     * @param [rotation = 0] - 旋转的角度，弧度值
     * @returns 4个顶点坐标点
     */
    function getPositionsRectVertex(positions: LngLatPoint[] | Cesium.Cartesian3[] | any[], rotation?: number): Cesium.Cartesian3[];
    /**
     * 获取矩形（含旋转角度）的边线上的4个顶点坐标点数组
     * @param [options] - 参数对象:
     * @param options.rectangle - 矩形对象
     * @param [options.rotation = 0] - 旋转的角度，弧度值
     * @param [options.height = 0] - 坐标的高度
     * @param [options.granularity = Cesium.Math.RADIANS_PER_DEGREE] - granularity值
     * @param [options.ellipsoid = Cesium.Ellipsoid.WGS84] - 变换中使用固定坐标系的椭球。
     * @returns 边线上的4个顶点坐标点数组
     */
    function getRectangleOuterPositions(options?: {
        rectangle: Cesium.Rectangle;
        rotation?: number;
        height?: number;
        granularity?: number;
        ellipsoid?: Cesium.Ellipsoid;
    }): Cesium.Cartesian3[];
    /**
     * 根据传入中心点、高宽或角度，计算矩形面的顶点坐标。
     * @param [options] - 参数对象:
     * @param options.center - 中心坐标
     * @param [options.width] - 矩形的宽度，单位：米
     * @param [options.height] - 矩形的高度，单位：米
     * @param [options.rotation = 0] - 旋转的角度
     * @param [options.originX = 0.5] - 中心点所在的位置x轴方向比例，取值范围：0.1-1.0
     * @param [options.originY = 0.5] - 中心点所在的位置y轴方向比例，取值范围：0.1-1.0
     * @returns 矩形面的顶点坐标数组
     */
    function getRectPositionsByCenter(options?: {
        center: Cesium.Cartesian3 | LngLatPoint;
        width?: number;
        height?: number;
        rotation?: number;
        originX?: number;
        originY?: number;
    }): Cesium.Cartesian3[];
    /**
     * 判断点是否 多边形内
     * @param position - 需要判断的点
     * @param coordinates - 多边形的边界点
     * @returns 是否在多边形内
     */
    function isInPoly(position: Cesium.Cartesian3 | LngLatPoint, coordinates: Cesium.Cartesian3[] | LngLatPoint[]): boolean;
    /**
     * 求贝塞尔曲线坐标
     * @param positions - 坐标数组
     * @param [closure = fasle] - 是否闭合曲线
     * @returns 坐标数组
     */
    function getBezierCurve(positions: LngLatPoint[] | Cesium.Cartesian3[] | any[], closure?: boolean): Cesium.Cartesian3[];
    /**
     * 对路线进行平面等比插值，高度：指定的固定height值 或 按贴地高度。
     * @param [options = {}] - 参数对象:
     * @param options.scene - 三维地图场景对象，一般用map.scene或viewer.scene
     * @param options.positions - 坐标数组
     * @param [options.splitNum = 100] - 插值数，等比分割的个数
     * @param [options.minDistance] - 插值最小间隔(单位：米)，优先级高于splitNum
     * @param [options.height = 0] - 坐标的高度
     * @param [options.surfaceHeight = true] - 是否计算贴地高度 （非精确计算，根据当前加载的地形和模型数据情况有关）
     * @returns 插值后的路线坐标数组
     */
    function interPolyline(options?: {
        scene: Cesium.Scene;
        positions: LngLatPoint[] | Cesium.Cartesian3[] | any[];
        splitNum?: number;
        minDistance?: number;
        height?: number;
        surfaceHeight?: boolean;
    }): Cesium.Cartesian3[];
    /**
     * 对路线进行按空间等比插值，高度：高度值按各点的高度等比计算
     * 比如：用于航线的插值运算
     * @param positions - 坐标数组
     * @param [options = {}] - 参数对象:
     * @param [options.splitNum] - 插值数，等比分割的个数，默认不插值
     * @param [options.minDistance] - 插值时的最小间隔(单位：米)，优先级高于splitNum,如果传"auto"，自动计算坐标中最小的2点距离
     * @returns 插值后的坐标对象
     */
    function interLine(positions: LngLatPoint[] | Cesium.Cartesian3[] | any[], options?: {
        splitNum?: number;
        minDistance?: number | string;
    }): Cesium.Cartesian3[];
    /**
     * 求路线的贴地线坐标（插值）
     * @param [options = {}] - 参数对象:
     * @param options.scene - 三维地图场景对象，一般用map.scene或viewer.scene
     * @param options.positions - 坐标数组
     * @param [options.splitNum = 100] - 插值数，等比分割的个数
     * @param [options.minDistance] - 插值最小间隔(单位：米)，优先级高于splitNum
     * @param [options.has3dtiles = auto] - 是否在3dtiles模型上分析（模型分析较慢，按需开启）,默认内部根据点的位置自动判断（但可能不准）
     * @param [options.objectsToExclude] - 贴模型分析时，排除的不进行贴模型计算的模型对象，可以是： primitives, entities, 或 3D Tiles features
     * @param [options.exact = false] - 是否进行精确计算， 传false时是否快速概略计算方式，该方式计算精度较低，但计算速度快，仅能计算在当前视域内坐标的高度
     * @param [options.offset = 0] - 可以按需增加偏移高度（单位：米），便于可视
     * @returns 异步计算完成的Promise, 等价于callback
     */
    function computeSurfaceLine(options?: {
        scene: Cesium.Scene;
        positions: Cesium.Cartesian3[] | LngLatPoint[];
        splitNum?: number;
        minDistance?: number;
        has3dtiles?: boolean;
        objectsToExclude?: any;
        exact?: boolean;
        offset?: number;
    }): Promise<any>;
    /**
     * 求 多个点 的的贴地新坐标（不插值）
     * @param [options = {}] - 参数对象:
     * @param options.scene - 三维地图场景对象，一般用map.scene或viewer.scene
     * @param options.positions - 坐标数组
     * @param [options.has3dtiles = auto] - 是否在3dtiles模型上分析（模型分析较慢，按需开启）,默认内部根据点的位置自动判断（但可能不准）
     * @param [options.objectsToExclude] - 贴模型分析时，排除的不进行贴模型计算的模型对象，可以是： primitives, entities, 或 3D Tiles features
     * @param [options.exact = false] - 是否进行精确计算， 传false时是否快速概略计算方式，该方式计算精度较低，但计算速度快，仅能计算在当前视域内坐标的高度
     * @param [options.offset = 0] - 可以按需增加偏移高度（单位：米），便于可视
     * @returns 异步计算完成的Promise, 等价于callback
     */
    function computeSurfacePoints(options?: {
        scene: Cesium.Scene;
        positions: Cesium.Cartesian3[] | LngLatPoint[];
        has3dtiles?: boolean;
        objectsToExclude?: any;
        exact?: boolean;
        offset?: number;
    }): Promise<any>;
    /**
     * 异步分段分步计算贴地距离中，每计算完成2个点之间的距离后 的回调方法
     * @param raisedPositions - 当前2个点之间的 贴地坐标数组
     * @param noHeight - 是否计算贴地高度失败，true时标识计算失败了
     * @param index - 坐标数组的index顺序
     */
    type computeStepSurfaceLine_endItem = (raisedPositions: Cesium.Cartesian3[], noHeight: boolean, index: number) => void;
    /**
     * 异步分段分步计算贴地距离中，每计算完成2个点之间的距离后 的回调方法
     * @param arrStepPoints - 二维数组坐标集合，各分段2点之间的贴地点数组的集合
     */
    type computeStepSurfaceLine_end = (arrStepPoints: any[][]) => void;
    /**
     * 按2个坐标点分段分步来计算，求路线的贴地线坐标（插值）
     * @param [options = {}] - 参数对象:
     * @param options.scene - 三维地图场景对象，一般用map.scene或viewer.scene
     * @param options.positions - 坐标数组
     * @param [options.splitNum = 100] - 插值数，等比分割的个数
     * @param [options.minDistance] - 插值最小间隔(单位：米)，优先级高于splitNum
     * @param [options.has3dtiles = auto] - 是否在3dtiles模型上分析（模型分析较慢，按需开启）,默认内部根据点的位置自动判断（但可能不准）
     * @param [options.objectsToExclude] - 贴模型分析时，排除的不进行贴模型计算的模型对象，可以是： primitives, entities, 或 3D Tiles features
     * @param [options.exact = false] - 是否进行精确计算， 传false时是否快速概略计算方式，该方式计算精度较低，但计算速度快，仅能计算在当前视域内坐标的高度
     * @param [options.offset = 0] - 可以按需增加偏移高度（单位：米），便于可视
     * @param options.endItem - 异步计算高度完成后 的回调方法
     * @param options.end - 异步计算高度完成后 的回调方法
     * @returns 异步计算完成的Promise,同callback
     */
    function computeStepSurfaceLine(options?: {
        scene: Cesium.Scene;
        positions: LngLatPoint[] | Cesium.Cartesian3[] | any[];
        splitNum?: number;
        minDistance?: number;
        has3dtiles?: boolean;
        objectsToExclude?: any;
        exact?: boolean;
        offset?: number;
        endItem: computeStepSurfaceLine_endItem;
        end: computeStepSurfaceLine_end;
    }): Promise<any>;
    /**
     * 计算2点间的 曲线链路的点集（空中曲线）
     * @param startPoint - 开始节点
     * @param endPoint - 结束节点
     * @param angularityFactor - 曲率
     * @param numOfSingleLine - 点集数量
     * @returns 曲线坐标数组
     */
    function getLinkedPointList(startPoint: Cesium.Cartesian3 | LngLatPoint, endPoint: Cesium.Cartesian3 | LngLatPoint, angularityFactor: number, numOfSingleLine: number): Cesium.Cartesian3[];
    /**
     * 计算平行线
     * @param positions - 原始线的坐标数组
     * @param offset - 偏移的距离（单位米），正负决定方向
     * @returns 平行线坐标数组
     */
    function getOffsetLine(positions: LngLatPoint[] | Cesium.Cartesian3[] | any[], offset: number): Cesium.Cartesian3[];
    /**
     * 截取路线指定最大长度的新路线，
     * 在最后一个点往前截取maxDistance长度。
     * 应用场景： 航迹的 “尾巴线” 的运算
     * @param positions - 路线坐标
     * @param maxDistance - 最大的截取长度
     * @param [options = {}] - 参数对象:
     * @param [options.point = false] - 为true时 只返回计算的maxDistance处的坐标
     * @returns 指定长度的坐标数组 ，options.point为true时，只返回数组的第1个点。
     */
    function sliceByMaxDistance(positions: LngLatPoint[] | Cesium.Cartesian3[] | any[], maxDistance: number, options?: {
        point?: boolean;
    }): Cesium.Cartesian3[] | Cesium.Cartesian3;
    /**
     * 求 坐标点 的 外包围凸体面(简化只保留边界线坐标)
     * @param coordinates - 经纬度坐标数组,示例：[ [123.123456,32.654321,198.7], [111.123456,22.654321,50.7] ]
     * @returns 经纬度坐标数组,示例：[ [123.123456,32.654321,198.7], [111.123456,22.654321,50.7] ]
     */
    function convex(coordinates: any[][]): any[][];
    /**
     * 在 指定bbox区域 内生成 指定数量(概略) 的网格坐标点，
     * 目前常用于生成坐标点，测试数据量
     * @param bbox - 区域范围，如：[116.984788, 31.625909, 117.484068, 32.021504]
     * @param count - 数量(概略)，返回坐标接近此数字
     * @param [alt = 0] - 高度值
     * @returns 坐标集合 ,如： {points:[LngLatPoint,LngLatPoint], size: 500 }
     */
    function getGridPoints(bbox: number[], count: number, alt?: number): any;
}

/**
 * 常用静态方法
 */
declare namespace Util {
    /**
     * 判断对象是否为number类型
     * @param obj - 对象
     * @returns 是否为number类型
     */
    function isnumber(obj: any): boolean;
    /**
     * 判断对象是否为String类型
     * @param obj - 对象
     * @returns 是否为String类型
     */
    function isString(obj: any): boolean;
    /**
     * 判断对象是否为Boolean类型
     * @param obj - 对象
     * @returns 是否为Boolean类型
     */
    function isBoolean(obj: any): boolean;
    /**
     * 判断对象是否为Object类型
     * @param obj - 对象
     * @returns 是否为Object类型
     */
    function isObject(obj: any): boolean;
    /**
     * 判断对象是否为纯粹的Object类型
     * （所谓"纯粹的对象"，就是该对象是通过"{}"或"new Object"创建的）
     * @param obj - 对象
     * @returns 是否为Object类型
     */
    function isPlainObject(obj: any): boolean;
    /**
     * 判断对象是否为function方法
     * @param val - 对象
     * @returns 是否为function方法
     */
    function isFunction(val: any): boolean;
    /**
     * 判断对象是否为简单类型（包括：String\Boolean\number\Array）
     * @param value - 对象
     * @returns 是否为简单类型（包括：String\Boolean\number\Array）
     */
    function isSimpleType(value: any): boolean;
    /**
     * 判断当前Cesium库 是否mars3d修改后的版本(mars3d-cesium库)
     */
    const isMars3DCesium: boolean;
    /**
     * 格式化数字，返回指定小数位的数字
     * @param num - 数字
     * @param [digits = 0] - 小数位数
     * @returns 返回digits指定小数位的数字
     */
    function formatNum(num: number, digits?: number): number;
    /**
     * 按指定长度,对数字进行补零，返回指定长度的字符串
     * @param numStr - 数字对象,示例：1234
     * @param n - 指定长度，示例：8
     * @returns 补零后的指定长度的字符串，示例：'00001234'
     */
    function padLeft0(numStr: number | string, n: number): string;
    /**
     * 根据空格分割字符串，并返回字符串数组（会自动去掉首位空格）
     * @param str - 字符串
     * @returns 分割后的字符串数组
     */
    function splitWords(str: string): string[];
    /**
     * 除去字符串首尾的空格
     * @param str - 字符串
     * @returns 除去首尾空格的字符串
     */
    function trim(str: string): string;
    /**
     * 获取字符串长度，区分中文和英文
     * @param str - 字符串
     * @returns 字符串长度
     */
    function getStrLength(str: string): number;
    /**
     * 根据数据和格式化字符串模板，返回字符串
     * @example
     * let str = mars3d.Util.template("<div>名称：{name}</div>", { name:"火星科技", date:"2017-8-25"} );
     *  //str结果为 : "<div>名称：火星科技</div>"
     * @param str - 格式化字符串模版，属性字段为大括号，如 {name}
     * @param data - 数据对象
     * @param [toEmpty = false] - 是否将模板中未匹配项转为空值
     * @returns 返回字符串
     */
    function template(str: string, data: any, toEmpty?: boolean): string;
    /**
     * 最后一个唯一ID，在stamp方法使用的
     */
    let lastId: number;
    /**
     * 获取最新的全局唯一ID
     * @returns 全局唯一ID （ ++lastId ）
     */
    function getGlobalId(): number;
    /**
     * 标记对象，给对象赋予对象的全局唯一ID（_mars3d_id值）
     * @param obj - 对象
     * @returns 全局唯一ID （ ++lastId ）
     */
    function stampGlobalId(obj: any): number;
    /**
     * 获取随机唯一uuid字符串,包含数字、大写字母、小写字母
     * @param [prefix = 'M-'] - 前缀
     * @returns 字符串
     */
    function createGuid(prefix?: string): string;
    /**
     * 获取Popup或Tooltip格式化Html字符串
     * @example
     * //template可以是'all' ，返回数据的全部属性信息
     * tiles3dLayer.bindPopup(function (event) {
     *   let attr = event.graphic.attr
     *   return mars3d.Util.getTemplateHtml({ title: '桥梁', template: 'all', attr: attr })
     * })
     *
     * //template可以是格式化字符串模板
     * let html = mars3d.Util.getTemplateHtml({ title: '火星项目', template:  "名称：{项目名称}<br />类型：{设施类型}<br />面积：{用地面积}亩<br />位置：{具体位置}", attr: item })
     *
     * //可以是数组的template，按数组顺序构造，并转义字段名称
     * //
     * let html = mars3d.Util.getTemplateHtml({
     *   title: '塔杆',
     *   template: [
     *     { field: 'roadName', name: '所属线路' },
     *     { field: 'towerId', name: '杆塔编号' },
     *     { field: '杆塔型号', name: '杆塔型号' },
     *     { field: '杆塔性质', name: '杆塔性质' },
     *     { field: '杆塔类型', name: '杆塔类型' },
     *     { field: '设计单位', name: '设计单位' },
     *     { field: 'height', name: '海拔高度' },
     *   ],
     *   attr: item,
     * })
     * @param [options = {}] - 参数对象:
     * @param options.attr - 属性值
     * @param options.template - 模版配置，支持：'all'、数组、字符串模板
     * @param [options.title] - 标题
     * @param [options.edit = false] - 是否返回编辑输入框
     * @param [options.width = 190] - edit:true时的，编辑输入框宽度值
     * @returns Html字符串
     */
    function getTemplateHtml(options?: {
        attr: any;
        template: string | Globe.getTemplateHtml_template[] | ((...params: any[]) => any) | any;
        title?: string;
        edit?: boolean;
        width?: number;
    }): string;
    /**
     * 获取Cesium对象值的最终value值，
     * 因为cesium经常属性或绑定一层，通过本方法可以内部去判断是否有getValue或_value进行取最终value值。
     * @param obj - Cesium对象值
     * @param [ClasName] - Cesium的类名，方便识别判断
     * @param [time = Cesium.JulianDate.now()] - 如果具有时间属于时，取指定的时间的值
     * @returns 最终value值
     */
    function getCesiumValue(obj: any, ClasName?: any, time?: Cesium.JulianDate): any;
    /**
     * 获取Cesium颜色对象
     * @param color - Cesium的类名，方便识别判断
     * @param [defval] - 默认值
     * @param [time = Cesium.JulianDate.now()] - 如果具有时间属于时，取指定的时间的值
     * @returns 颜色值
     */
    function getCesiumColor(color: string | Cesium.Color | ((...params: any[]) => any), defval?: Cesium.Color, time?: Cesium.JulianDate): Cesium.Color;
    /**
     * 根据配置信息获取Cesium颜色对象
     * @param style - 配置信息
     * @param style.color - 颜色值
     * @param [style.opacity] - 透明度
     * @param [style.randomColor] - 是否随机色
     * @param [defval = Cesium.Color.YELLOW] - 默认值
     * @returns 颜色值
     */
    function getColorByStyle(style: {
        color: string | Cesium.Color;
        opacity?: number;
        randomColor?: boolean;
    }, defval?: Cesium.Color): Cesium.Color;
    /**
     * 取属性值，简化Cesium内的属性，去掉getValue等，取最简的键值对。
     * 方便popup、tooltip等构造方法使用
     * @param attr - Cesium内的属性对象
     * @param [options = {}] - 参数对象:
     * @param options.onlySimpleType - 是否只获取简易类型的对象
     * @returns 最简的键值对属性对象
     */
    function getAttrVal(attr: any, options?: {
        onlySimpleType: boolean;
    }): any;
    /**
     * 取3DTile模型瓦片的feature原有属性
     * @param feature - Cesium内的属性对象
     * @returns 最简的键值对属性对象
     */
    function get3DTileFeatureAttr(feature: Cesium.Cesium3DTileFeature | any): any;
    /**
     * 合并对象，对二级子属性为Object的对象也会进行融合。
     * @param dest - 目标对象
     * @param sources - 需要融入合并的对象
     * @returns 融合后的对象
     */
    function merge(dest: any, sources: any): any;
    /**
     * 复制克隆对象
     * @param obj - 原始对象
     * @param [removeKeys = []] - 不复制的属性名 数组
     * @param [level = 5] - 拷贝的层级最大深度,避免死循环
     * @returns 克隆后的对象
     */
    function clone(obj: any, removeKeys?: string[], level?: number): any;
    /**
     * 随机获取数组中的一个元素
     * @param arr - 数组
     * @returns 获取到的随机元素
     */
    function getArrayRandomOne(arr: any[]): any;
    /**
     * 移除数组中的指定对象
     * @param arr - 数组
     * @param val - 需要移除的数组元素对象
     * @returns 对象是否移除成功
     */
    function removeArrayItem(arr: any[], val: any): boolean;
    /**
     * 根据属性 和symbol配置 取style样式信息
     * @param symbol - symbol配置
     * @param symbol.styleOptions - Style样式，每种不同类型数据都有不同的样式，具体见各矢量数据的style参数。{@link GraphicType}
     * @param [symbol.styleField] - 按 styleField 属性设置不同样式。
     * @param [symbol.styleFieldOptions] - 按styleField值与对应style样式的键值对象。
     * @param [symbol.callback] - 自定义判断处理返回style ，示例：callback: function (attr, styleOpt){  return { color: "#ff0000" };  }
     * @param [attr] - 数据属性对象
     * @returns style样式
     */
    function getSymbolStyle(symbol: {
        styleOptions: any;
        styleField?: string;
        styleFieldOptions?: any;
        callback?: (...params: any[]) => any;
    }, attr?: any): any;
    /**
     * geojson格式 转 arcgis服务的json格式
     * @param geojson - geojson格式
     * @param [idAttr = 'OBJECTID'] - id字段名称
     * @returns arcgis服务的json格式
     */
    function geojsonToArcGIS(geojson: any, idAttr?: string): any;
    /**
     * arcgis服务的json格式 转 geojson格式
     * @param arcgis - arcgis服务的json格式
     * @param [idAttr = 'OBJECTID'] - id字段名称
     * @returns geojson格式
     */
    function arcgisToGeoJSON(arcgis: any, idAttr?: string): any;
    /**
     * 获取GeoJSON中的features数组集合（自动判断数据来源）
     * @param geojson - geojson对象
     * @returns features数组集合
     */
    function getGeoJsonFeatures(geojson: any): any;
    /**
     * GeoJSON 转为 Graphic构造参数数组（用于创建{@link BaseGraphic}）
     * style有3种方式控制: 1.传type及style参数；2.传symbol参数；3.数据本身的feature.properties.style；
     * 优先级为：1>2>3
     * @param geojson - geojson对象
     * @param [options = {}] - 控制参数
     * @param [options.type] - 转为指定的类型
     * @param [options.style = {}] - Style样式，每种不同类型数据都有不同的样式，具体见各矢量数据的style参数。{@link GraphicType}
     * @param [options.symbol] - symbol配置，与style二选一
     * @param [options.symbol.type] - 标识数据类型
     * @param [options.symbol.merge] - 是否合并并覆盖json中已有的style，默认不合并，仅适用symbol配置。
     * @param options.symbol.styleOptions - Style样式，每种不同类型数据都有不同的样式，具体见各矢量数据的style参数。{@link GraphicType}
     * @param [options.symbol.styleField] - 按 styleField 属性设置不同样式。
     * @param [options.symbol.styleFieldOptions] - 按styleField值与对应style样式的键值对象。
     * @param [options.symbol.callback] - 自定义判断处理返回style ，示例：callback: function (attr, styleOpt){  return { color: "#ff0000" };  }
     * @param [options.crs] - 原始数据的坐标系，如'EPSG:3857' （可以从 {@link http://epsg.io }查询）
     * @returns Graphic构造参数数组（用于创建{@link BaseGraphic}）
     */
    function geoJsonToGraphics(geojson: any, options?: {
        type?: GraphicType | string;
        style?: any;
        symbol?: {
            type?: GraphicType | string;
            merge?: boolean;
            styleOptions: any;
            styleField?: string;
            styleFieldOptions?: any;
            callback?: (...params: any[]) => any;
        };
        crs?: string;
    }): any;
    /**
     * GeoJSON格式的Feature单个对象转为 Graphic构造参数（用于创建{@link BaseGraphic}）
     * @param feature - geojson单个Feature对象
     * @param [options = {}] - 参数，包括：
     * @param [options.type] - 转为指定的类型
     * @param [options.style = {}] - Style样式，每种不同类型数据都有不同的样式，具体见各矢量数据的style参数。{@link GraphicType}
     * @param [options.crs] - 原始数据的坐标系，如'EPSG:3857' （可以从 {@link http://epsg.io }查询）
     * @param [options.onPointTrans] - 坐标转换方法，可用于对每个坐标做额外转换处理
     * @returns Graphic构造参数（用于创建{@link BaseGraphic}）
     */
    function featureToGraphic(feature: any, options?: {
        type?: GraphicType | string;
        style?: any;
        crs?: string;
        onPointTrans?: (...params: any[]) => any;
    }): any;
    /**
     * 根据当前高度获取地图层级
     * @param altitude - 高度值
     * @returns 地图层级,通常为 0-21
     */
    function heightToZoom(altitude: number): number;
    /**
     * 根据图层的config的配置信息，自动加上代理等配置返回Resource对象
     * @param config - 图层的配置信息
     * @param config.url - url地址
     * @param [config.proxy] - 加载资源时要使用的代理服务url。
     * @param [config.templateValues] - 一个对象，用于替换Url中的模板值的键/值对
     * @param [config.queryParameters] - 一个对象，其中包含在检索资源时将发送的查询参数。比如：queryParameters: {'access_token': '123-435-456-000'}
     * @param [config.headers] - 一个对象，将发送的其他HTTP标头。比如：headers: { 'X-My-Header': 'valueOfHeader' }
     * @returns Resource对象
     */
    function getUrlResource(config: {
        url: string;
        proxy?: string;
        templateValues?: any;
        queryParameters?: any;
        headers?: any;
    }): Cesium.Resource;
    /**
     * 文字转base64图片
     * @param text - 文字内容 (提示：暂不支持换行)
     * @param [textStyle = {}] - 参数对象:
     * @param [textStyle.font = '10px sans-serif'] - 使用的CSS字体。
     * @param [textStyle.textBaseline = 'bottom'] - 文本的基线。
     * @param [textStyle.fill = true] - 是否填充文本。
     * @param [textStyle.fillColor = Cesium.Color.WHITE] - 填充颜色。
     * @param [textStyle.stroke = false] - 是否描边文本。
     * @param [textStyle.strokeWidth = 1] - 文本描边的宽度。
     * @param [textStyle.strokeColor = Cesium.Color.BLACK] - 文本描边的颜色。
     * @param [textStyle.background = false] - 是否背景色。
     * @param [textStyle.backgroundColor = Cesium.Color.TRANSPARENT] - 画布的背景色。
     * @param [textStyle.padding = 0] - 要在文本周围添加的填充的像素大小。
     * @param [textStyle.outline = false] - 是否边框
     * @param [textStyle.outlineWidth = 4] - 边框的宽度。
     * @param [textStyle.outlineColor = fillColor] - 矩形边框的颜色。
     * @returns canvas对象
     */
    function getTextImage(text: string, textStyle?: {
        font?: string;
        textBaseline?: string;
        fill?: boolean;
        fillColor?: Cesium.Color;
        stroke?: boolean;
        strokeWidth?: number;
        strokeColor?: Cesium.Color;
        background?: boolean;
        backgroundColor?: Cesium.Color;
        padding?: number;
        outline?: boolean;
        outlineWidth?: number;
        outlineColor?: Cesium.Color;
    }): HTMLCanvasElement;
    /**
     * 获取用于EntityCluster聚合的圆形图标对象
     * @param count - 数字
     * @param [options = {}] - 参数对象:
     * @param [options.radius = 26] - 圆形图标的整体半径大小（单位：像素）
     * @param [options.color = 'rgba(181, 226, 140, 0.6)'] - 圆形图标的背景颜色
     * @param [options.opacity = 0.5] - 圆形图标的透明度
     * @param [options.borderWidth = 5] - 圆形图标的边框宽度（单位：像素），0不显示
     * @param [options.borderColor = 'rgba(110, 204, 57, 0.5)'] - 圆形图标的边框背景颜色
     * @param [options.borderOpacity = 0.6] - 圆形图标边框的透明度
     * @param [options.fontColor = '#ffffff'] - 数字的颜色
     * @returns base64图片对象，包含 data URI 的DOMString。
     */
    function getCircleImage(count: number, options?: {
        radius?: number;
        color?: string;
        opacity?: number;
        borderWidth?: number;
        borderColor?: string;
        borderOpacity?: number;
        fontColor?: string;
    }): string;
    /**
     * 导出下载图片文件
     * @param name - 图片文件名称，不需要后缀名
     * @param base64 - 图片内容，base64格式
     * @returns 无
     */
    function downloadBase64Image(name: string, base64: string): void;
    /**
     * 导出下载文本文件
     * @param fileName - 文件完整名称，需要含后缀名
     * @param string - 文本内容
     * @returns 无
     */
    function downloadFile(fileName: string, string: string): void;
    /**
     * 获取浏览器类型及版本
     * @returns 浏览器类型及版本,示例：{ type: 'Chrome', version: 71 }
     */
    function getExplorerInfo(): any;
    /**
     * 检测当前浏览器是否支持WebGL
     * @returns 是否支持WebGL
     */
    function webglreport(): boolean;
    /**
     * 执行检测浏览器不支持webgl后的alert错误提示弹窗
     * @returns 无
     */
    function webglerror(): void;
    /**
     * 获取当前页面的url中的?传入参数对象集合
     * @returns 参数名与参数值的键值对
     */
    function getRequest(): any;
    /**
     * 获取当前页面的url中的?传入的指定参数值
     * @param name - 指定参数名称
     * @returns 获取到的参数值
     */
    function getRequestByName(name: string): string;
    /**
     * 当前是否是PC电脑浏览器。
     * @returns 是否是PC电脑浏览器。
     */
    function isPCBroswer(): boolean;
    /**
     * 执行alert弹窗（手动单击确定关闭窗口）
     * @param msg - 弹窗内的内容
     * @param [title] - 弹窗的标题
     * @returns 无
     */
    function alert(msg: string, title?: string): void;
    /**
     * 执行msg提示窗（自动消失）
     * @param msg - 弹窗内的内容
     * @returns 无
     */
    function msg(msg: string): void;
    /**
     * 将 时间 转化为指定格式的字符串
     * @example
     * mars3d.Util.formatDate(date,"yyyy-MM-dd HH:mm:ss") ==> 2017-08-25 08:08:00
     * mars3d.Util.formatDate(date,"yyyy-MM-dd HH:mm:ss.S") ==> 2017-08-25 08:08:00.423
     * mars3d.Util.formatDate(date,"yyyy-M-d HH:mm:ss") ==> 2017-8-5 08:08:00
     * @param date - 时间
     * @param fmt - 格式模版，月(M)、日(d)、12小时(h)、24小时(H)、分(m)、秒(s)、周(E)、季度(q) 可以用 1-2 个占位符; 年(y)可以用 1-4 个占位符，毫秒(S)只能用 1 个占位符(是 1-3 位的数字).
     * @returns 指定格式的字符串
     */
    function formatDate(date: Date, fmt: string): string;
    /**
     * 格式化时长
     * @param strtime - 时长
     * @returns 格式化字符串，如XX小时XX分钟
     */
    function formatTime(strtime: number): string;
    /**
     * 请求服务返回JSON结果
     * @param options - 请求参数
     * @param options.url - 服务URL地址
     * @param [options.queryParameters] - 与请求一起发送的 URL 参数,例如 {id: 1987 }
     * @param [options.proxy] - 加载资源时要使用的代理服务url。
     * @param [options.templateValues] - 一个对象，用于替换Url中的模板值的键/值对
     * @param [options.headers] - 一个对象，将发送的其他HTTP标头。比如：headers: { 'X-My-Header': 'valueOfHeader' }
     * @param [options.method = "get"] - 请求类型
     * @returns 返回Promise异步处理结果，对象为JSON数据
     */
    function fetchJson(options: {
        url: string;
        queryParameters?: any;
        proxy?: string;
        templateValues?: any;
        headers?: any;
        method?: string;
    }): Promise<any>;
    /**
     * 请求服务返回结果，方法是基于axios库精简的
     * @param options - 请求参数
     * @param options.url - 服务URL地址
     * @param [options.queryParameters] - 与请求一起发送的 URL 参数,例如 {id: 1987 }
     * @param [options.method = "get"] - 请求类型
     * @param [options.timeout = 0] - 是否超时
     * @param [options.headers] - 一个对象，将发送的其他HTTP标头。比如：headers: { 'X-My-Header': 'valueOfHeader' }
     * @returns 返回Promise异步处理结果，对象为response对象
     */
    function sendAjax(options: {
        url: string;
        queryParameters?: any;
        method?: string;
        timeout?: number;
        headers?: any;
    }): Promise<any>;
    /**
     * 根据设置的lang参数，获取当前key对应语言的文本内容。
     * @param key - 文本key
     * @param langType - 使用的语言
     * @returns lang参数指定的对应文本内容
     */
    function getLangText(key: string, langType: LangType): void;
    /**
     * 进入全屏
     * @param container - 指定DOM元素，如 map.container
     * @returns 是否全屏
     */
    function requestFullscreen(container: HTMLElement): boolean;
    /**
     * 退出全屏
     * @returns 是否全屏
     */
    function exitFullscreen(): boolean;
}




/**
 * 控件类 命名空间，
 * 教程 http://mars3d.cn/dev/guide/map/control.html
 */
declare namespace control {
  export { BaseControl }
  export { LocationBar }
  export { MouseDownView }
  export { Zoom }
  export { ToolButton }
  export { Compass }
  export { DistanceLegend }
  export { MapSplit }
  export { MapCompare }
  export { OverviewMap }
  export { ClockAnimate }
  export { Timeline }
}

/**
 * 特效类 命名空间，
 * 教程 http://mars3d.cn/dev/guide/map/effect.html
 */
declare namespace effect {
  export { BaseEffect }
  export { FogEffect }
  export { RainEffect }
  export { SnowEffect }
  export { SnowCoverEffect }
  export { InvertedEffect }

  export { NightVisionEffect }
  export { BloomEffect }
  export { BrightnessEffect }
  export { BlackAndWhiteEffect }
  export { MosaicEffect }
  export { DepthOfFieldEffect }
  export { OutlineEffect }
  export { BloomTargetEffect }
}


/**
 * 材质类 命名空间，
 * 教程 http://mars3d.cn/dev/guide/map/material.html
 */
declare namespace material {
  export { TextMaterial }
  export { CylinderWaveMaterial }

  export { BaseMaterialProperty }
  export { CircleScanMaterialProperty }
  export { CircleWaveMaterialProperty }
  export { CylinderWaveMaterialProperty }
  export { DigitalFlowMaterialProperty }
  export { EllipsoidElectricMaterialProperty }
  export { EllipsoidWaveMaterialProperty }
  export { Image2MaterialProperty }
  export { LineBloomMaterialProperty }
  export { LineFlickerMaterialProperty }
  export { LineFlowColorMaterialProperty }
  export { LineFlowMaterialProperty }
  export { LineTrailMaterialProperty }
  export { NeonLightMaterialProperty }
  export { ODLineMaterialProperty }
  export { PolyAsphaltMaterialProperty }
  export { PolyBlobMaterialProperty }
  export { PolyFacetMaterialProperty }
  export { PolyGradientMaterialProperty }
  export { PolyGrassMaterialProperty }
  export { PolyWoodMaterialProperty }
  export { RadarLineMaterialProperty }
  export { RadarWaveMaterialProperty }
  export { RectSlideMaterialProperty }
  export { ScanLineMaterialProperty }
  export { TextMaterialProperty }
  export { WallScrollMaterialProperty }
  export { WaterLightMaterialProperty }
  export { WaterMaterialProperty }
}



/**
 * 矢量数据类 命名空间，
 * 教程 http://mars3d.cn/dev/guide/map/graphic.html
 */
declare namespace graphic {
  export { BaseGraphic }
  export { BaseEntity }
  export { BasePointEntity }
  export { BasePolyEntity }
  export { BasePrimitive }
  export { BasePointPrimitive }
  export { BasePolyPrimitive }

  //基础entity
  export { PointEntity }
  export { BillboardEntity }
  export { FontBillboardEntity }
  export { DivBillboardEntity }
  export { LabelEntity }
  export { CanvasLabelEntity }
  export { ModelEntity }
  export { BoxEntity }
  export { PlaneEntity }
  export { CircleEntity }
  export { CylinderEntity }
  export { ConeTrack }
  export { EllipsoidEntity }
  export { PolylineEntity }
  export { CurveEntity }
  export { PolylineVolumeEntity }
  export { PathEntity }
  export { CorridorEntity }
  export { WallEntity }
  export { RectangleEntity }
  export { PolygonEntity }
  export { EllipseEntity }
  export { RectangularSensor }
  export { Video2D }

  //polygon扩展的entity
  export { AttackArrow }
  export { AttackArrowPW }
  export { AttackArrowYW }
  export { CloseVurve }
  export { DoubleArrow }
  export { FineArrow }
  export { FineArrowYW }
  export { GatheringPlace }
  export { IsosTriangle }
  export { Lune }
  export { Regular }
  export { Sector }
  export { StraightArrow }

  //量算对象
  export { PointMeasure }
  export { DistanceMeasure }
  export { DistanceSurfaceMeasure }
  export { SectionMeasure }
  export { AngleMeasure }
  export { HeightMeasure }
  export { HeightTriangleMeasure }
  export { AreaMeasure }
  export { AreaSurfaceMeasure }
  export { VolumeMeasure }

  //基础primitive
  export { PointPrimitive }
  export { BillboardPrimitive }
  export { CloudPrimitive }
  export { LabelPrimitive }
  export { ModelPrimitive }
  export { CirclePrimitive }
  export { PlanePrimitive }
  export { BoxPrimitive }
  export { CylinderPrimitive }
  export { ConeTrackPrimitive }
  export { EllipsoidPrimitive }
  export { PolylinePrimitive }
  export { PolylineSimplePrimitive }
  export { WallPrimitive }
  export { CorridorPrimitive }
  export { PolylineVolumePrimitive }
  export { RectanglePrimitive }
  export { PolygonPrimitive }
  export { FrustumPrimitive }
  //扩展的普通primitive
  export { LightCone }
  export { Water }
  export { DiffuseWall }
  export { ScrollWall }
  export { DynamicRiver }
  export { Road }
  export { Pit }

  //批量大数据primitive
  export { BaseCombine }
  export { FlatBillboard }
  export { ModelCombine }
  export { PlaneCombine }
  export { BoxCombine }
  export { CircleCombine }
  export { CylinderCombine }
  export { FrustumCombine }
  export { EllipsoidCombine }
  export { PolylineCombine }
  export { PolylineVolumeCombine }
  export { CorridorCombine }
  export { WallCombine }
  export { PolygonCombine }
  export { WaterCombine }
  export { RectangleCombine }

  //自定义扩展：DIV
  export { DivGraphic }
  export { DivBoderLabel }
  export { DivLightPoint }
  export { DivUpLabel }
  export { Popup }
  export { Tooltip }

  //自定义扩展：其他
  export { ParticleSystem }
  export { ArcFrustum }
  export { Tetrahedron }
  export { ViewShed }
  export { Video3D }
  export { Route }
  export { FixedRoute }

  //卫星插件
  export { CamberRadar }
  export { ConicSensor }
  export { RectSensor }
  export { Satellite }
  export { SatelliteSensor }
}

/**
 * 图层类 命名空间，
 * 教程 http://mars3d.cn/dev/guide/map/layer.html
 */
declare namespace layer {
  export { BaseLayer }
  export { GroupLayer }
  export { BaseTileLayer }
  export { BaseGraphicLayer }

  export { TerrainLayer }

  export { ArcGisCacheLayer }
  export { ArcGisTileLayer }
  export { ArcGisLayer }
  export { BaiduLayer }
  export { BingLayer }
  export { GaodeLayer }
  export { GeeLayer }
  export { GoogleLayer }
  export { ImageLayer }
  export { IonLayer }
  export { MapboxLayer }
  export { OsmLayer }
  export { TdtLayer }
  export { TencentLayer }
  export { TmsLayer }
  export { WmsLayer }
  export { WmtsLayer }
  export { XyzLayer }
  export { GridLayer }
  export { TileInfoLayer }
  export { EmptyTileLayer }

  export { CzmGeoJsonLayer }
  export { KmlLayer }
  export { CzmlLayer }

  export { GraphicLayer }
  export { GraphicLayer as DivLayer }
  export { GraphicGroupLayer }
  export { GeoJsonLayer }
  export { BusineDataLayer }
  export { TilesetLayer }
  export { OsmBuildingsLayer }
  export { GraticuleLayer }
  export { LodGraphicLayer }
  export { GeodePoiLayer }
  export { WfsLayer }
  export { ArcGisWfsLayer }
  export { ArcGisWfsSingleLayer }

  export { CanvasWindLayer }
  export { WindLayer }
  export { EchartsLayer }
  export { HeatLayer }
  export { MapVLayer }
  export { S3MLayer }
  export { SmImgLayer }
  export { SmMvtLayer }
  export { TdtDmLayer }
}

/**
 * 服务查询类 命名空间
 */
declare namespace query {
  export { BaiduPOI }
  export { GaodePOI }
  export { GaodeRoute }
  export { QueryGeoServer }
  export { QueryArcServer }
}


/**
 * 管理或分析类 命名空间，
 * 教程 http://mars3d.cn/dev/guide/map/thing.html
 */
declare namespace thing {
  export { Underground }
  export { Sightline }
  export { Skyline }
  export { Shadows }
  export { Measure }

  export { FloodByGraphic }
  export { Slope }
  export { TerrainPlanClip }

  export { FloodByMaterial }
  export { TerrainClip }
  export { ContourLine }

  export { LimitHeight }
  export { TilesetPlanClip }
  export { ModelPlanClip }
  export { TilesetBoxClip }

  export { TilesetClip }
  export { TilesetFlat }
  export { TilesetFlood }

  export { FirstPersonRoam }
  export { StreetView }
  export { CameraHistory }
  export { RotatePoint }
  export { RotateOut }

  export { MatrixMove }
  export { MatrixRotate }
}

export {
  name, update, version, proj4,
  BaseClass, BaseThing, LngLatPoint, LngLatArray, GroundSkyBox, LocalWorldTransform, CRS, ChinaCRS, EventType, State, Token, MaterialType, GraphicType, LayerType, ControlType, EffectType, Lang, LangType, MoveType, ClipType, Icon,
  DomUtil, MeasureUtil, PointUtil, PolyUtil, PointTrans, Util, Log, MaterialUtil, GraphicUtil, DrawUtil, LayerUtil, ControlUtil, EffectUtil,
  BaseMaterialConver, BaseStyleConver, BillboardStyleConver, CloudStyleConver, BoxStyleConver, CircleStyleConver, CorridorStyleConver, CylinderStyleConver, DivGraphicStyleConver, EllipsoidStyleConver, LabelStyleConver, ModelStyleConver, PathStyleConver, PlaneStyleConver, PointStyleConver, PolygonStyleConver, PolylineStyleConver, PolylineVolumeStyleConver, RectangleStyleConver, RectangularSensorStyleConver, WallStyleConver,
  material, graphic, provider, layer, thing, effect, control, query,
  Map,
};
