import { IOptions } from './index.type';
export default class AR {
    private options;
    private _nextTick;
    private aStar;
    private arrowGroupCache;
    private beginCache;
    private endCache;
    private trackPointsCache;
    constructor({ map, data }: IOptions);
    nextTick(cb?: (path: any[]) => void): Promise<any[]> | undefined;
    private init;
    /**
     * @desc 模拟AR
     * 判断第一个箭头是否有在当前视野，没有的话给出提示箭头
     * https://www.cnblogs.com/minnong/p/12017035.html
     * https://stackoverflow.com/questions/66972302/check-in-which-direction-of-camera-the-object-is-in-threejs
     */
    private 'dev.ARDemo';
    /**
     * @desc ar-demo
     */
    private getVideo;
    /**
     * @desc 调用相机
     */
    private callCamera;
    private drawRoadNet;
    private initAStar;
    /**
     * @desc 拿到路网数据，绘制基础路网
     */
    private _drawRoadNet;
    /**
     * @desc 绘制普通线段
     */
    private drawNormalLine;
    /**
     * @desc 第一视角切换
     */
    private changeFirstPerson;
    private deviceOrientationHandler;
    private onHashChange;
    /**
     * @desc 获取箭头指向模型
     */
    private getRoadNetArrow;
    /**
     * @desc 获取箭头指向模型
     */
    private getRoadNetArrowV2;
    private getCompass;
    private 'test.move';
    /**
     * @desc 添加一个箭头
     */
    private getArrow;
    /**
     * @desc 添加一个按钮
     */
    private 'dev.addControl';
    /**
     * @desc 选择起点和终点
     */
    private 'test.markBeginAndEnd';
    /**
     * @desc 线段延长后的端点
     * @param p1 起点
     * @param p2 终点
     * @param d 需要新增距离
     * @returns 新的终点坐标
     */
    private getExtendedEndPoint;
    private getDistance;
    /**
     * @desc 根据 最佳线路 绘制箭头指向
     * 箭头绘制逻辑：
     * - 起/终点，是用户的真实位置，所以要补充两端箭头分别在头尾
     * - 只绘制部分箭头，不绘制全路网
     * - 只绘制前方 MAX 米，存在两种场景，1.箭头都是直线 2.箭头有几处拐弯，”拐弯提醒是比较重要的“
     * - 需要距离起点一点距离 DIST 米进行绘制，保证用户可以在第一视角看到”第一个箭头“
     */
    private drawRoadNetArrows;
    /**
     * @desc 线路计算
     */
    search(begin: number[], end: number[], _cb?: (status: 'complete' | 'error', result: any) => void): void;
}
