sig
  type t = private OBus_peer.peer
  external of_peer : OBus_peer.peer -> t = "%identity"
  external to_peer : t -> OBus_peer.peer = "%identity"
  val daemon : unit -> t Lwt.t
  type state =
      [ `Asleep | `Connected | `Connecting | `Disconnected | `Unknown ]
  val get_devices : t -> Nm_device.t list Lwt.t
  val activate_connection :
    t ->
    service_name:OBus_name.bus ->
    connection:Nm_settings.Connection.t ->
    device:Nm_device.t ->
    specific_object:OBus_proxy.t -> Nm_connection.t Lwt.t
  val deactivate_connection :
    t -> active_connection:Nm_connection.t -> unit Lwt.t
  val sleep : t -> sleep:bool -> unit Lwt.t
  val state_changed : t -> Nm_manager.state OBus_signal.t
  val properties_changed :
    t -> (string * OBus_value.V.single) list OBus_signal.t
  val device_added : t -> Nm_device.t OBus_signal.t
  val device_removed : t -> Nm_device.t OBus_signal.t
  val wireless_enabled : t -> bool OBus_property.rw
  val wireless_hardware_enabled : t -> bool OBus_property.r
  val wwan_enabled : t -> bool OBus_property.rw
  val wwan_hardware_enabled : t -> bool OBus_property.r
  val active_connections : t -> Nm_connection.t list OBus_property.r
  val state : t -> Nm_manager.state OBus_property.r
  val properties : t -> OBus_property.group
end