import { Overlay } from "../overlay";
import Viewer from "../viewer/Viewer";
/**
 * 三维场景中的辅助工具，方便在场景中进行标绘、位置编辑
 * @noInheritDoc
 * @example
 * ```ts
 * let plot = new BC.Plot(viewer, {})
 * plot.draw(BC.OverlayType.POINT, (overlay) => {}, {})
 * ```
 */
declare class Plot {
    private _viewer;
    private _options;
    private _layer;
    private _currentWorker;
    private _state;
    /**
     *
     * @param viewer - 场景
     * @param options - 属性
     * @example
     * ```json
     * //属性参数(可选)
     * {
     *   "icon_center": "**.png", // 自定义的中心点图标
     *   "icon_anchor": "**.png", //自定义的锚点图标
     *   "icon_midAnchor": "**.png", //自定义的中心锚点图标
     *   "icon_size": [12, 12],//自定义的中心锚点大小
     *   "clampToModel":false // 点位是否获取模型表面坐标
     * }
     * ```
     */
    constructor(viewer: Viewer, options?: {});
    /**
     * @hidden
     */
    get viewer(): Viewer;
    /**
     * @hidden
     */
    get layer(): Cesium.CustomDataSource;
    /**
     * @hidden
     */
    get state(): string;
    /**
     *
     * @param type - 类型
     * @param style - 风格
     * @private
     */
    private _createDrawWorker;
    /**
     *
     * @param overlay - 覆盖物
     * @private
     */
    private _createEditWorker;
    /**
     *
     * @param type - 绘制类型
     * @param callback - 标绘完成的回调函数，参数为overlay
     * @param style - 标绘的覆盖物样式设置
     * @param clampToModel - 点位是否获取模型表面坐标
     * @returns {Plot}
     */
    draw(type: string, callback: Function, style?: any, clampToModel?: boolean): this;
    /**
     *
     * @param overlay - 覆盖物对象
     * @param callback - 标绘完成的回调函数，参数为overlay
     * @param clampToModel - 点位是否获取模型表面坐标
     * @returns {Plot}
     */
    edit(overlay: Overlay, callback: Function, clampToModel?: boolean): this;
    /**
     * 停止绘制
     */
    stop(): any;
    /**
     * @hidden
     */
    destroy(): this;
}
export default Plot;
