using LumaTunnel.Shared.Windows; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; namespace LumaTunnel.Client.Interface; public interface ISystemProxyService { bool IsEnabled { get; } Task EnableAsync(int httpPort, CancellationToken cancellationToken = default); Task DisableAsync(CancellationToken cancellationToken = default); bool EmergencyRestore(); } public interface ISecretStore { Task SetAsync(string key, string value, CancellationToken cancellationToken = default); Task GetAsync(string key, CancellationToken cancellationToken = default); Task RemoveAsync(string key, CancellationToken cancellationToken = default); } public interface IStartupService { bool IsEnabled { get; } void SetEnabled(bool enabled); } public interface ITrayService : IDisposable { void Initialize(Window window, Action showWindow); } public interface IRootNavigationService { void Initialize(Frame frame); void Navigate(Type pageType, object? parameter = null); } public interface ITrafficMeter { TrafficSample Current { get; } IReadOnlyList History { get; } void Sample(); } public sealed record TrafficSample(DateTimeOffset Timestamp, long UploadBytesPerSecond, long DownloadBytesPerSecond);