sig
  module Org_freedesktop_UPower :
    sig
      val interface : OBus_name.interface
      val m_AboutToSleep : (unit, unit) OBus_member.Method.t
      val m_EnumerateDevices : (unit, OBus_path.t list) OBus_member.Method.t
      val m_Hibernate : (unit, unit) OBus_member.Method.t
      val m_HibernateAllowed : (unit, bool) OBus_member.Method.t
      val m_Suspend : (unit, unit) OBus_member.Method.t
      val m_SuspendAllowed : (unit, bool) OBus_member.Method.t
      val s_Changed : unit OBus_member.Signal.t
      val s_DeviceAdded : string OBus_member.Signal.t
      val s_DeviceChanged : string OBus_member.Signal.t
      val s_DeviceRemoved : string OBus_member.Signal.t
      val s_Resuming : unit OBus_member.Signal.t
      val s_Sleeping : unit OBus_member.Signal.t
      val p_CanHibernate : (bool, [ `readable ]) OBus_member.Property.t
      val p_CanSuspend : (bool, [ `readable ]) OBus_member.Property.t
      val p_DaemonVersion : (string, [ `readable ]) OBus_member.Property.t
      val p_LidIsClosed : (bool, [ `readable ]) OBus_member.Property.t
      val p_LidIsPresent : (bool, [ `readable ]) OBus_member.Property.t
      val p_OnBattery : (bool, [ `readable ]) OBus_member.Property.t
      val p_OnLowBattery : (bool, [ `readable ]) OBus_member.Property.t
      type 'a members = {
        m_AboutToSleep : 'OBus_object.t -> unit -> unit Lwt.t;
        m_EnumerateDevices :
          'OBus_object.t -> unit -> OBus_path.t list Lwt.t;
        m_Hibernate : 'OBus_object.t -> unit -> unit Lwt.t;
        m_HibernateAllowed : 'OBus_object.t -> unit -> bool Lwt.t;
        m_Suspend : 'OBus_object.t -> unit -> unit Lwt.t;
        m_SuspendAllowed : 'OBus_object.t -> unit -> bool Lwt.t;
        p_CanHibernate : 'OBus_object.t -> bool React.signal;
        p_CanSuspend : 'OBus_object.t -> bool React.signal;
        p_DaemonVersion : 'OBus_object.t -> string React.signal;
        p_LidIsClosed : 'OBus_object.t -> bool React.signal;
        p_LidIsPresent : 'OBus_object.t -> bool React.signal;
        p_OnBattery : 'OBus_object.t -> bool React.signal;
        p_OnLowBattery : 'OBus_object.t -> bool React.signal;
      }
      val make :
        'UPower_interfaces.Org_freedesktop_UPower.members ->
        'OBus_object.interface
    end
  module Org_freedesktop_UPower_Device :
    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
  module Org_freedesktop_UPower_QoS :
    sig
      val interface : OBus_name.interface
      val m_CancelRequest : (string * int32, unit) OBus_member.Method.t
      val m_GetLatency : (string, int32) OBus_member.Method.t
      val m_GetLatencyRequests :
        (unit,
         (int32 * int32 * int32 * string * int64 * bool * string * string *
          int32)
         list)
        OBus_member.Method.t
      val m_RequestLatency :
        (string * int32 * bool, int32) OBus_member.Method.t
      val m_SetMinimumLatency : (string * int32, unit) OBus_member.Method.t
      val s_LatencyChanged : (string * int32) OBus_member.Signal.t
      val s_RequestsChanged : unit OBus_member.Signal.t
      type 'a members = {
        m_CancelRequest : 'OBus_object.t -> string * int32 -> unit Lwt.t;
        m_GetLatency : 'OBus_object.t -> string -> int32 Lwt.t;
        m_GetLatencyRequests :
          'OBus_object.t ->
          unit ->
          (int32 * int32 * int32 * string * int64 * bool * string * string *
           int32)
          list Lwt.t;
        m_RequestLatency :
          'OBus_object.t -> string * int32 * bool -> int32 Lwt.t;
        m_SetMinimumLatency :
          'OBus_object.t -> string * int32 -> unit Lwt.t;
      }
      val make :
        'UPower_interfaces.Org_freedesktop_UPower_QoS.members ->
        'OBus_object.interface
    end
  module Org_freedesktop_UPower_Wakeups :
    sig
      val interface : OBus_name.interface
      val m_GetData :
        (unit, (bool * int32 * float * string * string) list)
        OBus_member.Method.t
      val m_GetTotal : (unit, int32) OBus_member.Method.t
      val s_DataChanged : unit OBus_member.Signal.t
      val s_TotalChanged : int32 OBus_member.Signal.t
      val p_HasCapability : (bool, [ `readable ]) OBus_member.Property.t
      type 'a members = {
        m_GetData :
          'OBus_object.t ->
          unit -> (bool * int32 * float * string * string) list Lwt.t;
        m_GetTotal : 'OBus_object.t -> unit -> int32 Lwt.t;
        p_HasCapability : 'OBus_object.t -> bool React.signal;
      }
      val make :
        'UPower_interfaces.Org_freedesktop_UPower_Wakeups.members ->
        'OBus_object.interface
    end
end