`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`