using GoveeCSharpConnector.Objects; namespace GoveeCSharpConnector.Interfaces; public interface IGoveeUdpService { bool IsListening(); void StopUdpListener(); Task StartUdpListenerAsync(); Task> GetDevicesAsync(TimeSpan? timeout = null); void ToggleDevice(string deviceAddress, bool on, int uniCastPort = 4003); void SetColor(string deviceAddress, RgbColor color, int uniCastPort = 4003); void SetBrightness(string deviceAddress, int brightness, int uniCastPort = 4003); void SetColorTemp(string deviceAddress, int colorTempInKelvin, int uniCastPort = 4003); Task GetStateAsync(string deviceAddress, int uniCastPort = 4003, TimeSpan? timeout = null); // void StartUdpListener(); // Task> GetDevices(TimeSpan? timeout = null); // Task GetState(string deviceAddress, int uniCastPort = 4003, TimeSpan? timeout = null); // public async Task> GetDevices(TimeSpan? timeout = null) => // new([.. (await GetDevicesAsync(timeout))]); // public async Task GetState(string deviceAddress, int uniCastPort = 4003, TimeSpan? timeout = null) => // await GetStateAsync(deviceAddress, uniCastPort, timeout); // public async void StartUdpListener() => // await StartUdpListenerAsync(); // private async void SetupUdpClientListener() => // await SetupUdpClientListenerAsync(); }