import Graphic from '@arcgis/core/Graphic';
import GraphicsLayer from '@arcgis/core/layers/GraphicsLayer';
import MapView from '@arcgis/core/views/MapView';
import SceneView from '@arcgis/core/views/SceneView';
import { IMaskParam, IOverlay, IOverlayParam, IPointSymbol, IResult } from '../../types';
interface IOverlayOptions {
    id: string;
}
export default class Overlay {
    private view;
    overlayLayer: GraphicsLayer;
    constructor(view: MapView | SceneView, options?: IOverlayOptions);
    private defaultPointSymbol;
    addMask(params: IMaskParam): void;
    removeMask(): void;
    /**
     * 添加覆盖物
     * @param params
     */
    addOverlays(params: IOverlayParam): IResult;
    /**
     * 按type移除覆盖物
     * @param types
     */
    removeOverlaysByType(types: string[]): IResult;
    /**
     * 按id移除覆盖物
     * @param ids
     */
    removeOverlaysById(ids: string[]): IResult;
    /**
     * 按id显示或隐藏覆盖物
     * @param ids
     * @param isShow
     */
    isShowOverlaysByIds(ids: string[], isShow: boolean): void;
    /**
     * 显示全部覆盖物
     *
     * @memberof Overlay
     */
    showAllOverlays(): void;
    /**
     * 删除全部覆盖物
     * @returns
     */
    removeAllOverlays(): IResult;
    /**
     * 销毁
     *
     * @memberof Overlay
     */
    destroy(): void;
    removeGraphics(graphics: Graphic | Graphic[]): void;
    /**
     * 查找当前点击是否有覆盖物在当前图层
     *
     * @param {((MouseEvent | __esri.MapViewScreenPoint) &
     *       (__esri.SceneViewScreenPoint | MouseEvent))} event
     * @returns
     * @memberof Overlay
     */
    findGraphic(event: (MouseEvent | __esri.MapViewScreenPoint) & (__esri.SceneViewScreenPoint | MouseEvent)): Promise<__esri.ViewHit[]>;
    /**
     * 隐藏图层
     *
     * @memberof Overlay
     */
    hideLayer(): void;
    /**
     * 显示图层
     *
     * @memberof Overlay
     */
    showLayer(): void;
    /**
     * 添加点覆盖物
     * @param overlay
     * @param symbol
     * @param properties
     */
    addPoint(overlay: IOverlay, symbol: IPointSymbol, properties: any, visible?: boolean): IResult;
    private addOverlay;
}
export {};
