import { IBlockOpenDriveLaneParams, IFindSumoParams, IResult, IShowOpenDriveFromFileParams, ISplitOpenDriveLaneParams, IUnselectSumoParams } from '../../../types';
export default class OpenDriveRenderer {
    private static instance;
    static getInstance(view: __esri.MapView | __esri.SceneView): OpenDriveRenderer;
    private readonly view;
    private laneLayer;
    private roadNameLayer;
    private junctionLayer;
    private sectionLayer;
    private highlightLayer;
    private flashLayer;
    private drawLayer;
    private splitLaneLayer;
    private borderLayer;
    private allLaneGraphics;
    private allRefLineGraphics;
    private mouseMoveHandler;
    private mouseClickHandler;
    private junctionNames;
    private readonly junctionScale;
    private scaleWatch;
    private xodrBorder;
    constructor(view: __esri.MapView | __esri.SceneView);
    private projectName;
    private openDriveServer;
    private openDriveClickCallback;
    private makeMd5FromFile;
    /**
     * 从本地文件/网络文件显示OpenDrive内容
     * @param params
     * @returns
     */
    showOpenDriveFromFile(params: IShowOpenDriveFromFileParams): Promise<IResult>;
    /**
     * 从服务器载入OpenDrive文件解析结果并显示
     * @param server
     * @param projectName
     */
    showOpenDriveFromServer(server: string, projectName: string): Promise<IResult>;
    /**
     * 显示所有车道
     * @param roads 道路列表
     * @param showJunctionLane 是否显示路口内车道
     * @param showRoadName 是否显示道路名称
     * @returns
     */
    private showAllLanes;
    /**
     * 显示路口
     * @param params
     * @returns
     */
    private showJunction;
    private currentSectionCode;
    private selectedSectionIds;
    private currentJunctionId;
    private hitGraphic;
    /**
     * 监听鼠标移动事件，高亮显示鼠标所在路段和路口
     */
    private monitorMouseMove;
    /**
     * 监听鼠标点击事件，获取高亮要素的拓扑信息
     */
    private monitorMouseClick;
    /**
     * 图标增大动画
     * @param graphic
     * @param targetSize
     */
    private increasePictureMarkerSize;
    /**
     * 图标缩小动画
     * @param graphic
     * @param targetSize
     */
    private decreasePictureMarkerSize;
    getSumoInfo(params: IFindSumoParams): Promise<IResult>;
    setOpendriveVisibility(visible: boolean): void;
    /**
     * 清除OpenDrive内容
     */
    clearOpenDrive(): Promise<void>;
    /**
     * 用sumo的id定位车道、基本段、路段
     * @param params
     * @returns
     */
    findSumo(params: IFindSumoParams): Promise<IResult>;
    private findJunction;
    /**
     * 用sumo的id定位车道、基本段、路段
     * @param params
     * @returns
     */
    private findLane;
    /**
     * graphic渐隐渐显闪烁
     * @param flashGraphic
     */
    private flashGraphic;
    /**
     * 通过接口取消选中
     * @param params
     * @returns
     */
    unselectSumo(params?: IUnselectSumoParams): IResult;
    /**
     * 通过接口选中
     * @param params
     * @returns
     */
    selectSumo(params: IFindSumoParams): Promise<IResult>;
    geometrySearch(coordinate: number[][]): Promise<IResult>;
    /**
     * 封闭车道，使用sumo的id
     * @param params
     * @returns
     */
    splitLane(params: ISplitOpenDriveLaneParams): Promise<IResult>;
    clearSplitLane(): void;
    /**
     * 封闭车道，使用可计算路网的id
     * @param params
     */
    blockLane(params: IBlockOpenDriveLaneParams): void;
    /**
     * 解除封闭车道，使用可计算路网id
     * @param params
     */
    clearBlockLane(params: IBlockOpenDriveLaneParams): void;
    selectComputable(params: IFindSumoParams): void;
    /**
     * 更新所有路口的symbol
     * @param symbolStyle
     */
    private updateAllJunctionSymbol;
    /**
     * 生成路口点符号。在不同比例尺下，使用不同的符号
     * @param attributes
     * @param symbolType
     * @returns
     */
    private getCrossGraphicSymbol;
}
