pub trait LightProxyInterface: Send + Sync {
type WatchLightGroupsResponseFut: Future<Output = Result<Vec<LightGroup>, Error>> + Send;
type WatchLightGroupResponseFut: Future<Output = Result<LightGroup, Error>> + Send;
type SetLightGroupValuesResponseFut: Future<Output = Result<LightSetLightGroupValuesResult, Error>> + Send;
// Required methods
fn watch_light_groups(&self) -> Self::WatchLightGroupsResponseFut;
fn watch_light_group(&self, name: &str) -> Self::WatchLightGroupResponseFut;
fn set_light_group_values(
&self,
name: &str,
state: &[LightState],
) -> Self::SetLightGroupValuesResponseFut;
}