pub trait AdminProxyInterface: Send + Sync {
type PowerFullyOnResponseFut: Future<Output = Result<AdminPowerFullyOnResult, Error>> + Send;
type RebootResponseFut: Future<Output = Result<AdminRebootResult, Error>> + Send;
type RebootToBootloaderResponseFut: Future<Output = Result<AdminRebootToBootloaderResult, Error>> + Send;
type RebootToRecoveryResponseFut: Future<Output = Result<AdminRebootToRecoveryResult, Error>> + Send;
type PoweroffResponseFut: Future<Output = Result<AdminPoweroffResult, Error>> + Send;
type MexecResponseFut: Future<Output = Result<AdminMexecResult, Error>> + Send;
type SuspendToRamResponseFut: Future<Output = Result<AdminSuspendToRamResult, Error>> + Send;
// Required methods
fn power_fully_on(&self) -> Self::PowerFullyOnResponseFut;
fn reboot(&self, reason: RebootReason) -> Self::RebootResponseFut;
fn reboot_to_bootloader(&self) -> Self::RebootToBootloaderResponseFut;
fn reboot_to_recovery(&self) -> Self::RebootToRecoveryResponseFut;
fn poweroff(&self) -> Self::PoweroffResponseFut;
fn mexec(&self, kernel_zbi: Vmo, data_zbi: Vmo) -> Self::MexecResponseFut;
fn suspend_to_ram(&self) -> Self::SuspendToRamResponseFut;
}