using System.Threading.Tasks;

namespace RutasDBUS.Servicios.Caminata;

/// <summary>
/// Cliente para consumir el servicio OSRM y obtener rutas a pie.
/// </summary>
public interface IClienteOsrm
{
    /// <summary>
    /// Obtiene una ruta a pie entre dos coordenadas.
    /// </summary>
    /// <param name="latitudDesde">Latitud de origen.</param>
    /// <param name="longitudDesde">Longitud de origen.</param>
    /// <param name="latitudHasta">Latitud de destino.</param>
    /// <param name="longitudHasta">Longitud de destino.</param>
    /// <returns>
    /// Una tupla con:
    /// - Linea: matriz [n,2] con latitud/longitud de la polilínea.
    /// - DistanciaMetros: distancia total en metros.
    /// - DuracionSegundos: duración total en segundos.
    /// </returns>
    Task<(double[,]? Linea, double DistanciaMetros, double DuracionSegundos)> ObtenerRutaAPieAsync(
        double latitudDesde,
        double longitudDesde,
        double latitudHasta,
        double longitudHasta);
}
