using GoveeCSharpConnector.Objects;
namespace GoveeCSharpConnector.Interfaces;
public interface IGoveeService
{
///
/// Govee Api Key
///
string GoveeApiKey { get; set; }
///
/// Gets a List of Govee Devices
///
/// If true returns that are available on Api and Lan
/// List of Govee Devices
Task> GetDevices(bool onlyLan = true);
///
/// Gets the State of a GoveeDevice
///
/// GoveeDevice
/// Use Udp Connection instead of the Api
///
Task GetDeviceState(GoveeDevice goveeDevice, bool useUdp = true);
///
/// Sets the On/Off State of the GoveeDevice
///
/// GoveeDevice
///
/// Use Udp Connection instead of the Api
///
Task ToggleState(GoveeDevice goveeDevice, bool on, bool useUdp = true);
///
/// Sets the Brightness of the GoveeDevice
///
/// GoveeDevice
/// Brightness in Percent
/// Use Udp Connection instead of the Api
///
Task SetBrightness(GoveeDevice goveeDevice, int value, bool useUdp = true);
///
/// Sets the Color of the GoveeDevice
///
/// GoveeDevice
/// RgBColor
/// Use Udp Connection instead of the Api
///
Task SetColor(GoveeDevice goveeDevice, RgbColor color, bool useUdp = true);
///
/// Sets the Color Temperature in Kelvin for the GoveeDevice
///
/// GoveeDevice
/// Color Temp in Kelvin
/// Use Udp Connection instead of the Api
///
Task SetColorTemp(GoveeDevice goveeDevice, int value, bool useUdp = true);
}