sig
  val interface : OBus_name.interface
  val m_GetHistory :
    (string * int32 * int32, (int32 * float * int32) list)
    OBus_member.Method.t
  val m_GetStatistics : (string, (float * float) list) OBus_member.Method.t
  val m_Refresh : (unit, unit) OBus_member.Method.t
  val s_Changed : unit OBus_member.Signal.t
  val p_Capacity : (float, [ `readable ]) OBus_member.Property.t
  val p_Energy : (float, [ `readable ]) OBus_member.Property.t
  val p_EnergyEmpty : (float, [ `readable ]) OBus_member.Property.t
  val p_EnergyFull : (float, [ `readable ]) OBus_member.Property.t
  val p_EnergyFullDesign : (float, [ `readable ]) OBus_member.Property.t
  val p_EnergyRate : (float, [ `readable ]) OBus_member.Property.t
  val p_HasHistory : (bool, [ `readable ]) OBus_member.Property.t
  val p_HasStatistics : (bool, [ `readable ]) OBus_member.Property.t
  val p_IsPresent : (bool, [ `readable ]) OBus_member.Property.t
  val p_IsRechargeable : (bool, [ `readable ]) OBus_member.Property.t
  val p_Model : (string, [ `readable ]) OBus_member.Property.t
  val p_NativePath : (string, [ `readable ]) OBus_member.Property.t
  val p_Online : (bool, [ `readable ]) OBus_member.Property.t
  val p_Percentage : (float, [ `readable ]) OBus_member.Property.t
  val p_PowerSupply : (bool, [ `readable ]) OBus_member.Property.t
  val p_RecallNotice : (bool, [ `readable ]) OBus_member.Property.t
  val p_RecallUrl : (string, [ `readable ]) OBus_member.Property.t
  val p_RecallVendor : (string, [ `readable ]) OBus_member.Property.t
  val p_Serial : (string, [ `readable ]) OBus_member.Property.t
  val p_State : (int32, [ `readable ]) OBus_member.Property.t
  val p_Technology : (int32, [ `readable ]) OBus_member.Property.t
  val p_TimeToEmpty : (int64, [ `readable ]) OBus_member.Property.t
  val p_TimeToFull : (int64, [ `readable ]) OBus_member.Property.t
  val p_Type : (int32, [ `readable ]) OBus_member.Property.t
  val p_UpdateTime : (int64, [ `readable ]) OBus_member.Property.t
  val p_Vendor : (string, [ `readable ]) OBus_member.Property.t
  val p_Voltage : (float, [ `readable ]) OBus_member.Property.t
  type 'a members = {
    m_GetHistory :
      'OBus_object.t ->
      string * int32 * int32 -> (int32 * float * int32) list Lwt.t;
    m_GetStatistics :
      'OBus_object.t -> string -> (float * float) list Lwt.t;
    m_Refresh : 'OBus_object.t -> unit -> unit Lwt.t;
    p_Capacity : 'OBus_object.t -> float React.signal;
    p_Energy : 'OBus_object.t -> float React.signal;
    p_EnergyEmpty : 'OBus_object.t -> float React.signal;
    p_EnergyFull : 'OBus_object.t -> float React.signal;
    p_EnergyFullDesign : 'OBus_object.t -> float React.signal;
    p_EnergyRate : 'OBus_object.t -> float React.signal;
    p_HasHistory : 'OBus_object.t -> bool React.signal;
    p_HasStatistics : 'OBus_object.t -> bool React.signal;
    p_IsPresent : 'OBus_object.t -> bool React.signal;
    p_IsRechargeable : 'OBus_object.t -> bool React.signal;
    p_Model : 'OBus_object.t -> string React.signal;
    p_NativePath : 'OBus_object.t -> string React.signal;
    p_Online : 'OBus_object.t -> bool React.signal;
    p_Percentage : 'OBus_object.t -> float React.signal;
    p_PowerSupply : 'OBus_object.t -> bool React.signal;
    p_RecallNotice : 'OBus_object.t -> bool React.signal;
    p_RecallUrl : 'OBus_object.t -> string React.signal;
    p_RecallVendor : 'OBus_object.t -> string React.signal;
    p_Serial : 'OBus_object.t -> string React.signal;
    p_State : 'OBus_object.t -> int32 React.signal;
    p_Technology : 'OBus_object.t -> int32 React.signal;
    p_TimeToEmpty : 'OBus_object.t -> int64 React.signal;
    p_TimeToFull : 'OBus_object.t -> int64 React.signal;
    p_Type : 'OBus_object.t -> int32 React.signal;
    p_UpdateTime : 'OBus_object.t -> int64 React.signal;
    p_Vendor : 'OBus_object.t -> string React.signal;
    p_Voltage : 'OBus_object.t -> float React.signal;
  }
  val make :
    'UPower_interfaces.Org_freedesktop_UPower_Device.members ->
    'OBus_object.interface
end