using System; using System.Threading; using System.Threading.Tasks; using TINK.Model.Device; using Xamarin.Essentials; namespace TINK.Model.Services.Geolocation { /// <summary> Query geolocation. </summary> public interface IGeolocation : IGeolodationDependent { /// <summary> Gets the current location.</summary> /// <param name="cancellationToken">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.</param> /// <param name="timeStamp">Time when geolocation is of interest. Is used to determine for some implementations whether cached geoloation can be used or not.</param> /// <returns></returns> Task<Location> GetAsync(CancellationToken? cancellationToken = null, DateTime? timeStamp = null); /// <summary> If true location data returned is simulated.</summary> bool IsSimulation { get; } } }