using System.Threading.Tasks;
using TINK.Repository.Request;
using TINK.ViewModel.Bikes.Bike.BluetoothLock;
using static TINK.Model.Bikes.BikeInfoNS.BluetoothLock.Command.CloseCommand;
using static TINK.Model.Bikes.BikeInfoNS.BluetoothLock.Command.GetLockedLocationCommand;
namespace TINK.Model.Bikes.BikeInfoNS.BluetoothLock
{
public interface IBikeInfoMutable : BC.IBikeInfoMutable
{
ILockInfoMutable LockInfo { get; }
///
/// Closes the lock.
///
/// View model to process closing notifications.
/// Task which stops polling to be awaited before updating bike object and copri communication.
Task CloseLockAsync(ICloseCommandListener listener, Task stopPollingTask);
///
/// Gets the location of the locked bike.
///
/// View model to process notifications.
///
Task GetLockedBikeLocationAsync(IGetLockedLocationCommandListener listener);
}
}