import { H3Index, LatLng } from "./coordinate.types"; import { Distance } from "./distance.types"; import { Count } from "./count.types"; import { PolylineString } from "./polyline-string.types"; export declare enum AlgorithmName { SHORTEST_DISTANCE = "shortest-distance", RADIUS = "radius" } export type AlgorithmMatch = { point: LatLng; distance: Distance; isMatched: boolean; closestPoint: LatLng | null; polylineIndex: number; }; export type AlgorithmSummary = { totalPoints: Count; matchedCount: Count; averageDistance: Distance; }; export type AlgorithmResult = { name: string; results: AlgorithmMatch[]; summary: AlgorithmSummary; }; export type DistanceCheckResult = { minDistance: Distance; closestPoint: LatLng | null; polylineIndex: number; isMatched: boolean; }; export interface Algorithm { execute: (polylineString: PolylineString, points: Array, toleranceDistance: Distance) => AlgorithmResult; }