from abc import ABC, abstractmethod from core.domain.map.GeoLocation import GeoLocation from core.domain.map.RouteInfo import RouteInfo from core.domain.map.RouteMatrix import RouteMatrix from core.domain.optimization.TransportMode import TransportMode class RoutingService(ABC): @abstractmethod def getRouteMatrix(self, geoLocations: list[GeoLocation], transportMode: TransportMode) -> RouteMatrix: pass @abstractmethod def getRouteInfo(self, transportMode: TransportMode, legs: list[GeoLocation]) -> RouteInfo: pass @abstractmethod def getAverageRouteInfo(self, transportMode: TransportMode, legs: list[GeoLocation], probability: list[float], iterations: int) -> RouteInfo: pass