sig
  module Org_freedesktop_DBus :
    sig
      val interface : OBus_name.interface
      type type_request_name_flags =
          [ `Allow_replacement | `Do_not_queue | `Replace_existing ]
      val make_request_name_flags :
        int32 ->
        OBus_interfaces.Org_freedesktop_DBus.type_request_name_flags list
      val cast_request_name_flags :
        OBus_interfaces.Org_freedesktop_DBus.type_request_name_flags list ->
        int32
      type type_request_name_result =
          [ `Already_owner | `Exists | `In_queue | `Primary_owner ]
      val make_request_name_result :
        int32 ->
        OBus_interfaces.Org_freedesktop_DBus.type_request_name_result
      val cast_request_name_result :
        OBus_interfaces.Org_freedesktop_DBus.type_request_name_result ->
        int32
      type type_release_name_result =
          [ `Non_existent | `Not_owner | `Released ]
      val make_release_name_result :
        int32 ->
        OBus_interfaces.Org_freedesktop_DBus.type_release_name_result
      val cast_release_name_result :
        OBus_interfaces.Org_freedesktop_DBus.type_release_name_result ->
        int32
      type type_start_service_by_name_result =
          [ `Already_running | `Success ]
      val make_start_service_by_name_result :
        int32 ->
        OBus_interfaces.Org_freedesktop_DBus.type_start_service_by_name_result
      val cast_start_service_by_name_result :
        OBus_interfaces.Org_freedesktop_DBus.type_start_service_by_name_result ->
        int32
      val m_AddMatch : (string, unit) OBus_member.Method.t
      val m_GetAdtAuditSessionData : (string, string) OBus_member.Method.t
      val m_GetConnectionSELinuxSecurityContext :
        (string, string) OBus_member.Method.t
      val m_GetConnectionUnixProcessID : (string, int32) OBus_member.Method.t
      val m_GetConnectionUnixUser : (string, int32) OBus_member.Method.t
      val m_GetId : (unit, string) OBus_member.Method.t
      val m_GetNameOwner : (string, string) OBus_member.Method.t
      val m_Hello : (unit, string) OBus_member.Method.t
      val m_ListActivatableNames : (unit, string list) OBus_member.Method.t
      val m_ListNames : (unit, string list) OBus_member.Method.t
      val m_ListQueuedOwners : (string, string list) OBus_member.Method.t
      val m_NameHasOwner : (string, bool) OBus_member.Method.t
      val m_ReleaseName : (string, int32) OBus_member.Method.t
      val m_ReloadConfig : (unit, unit) OBus_member.Method.t
      val m_RemoveMatch : (string, unit) OBus_member.Method.t
      val m_RequestName : (string * int32, int32) OBus_member.Method.t
      val m_StartServiceByName : (string * int32, int32) OBus_member.Method.t
      val m_UpdateActivationEnvironment :
        ((string * string) list, unit) OBus_member.Method.t
      val s_NameAcquired : string OBus_member.Signal.t
      val s_NameLost : string OBus_member.Signal.t
      val s_NameOwnerChanged :
        (string * string * string) OBus_member.Signal.t
      type 'a members = {
        m_AddMatch : 'OBus_object.t -> string -> unit Lwt.t;
        m_GetAdtAuditSessionData : 'OBus_object.t -> string -> string Lwt.t;
        m_GetConnectionSELinuxSecurityContext :
          'OBus_object.t -> string -> string Lwt.t;
        m_GetConnectionUnixProcessID :
          'OBus_object.t -> string -> int32 Lwt.t;
        m_GetConnectionUnixUser : 'OBus_object.t -> string -> int32 Lwt.t;
        m_GetId : 'OBus_object.t -> unit -> string Lwt.t;
        m_GetNameOwner : 'OBus_object.t -> string -> string Lwt.t;
        m_Hello : 'OBus_object.t -> unit -> string Lwt.t;
        m_ListActivatableNames :
          'OBus_object.t -> unit -> string list Lwt.t;
        m_ListNames : 'OBus_object.t -> unit -> string list Lwt.t;
        m_ListQueuedOwners : 'OBus_object.t -> string -> string list Lwt.t;
        m_NameHasOwner : 'OBus_object.t -> string -> bool Lwt.t;
        m_ReleaseName : 'OBus_object.t -> string -> int32 Lwt.t;
        m_ReloadConfig : 'OBus_object.t -> unit -> unit Lwt.t;
        m_RemoveMatch : 'OBus_object.t -> string -> unit Lwt.t;
        m_RequestName : 'OBus_object.t -> string * int32 -> int32 Lwt.t;
        m_StartServiceByName :
          'OBus_object.t -> string * int32 -> int32 Lwt.t;
        m_UpdateActivationEnvironment :
          'OBus_object.t -> (string * string) list -> unit Lwt.t;
      }
      val make :
        'OBus_interfaces.Org_freedesktop_DBus.members ->
        'OBus_object.interface
    end
  module Org_freedesktop_DBus_Introspectable :
    sig
      val interface : OBus_name.interface
      val m_Introspect : (unit, string) OBus_member.Method.t
      type 'a members = {
        m_Introspect : 'OBus_object.t -> unit -> string Lwt.t;
      }
      val make :
        'OBus_interfaces.Org_freedesktop_DBus_Introspectable.members ->
        'OBus_object.interface
    end
  module Org_freedesktop_DBus_Peer :
    sig
      val interface : OBus_name.interface
      val m_GetMachineId : (unit, string) OBus_member.Method.t
      val m_Ping : (unit, unit) OBus_member.Method.t
      type 'a members = {
        m_GetMachineId : 'OBus_object.t -> unit -> string Lwt.t;
        m_Ping : 'OBus_object.t -> unit -> unit Lwt.t;
      }
      val make :
        'OBus_interfaces.Org_freedesktop_DBus_Peer.members ->
        'OBus_object.interface
    end
  module Org_freedesktop_DBus_Properties :
    sig
      val interface : OBus_name.interface
      val m_Get : (string * string, OBus_value.V.single) OBus_member.Method.t
      val m_GetAll :
        (string, (string * OBus_value.V.single) list) OBus_member.Method.t
      val m_Set :
        (string * string * OBus_value.V.single, unit) OBus_member.Method.t
      val s_PropertiesChanged :
        (string * (string * OBus_value.V.single) list * string list)
        OBus_member.Signal.t
      type 'a members = {
        m_Get :
          'OBus_object.t -> string * string -> OBus_value.V.single Lwt.t;
        m_GetAll :
          'OBus_object.t ->
          string -> (string * OBus_value.V.single) list Lwt.t;
        m_Set :
          'OBus_object.t ->
          string * string * OBus_value.V.single -> unit Lwt.t;
      }
      val make :
        'OBus_interfaces.Org_freedesktop_DBus_Properties.members ->
        'OBus_object.interface
    end
end