using System;
using System.Threading.Tasks;
using ShareeBike.Model.Bikes;
using ShareeBike.Model.Services.CopriApi;
namespace ShareeBike.Model.Connector
{
public interface IQuery
{
/// Gets all stations including positions.
Task> GetBikesAndStationsAsync();
/// Gets bikes occupied is a user is logged in.
/// Collection of bikes.
Task> GetBikesOccupiedAsync();
/// Gets bikes either bikes available if no user is logged in or bikes available and bikes occupied if a user is logged in.
/// Uri of the operator host to get bikes from or null if bikes have to be gotten form primary host.
/// Id of station which is used for filtering bikes. Null if no filtering should be applied.
/// Collection of bikes.
Task> GetBikesAsync(Uri operatorUri = null, string stationId = null, string bikeId = null);
}
}