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
  val general_error : OBus_error.name
  val hibernate_allowed : t -> bool Lwt.t
  val hibernate : t -> unit Lwt.t
  val suspend_allowed : t -> bool Lwt.t
  val suspend : t -> unit Lwt.t
  val about_to_sleep : t -> unit Lwt.t
  val enumerate_devices : t -> UPower_device.t list Lwt.t
  val resuming : t -> unit OBus_signal.t
  val sleeping : t -> unit OBus_signal.t
  val changed : t -> unit OBus_signal.t
  val device_changed : t -> UPower_device.t OBus_signal.t
  val device_removed : t -> UPower_device.t OBus_signal.t
  val device_added : t -> UPower_device.t OBus_signal.t
  val lid_is_present : t -> bool OBus_property.r
  val lid_is_closed : t -> bool OBus_property.r
  val on_low_battery : t -> bool OBus_property.r
  val on_battery : t -> bool OBus_property.r
  val can_hibernate : t -> bool OBus_property.r
  val can_suspend : t -> bool OBus_property.r
  val daemon_version : t -> string OBus_property.r
  val properties : t -> OBus_property.group
end