using System; using System.Threading.Tasks; namespace LANCommander.SDK.Services; public interface IConnectionClient { public event EventHandler OnConnect; public event EventHandler OnDisconnect; public event EventHandler OnServerAddressChanged; public event EventHandler OnOfflineModeEnabled; public bool IsConnected(); public bool IsConfigured(); public bool IsOfflineMode(); public bool HasServerAddress(); public Uri GetServerAddress(); /// /// Set the server address to use for all API requests. Address is validated and checked for validity. /// /// The address to resolve for a LANCommander server public Task UpdateServerAddressAsync(string address); public Task UpdateServerAddressAsync(Uri address); public Task ConnectAsync(); public Task DisconnectAsync(); public Task EnableOfflineModeAsync(); public Task PingAsync(Uri serverAddress = null); }