import { AlgorithmMatch, AlgorithmName, AlgorithmResult, AlgorithmSummary, DistanceCheckResult } from "../types/algorithm.types"; import { H3Index, LatLng } from "../types/coordinate.types"; import { Distance } from "../types/distance.types"; import { PolylineString } from "../types/polyline-string.types"; export declare abstract class AlgorithmBase { protected abstract name: AlgorithmName; abstract execute(polylineString: PolylineString, points: Array, toleranceDistance: Distance): AlgorithmResult; protected checkCoordinates(points: Array): LatLng[]; protected validateInput(polylineString: PolylineString, points: Array, toleranceDistance: Distance): AlgorithmResult | undefined; protected getResult(results: AlgorithmMatch[], summary: AlgorithmSummary): AlgorithmResult; protected getDistanceCheckResult(minDistance: Distance, closestPoint: LatLng | null, polylineIndex: number, isMatched: boolean): DistanceCheckResult; }