import { LatLng } from './LatLng'; /** * Necessary for creating new instances T extends LatLng (Path) */ export type LatLangFactory = (latitude: number, longitude: number) => LatLng; export declare class Path { private logger; /** For [Distance] calculations */ private readonly _distance; private readonly latLngFactory; /** Coordinates managed by this class */ private readonly _coordinates; static from(coordinates: T[]): Path; get coordinates(): readonly T[]; clear(): void; add(value: T): void; addAll(values: readonly T[]): void; get first(): T; get last(): T; /** * Splits the path into even sections. * * The section size is defined with [distanceInMeterPerTime]. * [distanceInMeterPerTime] means that the original size on the given * path will stay the same but the created section could be smaller because of the "linear distance" * * However - if you follow the steps in a given time then the distance from point to point (over time) * is correct. (Almost - because of the curves generate with [CatmullRomSpline2D] * * final Path path = new Path.from(zigzag); * * If [smoothPath] is turned on than the minimum of 3 coordinates is required otherwise * we need two */ equalize(distanceInMeterPerTime: number, { smoothPath }?: { smoothPath?: boolean; }): Path; get distance(): number; /** Returns the number of coordinates */ get nrOfCoordinates(): number; /** * Calculates the center of a collection of geo coordinates * * The function rounds the result to 6 decimals */ get center(): LatLng; /** 4 Points are necessary to create a [CatmullRomSpline2D] */ private _createSpline; /** * Convert [Point2D] to [LatLng] */ private _pointToLatLng; }