sig
  type ty = Session | System | Starter
  type flags = Replace_existing
  type grab_flag = AllowReplacement | ReplaceExisting | DoNotQueue
  type request_reply =
      PrimaryOwner
    | InQueue
    | Exists
    | AlreadyOwner
    | ReqUnknown of int
  type release_reply = Released | NonExistent | NotOwner | RelUnknown of int
  val get : DBus.Bus.ty -> DBus.bus
  val get_private : DBus.Bus.ty -> DBus.bus
  val register : DBus.bus -> unit
  val set_unique_name : DBus.bus -> string -> bool
  val get_unique_name : DBus.bus -> string
  val request_name :
    DBus.bus -> string -> DBus.Bus.grab_flag list -> DBus.Bus.request_reply
  val release_name : DBus.bus -> string -> DBus.Bus.release_reply
  val has_owner : DBus.bus -> string -> bool
  val add_match : DBus.bus -> string -> bool -> unit
  val remove_match : DBus.bus -> string -> bool -> unit
end