using System;
using System.Threading;
using System.Threading.Tasks;
using TINK.Model.Device;
using Xamarin.Essentials;
namespace TINK.Services.Geolocation
{
/// Query geolocation.
public interface IGeolocation : IGeolodationDependent
{
/// Gets the current location.
/// Token to cancel request for geolocation. If null request can not be cancels and times out after GeolocationService.GEOLOCATIONREQUEST_TIMEOUT_MS if geolocation is not available.
/// Time when geolocation is of interest. Is used to determine for some implementations whether cached geoloation can be used or not.
///
Task GetAsync(CancellationToken? cancellationToken = null, DateTime? timeStamp = null);
/// If true location data returned is simulated.
bool IsSimulation { get; }
}
}