import { Polygon, Model } from "../../overlay";
import Layer from "../Layer";
import VectorLayer from "./VectorLayer";
/**
 * GeoJson 图层，用于加载 GeoJson 格式数据
 * @noInheritDoc
 * @example
 * ```ts
 * let layer = new BC.GeoJsonLayer('id', '**\/**.geojson')
 * layer.eachOverlay((item) => {
 *   // item 为一个entity,
 *   if (item.polyline) {
 *     //todo
 *     let polyline = BC.Polyline.fromEntity(item)
 *   }
 *   if (item.polygon) {
 *     //todo
 *     let polygon = BC.Polygon.fromEntity(item)
 *   }
 *   if (item.billboard) {
 *     //todo
 *     let point = BC.Point.fromEntity(item)
 *     let divIcon = BC.DivIcon.fromEntity(item)
 *     let billboard = BC.Billboard.fromEntity(item)
 *   }
 * })
 * ```
 */
declare class GeoJsonLayer extends Layer {
    /**
     * @param id 图层唯一标识
     * @param url 数据地址
     * @param options 属性配置
     */
    constructor(id: string, url: string, options?: {});
    /**
     * 类型
     */
    get type(): string;
    /**
     * 是否显示
     */
    set show(show: boolean);
    get show(): boolean;
    /**
     * 创建图标
     * @param entity
     * @returns
     */
    private _createBillboard;
    /**
     * 创建线实体
     * @param entity
     * @returns {any}
     * @private
     */
    private _createPolyline;
    /**
     * 创建面实体
     * @param entity
     * @returns {any}
     * @private
     */
    _createPolygon(entity: Cesium.Entity): Polygon;
    /**
     * 创建模型
     * @param entity
     * @param modelUrl 模型url
     * @returns 模型
     * @private
     */
    _createModel(entity: Cesium.Entity, modelUrl: string): Model;
    /**
     * 遍历覆盖物
     * @param method 回调方法
     * @param context
     * @returns {GeoJsonLayer}
     */
    eachOverlay(method: any, context: any): GeoJsonLayer;
    /**
     * 转换为矢量图层
     * @returns 矢量图层
     */
    toVectorLayer(): VectorLayer;
    /**
     * 转换为模型图层
     * @param modelUrl 模型地址
     * @returns {VectorLayer}
     */
    toModelLayer(modelUrl: string): VectorLayer;
    clear(): void;
    setStyle(style: any): void;
}
export default GeoJsonLayer;
