pub trait SourceProxyInterface: Send + Sync {
type GetPowerInfoResponseFut: Future<Output = Result<(i32, SourceInfo), Error>> + Send;
type GetStateChangeEventResponseFut: Future<Output = Result<(i32, Event), Error>> + Send;
type GetBatteryInfoResponseFut: Future<Output = Result<(i32, BatteryInfo), Error>> + Send;
// Required methods
fn get_power_info(&self) -> Self::GetPowerInfoResponseFut;
fn get_state_change_event(&self) -> Self::GetStateChangeEventResponseFut;
fn get_battery_info(&self) -> Self::GetBatteryInfoResponseFut;
}