use std::collections::HashMap;
use zbus::{
proxy,
zvariant::{OwnedObjectPath, OwnedValue},
};
#[proxy(interface = "org.bluez.Device1", assume_defaults = true)]
pub trait Device {
fn cancel_pairing(&self) -> zbus::Result<()>;
fn connect(&self) -> zbus::Result<()>;
fn connect_profile(&self, uuid: &str) -> zbus::Result<()>;
fn disconnect(&self) -> zbus::Result<()>;
fn disconnect_profile(&self, uuid: &str) -> zbus::Result<()>;
fn pair(&self) -> zbus::Result<()>;
#[zbus(property)]
fn adapter(&self) -> zbus::Result<OwnedObjectPath>;
#[zbus(property)]
fn address(&self) -> zbus::Result<String>;
#[zbus(property)]
fn address_type(&self) -> zbus::Result<String>;
#[zbus(property)]
fn alias(&self) -> zbus::Result<String>;
#[zbus(property)]
fn set_alias(&self, value: &str) -> zbus::Result<()>;
#[zbus(property)]
fn appearance(&self) -> zbus::Result<u16>;
#[zbus(property)]
fn blocked(&self) -> zbus::Result<bool>;
#[zbus(property)]
fn set_blocked(&self, value: bool) -> zbus::Result<()>;
#[zbus(property)]
fn class(&self) -> zbus::Result<u32>;
#[zbus(property)]
fn connected(&self) -> zbus::Result<bool>;
#[zbus(property)]
fn icon(&self) -> zbus::Result<String>;
#[zbus(property)]
fn legacy_pairing(&self) -> zbus::Result<bool>;
#[zbus(property)]
fn manufacturer_data(&self) -> zbus::Result<HashMap<u16, OwnedValue>>;
#[zbus(property)]
fn modalias(&self) -> zbus::Result<String>;
#[zbus(property)]
fn name(&self) -> zbus::Result<String>;
#[zbus(property)]
fn paired(&self) -> zbus::Result<bool>;
#[zbus(property, name = "RSSI")]
fn rssi(&self) -> zbus::Result<i16>;
#[zbus(property)]
fn service_data(&self) -> zbus::Result<HashMap<String, OwnedValue>>;
#[zbus(property)]
fn services_resolved(&self) -> zbus::Result<bool>;
#[zbus(property)]
fn trusted(&self) -> zbus::Result<bool>;
#[zbus(property)]
fn set_trusted(&self, value: bool) -> zbus::Result<()>;
#[zbus(property)]
fn tx_power(&self) -> zbus::Result<i16>;
#[zbus(property, name = "UUIDs")]
fn uuids(&self) -> zbus::Result<Vec<String>>;
}