pub trait ChannelControlProxyInterface: Send + Sync {
type GetCurrentResponseFut: Future<Output = Result<String, Error>> + Send;
type SetTargetResponseFut: Future<Output = Result<(), Error>> + Send;
type GetTargetResponseFut: Future<Output = Result<String, Error>> + Send;
type GetTargetListResponseFut: Future<Output = Result<Vec<String>, Error>> + Send;
// Required methods
fn get_current(&self) -> Self::GetCurrentResponseFut;
fn set_target(&self, channel: &str) -> Self::SetTargetResponseFut;
fn get_target(&self) -> Self::GetTargetResponseFut;
fn get_target_list(&self) -> Self::GetTargetListResponseFut;
}