import { Point, Polygon, Polyline } from '@arcgis/core/geometry';
import Graphic from '@arcgis/core/Graphic';
import * as turf from '@turf/helpers';
export default class CommonUtils {
    /**
     * 得到某个点在一定方向、距离之外的另一个点
     * @param point
     * @param angel
     * @param distance
     * @returns
     */
    static destinationWithPoint(point: Point, angel: number, distance: number): Point;
    /**
     * 线段与正北方向夹角
     * @param line
     * @returns
     */
    static angleOfLine(line: Polyline): number;
    /**
     * 在头尾两个方向上延长折线
     * @param line
     * @param distance
     */
    static extendLineInTowDir(line: Polyline, distance: number): Polyline;
    /**
     * 两条线的交点
     * @param line1
     * @param line2
     * @returns
     */
    static getIntersectPointOfTwoLines(line1: Polyline, line2: Polyline): Promise<Point | undefined>;
    /**
     * 获取停止线与车道面的交点
     * @param stopLine
     * @param lanePolygon
     * @param offsetDistances
     * @returns
     */
    static getIntersectPointsOfStopLineAndLane(stopLine: Polyline, lanePolygon: Polygon, offsetDistances?: number[]): Promise<number[][]>;
    /**
     * 两个点之间的距离
     * @param points
     * @returns
     */
    private static pointDistance;
    /**
     * 线按一定距离平移之后，与面相交的两个端点
     * @param line
     * @param polygon
     * @param offsetDistance 线平移的距离
     * @returns 线面交线的头尾端点
     */
    static getIntersectPointOfLineAndPolygon(line: Polyline, polygon: Polygon, offsetDistance?: number): Promise<number[][]>;
    /**
     * 对polyline做平移
     * @param line
     * @param offsetDistance
     * @returns 平移后的polyline
     */
    static getOffsetLine(line: Polyline, offsetDistance: number): Promise<Polyline>;
    /**
     * 解压
     * @param key
     * @returns
     */
    static unzip(key: string): string | undefined;
    static getStdVecEntries(std_vec: any, delete_vec?: boolean): any[];
    static getStdMapEntries(std_map: any): any[];
    static getStdMapKeys(std_map: any, delete_map?: boolean): any[];
    static geoReference: string;
    static xOffset: number;
    static yOffset: number;
    static setGeoData(geoReference: string, xOffset: number, yOffset: number): void;
    /**
     * OpenDrive坐标转换为WGS84坐标
     * @param line
     * @returns
     */
    static transformLineProjection(line: number[][]): number[][];
    static transformPointProjection(point: number[]): number[];
    static pointsEqual(point1: number[], point2: number[]): boolean;
    static getExtensionLine(pt1: number[], pt2: number[], distance: number): turf.Position;
    static isCoordinateValid(coordinate: {
        latitude: number | string;
        longitude: number | string;
    }): boolean;
    /**
     * 获取折线中点
     * @param line
     * @returns
     */
    static getCenterPointInLine(line: number[][]): number[];
    static viewGoto(view: __esri.MapView | __esri.SceneView, target: Graphic[], zoom?: boolean): Promise<void>;
}
