import Graphic from '@arcgis/core/Graphic';
import MapView from '@arcgis/core/views/MapView';
import SceneView from '@arcgis/core/views/SceneView';
import { IResult, IStartCrossBufferParam } from '../../../types';
export default class SearchNearbyLanes {
    private view;
    /** 显示圆心和边缘点的图层，可响应拖拽事件 */
    private pointLayer;
    /** 显示缓冲结果的图层 */
    private bufferAreaLayer;
    /** 车道图层 */
    private laneLayer;
    /** 停止线图层 */
    private stopLineLayer;
    /** 移动graphic的工具类 */
    private sketchViewModel;
    /** 显示圆心点的graphic */
    private centerGraphic;
    /** 显示边缘点的graphic */
    private edgeGraphic;
    /** 显示缓冲圆形的graphic */
    private bufferGraphic;
    /** 显示圆心与边缘点连线的graphic */
    private radiusLineGraphic;
    /** 鼠标开始拖动边缘点时，圆心点的位置 */
    private centerGeometryAtStart;
    /** 地理计算单位，统一为米 */
    private readonly geometryUnit;
    constructor(view: MapView | SceneView);
    /**
     * 搜索路口中心点周边车道
     * @param params
     * @returns Promise<IResult>
     */
    initializeSearch(params: IStartCrossBufferParam): Promise<IResult>;
    /**
     * 获取当前缓冲区的搜索结果
     */
    getCurrentSearchResult(): Promise<{
        lanes: Graphic[];
        stopLines: Graphic[];
    }>;
    /**
     * 清除地图上显示的搜索结果
     */
    clearResult(): void;
    /**
     * 计算缓冲区
     * 移动边缘点或圆心点后调用
     * @param vertices 圆心点与边缘点的坐标
     */
    private calculateBuffer;
    /**
     * 载入车道和停止线图层
     */
    private loadLaneAndStopLineLayer;
    /**
     * 更新车道与停止线图层的filter，高亮缓冲区内部的要素
     * @param buffer
     */
    private updateLayerFilter;
}
