using GoveeCSharpConnector.Objects;
namespace GoveeCSharpConnector.Interfaces;
public interface IGoveeApiService
{
///
/// Sets the required Api Key for the Govee Api.
/// Request Api Key in the Mobile Phone App.
///
/// Api Key as String
void SetApiKey(string apiKey);
///
/// Returns current set Govee Api Key
///
/// Govee Api Key as String
string GetApiKey();
///
/// Removes the Set Api Key and resets the HTTP Header
///
void RemoveApiKey();
///
/// Requests all Devices registered to Api Key Govee Account
///
/// List of GoveeApiDevices
Task> GetDevices();
///
/// Requests the State of a single Govee Device
///
/// Device Id Guid as string
/// Device Model Number as string
/// GoveeApiStat Object
public Task GetDeviceState(string deviceId, string deviceModel);
///
/// Sets the On/Off state of a single Govee Device
///
/// Device Id Guid as string
/// Device Model Number as string
///
///
public Task ToggleState(string deviceId, string deviceModel, bool on);
///
/// Sets the Brightness in Percent of a single Govee Device
///
/// Device Id Guid as string
/// Device Model Number as string
/// Brightness in Percent as Int
///
public Task SetBrightness(string deviceId, string deviceModel, int value);
///
/// Sets a Rgb Color of a single Govee Device
///
/// Device Id Guid as string
/// Device Model Number as string
/// Rgb Color
///
public Task SetColor(string deviceId, string deviceModel, RgbColor color);
///
/// Sets the Color Temperature of a single Govee Device
///
/// Device Id Guid as string
/// Device Model Number as string
/// Color Temp in Kelvin as Int
///
public Task SetColorTemp(string deviceId, string deviceModel, int value);
}