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, IOverlayParam, IResult } from '../../types';
interface IOverlayOptions {
    id: string;
}
export default class Overlay {
    private view;
    overlayLayer: GraphicsLayer;
    private flashingMap;
    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[] | string): IResult;
    /**
     * 按id移除覆盖物
     * @param ids
     */
    removeOverlaysById(ids: string[] | 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;
    /**
     * 隐藏图层
     *
     * @memberof Overlay
     */
    hideLayer(): void;
    /**
     * 显示图层
     *
     * @memberof Overlay
     */
    showLayer(): void;
    /**
     * 按id定位覆盖物并闪烁
     * @param params 参数对象
     * @param params.id 覆盖物id
     * @param params.duration 闪烁持续时间（秒），不传则保持闪烁
     * @param params.needZoom 是否需要缩放到覆盖物
     */
    flashOverlay(params: {
        id: string;
        duration?: number;
        needZoom?: boolean;
    }): Promise<void>;
    /**
     * 停止指定覆盖物闪烁
     * @param params 参数对象
     * @param params.id 覆盖物id
     */
    stopFlash(params?: {
        id: string;
    }): void;
    private addOverlay;
}
export {};
