sig
  module Org_freedesktop_Hal_Device :
    sig
      val interface : OBus_name.interface
      val m_AcquireInterfaceLock : (string * bool, unit) OBus_member.Method.t
      val m_AddCapability : (string, unit) OBus_member.Method.t
      val m_AddonIsReady : (unit, bool) OBus_member.Method.t
      val m_ClaimInterface : (string * string, bool) OBus_member.Method.t
      val m_EmitCondition : (string * string, bool) OBus_member.Method.t
      val m_GetAllProperties :
        (unit, (string * OBus_value.V.single) list) OBus_member.Method.t
      val m_GetProperty : (string, OBus_value.V.single) OBus_member.Method.t
      val m_GetPropertyBoolean : (string, bool) OBus_member.Method.t
      val m_GetPropertyDouble : (string, float) OBus_member.Method.t
      val m_GetPropertyInteger : (string, int32) OBus_member.Method.t
      val m_GetPropertyString : (string, string) OBus_member.Method.t
      val m_GetPropertyStringList :
        (string, string list) OBus_member.Method.t
      val m_GetPropertyType : (string, int32) OBus_member.Method.t
      val m_IsCallerLockedOut : (string * string, bool) OBus_member.Method.t
      val m_IsCallerPrivileged :
        (string * string, string) OBus_member.Method.t
      val m_IsLockedByOthers : (string, bool) OBus_member.Method.t
      val m_Lock : (string, bool) OBus_member.Method.t
      val m_PropertyExists : (string, bool) OBus_member.Method.t
      val m_QueryCapability : (string, bool) OBus_member.Method.t
      val m_ReleaseInterfaceLock : (string, unit) OBus_member.Method.t
      val m_RemoveProperty : (string, unit) OBus_member.Method.t
      val m_Reprobe : (unit, bool) OBus_member.Method.t
      val m_Rescan : (unit, bool) OBus_member.Method.t
      val m_SetMultipleProperties :
        ((string * OBus_value.V.single) list, unit) OBus_member.Method.t
      val m_SetProperty :
        (string * OBus_value.V.single, unit) OBus_member.Method.t
      val m_SetPropertyBoolean : (string * bool, unit) OBus_member.Method.t
      val m_SetPropertyDouble : (string * float, unit) OBus_member.Method.t
      val m_SetPropertyInteger : (string * int32, unit) OBus_member.Method.t
      val m_SetPropertyString : (string * string, unit) OBus_member.Method.t
      val m_SetPropertyStringList :
        (string * string list, unit) OBus_member.Method.t
      val m_StringListAppend : (string * string, unit) OBus_member.Method.t
      val m_StringListPrepend : (string * string, unit) OBus_member.Method.t
      val m_StringListRemove : (string * string, unit) OBus_member.Method.t
      val m_Unlock : (unit, bool) OBus_member.Method.t
      val s_Condition : (string * string) OBus_member.Signal.t
      val s_InterfaceLockAcquired :
        (string * string * int32) OBus_member.Signal.t
      val s_InterfaceLockReleased :
        (string * string * int32) OBus_member.Signal.t
      val s_PropertyModified :
        (int32 * (string * bool * bool) list) OBus_member.Signal.t
      type 'a members = {
        m_AcquireInterfaceLock :
          'OBus_object.t -> string * bool -> unit Lwt.t;
        m_AddCapability : 'OBus_object.t -> string -> unit Lwt.t;
        m_AddonIsReady : 'OBus_object.t -> unit -> bool Lwt.t;
        m_ClaimInterface : 'OBus_object.t -> string * string -> bool Lwt.t;
        m_EmitCondition : 'OBus_object.t -> string * string -> bool Lwt.t;
        m_GetAllProperties :
          'OBus_object.t ->
          unit -> (string * OBus_value.V.single) list Lwt.t;
        m_GetProperty :
          'OBus_object.t -> string -> OBus_value.V.single Lwt.t;
        m_GetPropertyBoolean : 'OBus_object.t -> string -> bool Lwt.t;
        m_GetPropertyDouble : 'OBus_object.t -> string -> float Lwt.t;
        m_GetPropertyInteger : 'OBus_object.t -> string -> int32 Lwt.t;
        m_GetPropertyString : 'OBus_object.t -> string -> string Lwt.t;
        m_GetPropertyStringList :
          'OBus_object.t -> string -> string list Lwt.t;
        m_GetPropertyType : 'OBus_object.t -> string -> int32 Lwt.t;
        m_IsCallerLockedOut :
          'OBus_object.t -> string * string -> bool Lwt.t;
        m_IsCallerPrivileged :
          'OBus_object.t -> string * string -> string Lwt.t;
        m_IsLockedByOthers : 'OBus_object.t -> string -> bool Lwt.t;
        m_Lock : 'OBus_object.t -> string -> bool Lwt.t;
        m_PropertyExists : 'OBus_object.t -> string -> bool Lwt.t;
        m_QueryCapability : 'OBus_object.t -> string -> bool Lwt.t;
        m_ReleaseInterfaceLock : 'OBus_object.t -> string -> unit Lwt.t;
        m_RemoveProperty : 'OBus_object.t -> string -> unit Lwt.t;
        m_Reprobe : 'OBus_object.t -> unit -> bool Lwt.t;
        m_Rescan : 'OBus_object.t -> unit -> bool Lwt.t;
        m_SetMultipleProperties :
          'OBus_object.t ->
          (string * OBus_value.V.single) list -> unit Lwt.t;
        m_SetProperty :
          'OBus_object.t -> string * OBus_value.V.single -> unit Lwt.t;
        m_SetPropertyBoolean :
          'OBus_object.t -> string * bool -> unit Lwt.t;
        m_SetPropertyDouble :
          'OBus_object.t -> string * float -> unit Lwt.t;
        m_SetPropertyInteger :
          'OBus_object.t -> string * int32 -> unit Lwt.t;
        m_SetPropertyString :
          'OBus_object.t -> string * string -> unit Lwt.t;
        m_SetPropertyStringList :
          'OBus_object.t -> string * string list -> unit Lwt.t;
        m_StringListAppend :
          'OBus_object.t -> string * string -> unit Lwt.t;
        m_StringListPrepend :
          'OBus_object.t -> string * string -> unit Lwt.t;
        m_StringListRemove :
          'OBus_object.t -> string * string -> unit Lwt.t;
        m_Unlock : 'OBus_object.t -> unit -> bool Lwt.t;
      }
      val make :
        'Hal_interfaces.Org_freedesktop_Hal_Device.members ->
        'OBus_object.interface
    end
  module Org_freedesktop_Hal_Device_CPUFreq :
    sig
      val interface : OBus_name.interface
      val m_GetCPUFreqAvailableGovernors :
        (unit, string list) OBus_member.Method.t
      val m_GetCPUFreqConsiderNice : (unit, bool) OBus_member.Method.t
      val m_GetCPUFreqGovernor : (unit, string) OBus_member.Method.t
      val m_GetCPUFreqPerformance : (unit, int32) OBus_member.Method.t
      val m_SetCPUFreqConsiderNice : (bool, unit) OBus_member.Method.t
      val m_SetCPUFreqGovernor : (string, unit) OBus_member.Method.t
      val m_SetCPUFreqPerformance : (int32, unit) OBus_member.Method.t
      type 'a members = {
        m_GetCPUFreqAvailableGovernors :
          'OBus_object.t -> unit -> string list Lwt.t;
        m_GetCPUFreqConsiderNice : 'OBus_object.t -> unit -> bool Lwt.t;
        m_GetCPUFreqGovernor : 'OBus_object.t -> unit -> string Lwt.t;
        m_GetCPUFreqPerformance : 'OBus_object.t -> unit -> int32 Lwt.t;
        m_SetCPUFreqConsiderNice : 'OBus_object.t -> bool -> unit Lwt.t;
        m_SetCPUFreqGovernor : 'OBus_object.t -> string -> unit Lwt.t;
        m_SetCPUFreqPerformance : 'OBus_object.t -> int32 -> unit Lwt.t;
      }
      val make :
        'Hal_interfaces.Org_freedesktop_Hal_Device_CPUFreq.members ->
        'OBus_object.interface
    end
  module Org_freedesktop_Hal_Device_KillSwitch :
    sig
      val interface : OBus_name.interface
      val m_GetPower : (unit, int32) OBus_member.Method.t
      val m_SetPower : (bool, int32) OBus_member.Method.t
      type 'a members = {
        m_GetPower : 'OBus_object.t -> unit -> int32 Lwt.t;
        m_SetPower : 'OBus_object.t -> bool -> int32 Lwt.t;
      }
      val make :
        'Hal_interfaces.Org_freedesktop_Hal_Device_KillSwitch.members ->
        'OBus_object.interface
    end
  module Org_freedesktop_Hal_Device_LaptopPanel :
    sig
      val interface : OBus_name.interface
      val m_GetBrightness : (unit, int32) OBus_member.Method.t
      val m_SetBrightness : (int32, int32) OBus_member.Method.t
      type 'a members = {
        m_GetBrightness : 'OBus_object.t -> unit -> int32 Lwt.t;
        m_SetBrightness : 'OBus_object.t -> int32 -> int32 Lwt.t;
      }
      val make :
        'Hal_interfaces.Org_freedesktop_Hal_Device_LaptopPanel.members ->
        'OBus_object.interface
    end
  module Org_freedesktop_Hal_Device_Leds :
    sig
      val interface : OBus_name.interface
      val m_GetBrightness : (unit, int32) OBus_member.Method.t
      val m_SetBrightness : (int32, int32) OBus_member.Method.t
      type 'a members = {
        m_GetBrightness : 'OBus_object.t -> unit -> int32 Lwt.t;
        m_SetBrightness : 'OBus_object.t -> int32 -> int32 Lwt.t;
      }
      val make :
        'Hal_interfaces.Org_freedesktop_Hal_Device_Leds.members ->
        'OBus_object.interface
    end
  module Org_freedesktop_Hal_Device_Storage :
    sig
      val interface : OBus_name.interface
      val m_CloseTray : (string list, int32) OBus_member.Method.t
      val m_Eject : (string list, int32) OBus_member.Method.t
      type 'a members = {
        m_CloseTray : 'OBus_object.t -> string list -> int32 Lwt.t;
        m_Eject : 'OBus_object.t -> string list -> int32 Lwt.t;
      }
      val make :
        'Hal_interfaces.Org_freedesktop_Hal_Device_Storage.members ->
        'OBus_object.interface
    end
  module Org_freedesktop_Hal_Device_Storage_Removable :
    sig
      val interface : OBus_name.interface
      val m_CheckForMedia : (unit, bool) OBus_member.Method.t
      type 'a members = {
        m_CheckForMedia : 'OBus_object.t -> unit -> bool Lwt.t;
      }
      val make :
        'a
        Hal_interfaces.Org_freedesktop_Hal_Device_Storage_Removable.members ->
        'OBus_object.interface
    end
  module Org_freedesktop_Hal_Device_SystemPowerManagement :
    sig
      val interface : OBus_name.interface
      val m_Hibernate : (unit, int32) OBus_member.Method.t
      val m_Reboot : (unit, int32) OBus_member.Method.t
      val m_SetPowerSave : (bool, int32) OBus_member.Method.t
      val m_Shutdown : (unit, int32) OBus_member.Method.t
      val m_Suspend : (int32, int32) OBus_member.Method.t
      val m_SuspendHybrid : (int32, int32) OBus_member.Method.t
      type 'a members = {
        m_Hibernate : 'OBus_object.t -> unit -> int32 Lwt.t;
        m_Reboot : 'OBus_object.t -> unit -> int32 Lwt.t;
        m_SetPowerSave : 'OBus_object.t -> bool -> int32 Lwt.t;
        m_Shutdown : 'OBus_object.t -> unit -> int32 Lwt.t;
        m_Suspend : 'OBus_object.t -> int32 -> int32 Lwt.t;
        m_SuspendHybrid : 'OBus_object.t -> int32 -> int32 Lwt.t;
      }
      val make :
        'a
        Hal_interfaces.Org_freedesktop_Hal_Device_SystemPowerManagement.members ->
        'OBus_object.interface
    end
  module Org_freedesktop_Hal_Device_Volume :
    sig
      val interface : OBus_name.interface
      val m_Eject : (string list, int32) OBus_member.Method.t
      val m_Mount :
        (string * string * string list, int32) OBus_member.Method.t
      val m_Unmount : (string list, int32) OBus_member.Method.t
      type 'a members = {
        m_Eject : 'OBus_object.t -> string list -> int32 Lwt.t;
        m_Mount :
          'OBus_object.t -> string * string * string list -> int32 Lwt.t;
        m_Unmount : 'OBus_object.t -> string list -> int32 Lwt.t;
      }
      val make :
        'Hal_interfaces.Org_freedesktop_Hal_Device_Volume.members ->
        'OBus_object.interface
    end
  module Org_freedesktop_Hal_Device_Volume_Crypto :
    sig
      val interface : OBus_name.interface
      val m_Setup : (string, int32) OBus_member.Method.t
      val m_Teardown : (unit, int32) OBus_member.Method.t
      type 'a members = {
        m_Setup : 'OBus_object.t -> string -> int32 Lwt.t;
        m_Teardown : 'OBus_object.t -> unit -> int32 Lwt.t;
      }
      val make :
        'Hal_interfaces.Org_freedesktop_Hal_Device_Volume_Crypto.members ->
        'OBus_object.interface
    end
  module Org_freedesktop_Hal_Device_WakeOnLan :
    sig
      val interface : OBus_name.interface
      val m_GetEnabled : (unit, int32) OBus_member.Method.t
      val m_GetSupported : (unit, int32) OBus_member.Method.t
      val m_SetEnabled : (bool, int32) OBus_member.Method.t
      type 'a members = {
        m_GetEnabled : 'OBus_object.t -> unit -> int32 Lwt.t;
        m_GetSupported : 'OBus_object.t -> unit -> int32 Lwt.t;
        m_SetEnabled : 'OBus_object.t -> bool -> int32 Lwt.t;
      }
      val make :
        'Hal_interfaces.Org_freedesktop_Hal_Device_WakeOnLan.members ->
        'OBus_object.interface
    end
  module Org_freedesktop_Hal_Manager :
    sig
      val interface : OBus_name.interface
      val m_AcquireGlobalInterfaceLock :
        (string * bool, unit) OBus_member.Method.t
      val m_CommitToGdl : (string * string, unit) OBus_member.Method.t
      val m_DeviceExists : (string, bool) OBus_member.Method.t
      val m_FindDeviceByCapability :
        (string, string list) OBus_member.Method.t
      val m_FindDeviceStringMatch :
        (string * string, string list) OBus_member.Method.t
      val m_GetAllDevices : (unit, string list) OBus_member.Method.t
      val m_GetAllDevicesWithProperties :
        (unit, (string * (string * OBus_value.V.single) list) list)
        OBus_member.Method.t
      val m_NewDevice : (unit, string) OBus_member.Method.t
      val m_ReleaseGlobalInterfaceLock : (string, unit) OBus_member.Method.t
      val m_Remove : (string, unit) OBus_member.Method.t
      val m_SingletonAddonIsReady : (string, unit) OBus_member.Method.t
      val s_DeviceAdded : string OBus_member.Signal.t
      val s_DeviceRemoved : string OBus_member.Signal.t
      val s_GlobalInterfaceLockAcquired :
        (string * string * int32) OBus_member.Signal.t
      val s_GlobalInterfaceLockReleased :
        (string * string * int32) OBus_member.Signal.t
      val s_NewCapability : (string * string) OBus_member.Signal.t
      type 'a members = {
        m_AcquireGlobalInterfaceLock :
          'OBus_object.t -> string * bool -> unit Lwt.t;
        m_CommitToGdl : 'OBus_object.t -> string * string -> unit Lwt.t;
        m_DeviceExists : 'OBus_object.t -> string -> bool Lwt.t;
        m_FindDeviceByCapability :
          'OBus_object.t -> string -> string list Lwt.t;
        m_FindDeviceStringMatch :
          'OBus_object.t -> string * string -> string list Lwt.t;
        m_GetAllDevices : 'OBus_object.t -> unit -> string list Lwt.t;
        m_GetAllDevicesWithProperties :
          'OBus_object.t ->
          unit -> (string * (string * OBus_value.V.single) list) list Lwt.t;
        m_NewDevice : 'OBus_object.t -> unit -> string Lwt.t;
        m_ReleaseGlobalInterfaceLock :
          'OBus_object.t -> string -> unit Lwt.t;
        m_Remove : 'OBus_object.t -> string -> unit Lwt.t;
        m_SingletonAddonIsReady : 'OBus_object.t -> string -> unit Lwt.t;
      }
      val make :
        'Hal_interfaces.Org_freedesktop_Hal_Manager.members ->
        'OBus_object.interface
    end
end