| 123456789101112131415161718192021222324252627282930313233 | using System.Drawing;using InABox.Core;namespace InABox.Avalonia.Platform;public class GeoLocationTimerArgs(TimeSpan frequency, TimeSpan remaining) : EventArgs{    public TimeSpan Frequency { get; } = frequency;    public TimeSpan Remaining { get; } = remaining;}public delegate void GeoLocationTimerHandler(object sender, GeoLocationTimerArgs e);public class GeoLocationChangedArgs(GeoPoint? location) : EventArgs{    public GeoPoint? Location { get; } = location;}public delegate void GeoLocationChangedHandler(object sender, GeoLocationChangedArgs e);public interface IGeolocation : ILoggable{        bool Scanning { get; set; }        GeoPoint? CurrentLocation { get; set; }        public event GeoLocationChangedHandler? LocationChanged;         public event GeoLocationTimerHandler? TimerChanged;        Task<GeoPoint?> GetLocationAsync(CancellationTokenSource cancel);}
 |