`sig
type t = private OBus_proxy.proxy
external of_proxy : OBus_proxy.proxy -> t = "%identity"
external to_proxy : t -> OBus_proxy.proxy = "%identity"
val manager : unit -> t Lwt.t
val get_all_devices : t -> Hal_device.t list Lwt.t
val get_all_devices_with_properties :
t -> (Hal_device.t * (string * Hal_device.property) list) list Lwt.t
val device_exists : t -> Hal_device.udi -> bool Lwt.t
val find_device_string_match :
t -> string -> string -> Hal_device.t list Lwt.t
val find_device_by_capability : t -> string -> Hal_device.t list Lwt.t
val new_device : t -> Hal_device.t Lwt.t
val remove : t -> Hal_device.t -> unit Lwt.t
val commit_to_gdl : t -> string -> string -> unit Lwt.t
val acquire_global_interface_lock : t -> string -> bool -> unit Lwt.t
val release_global_interface_lock : t -> string -> unit Lwt.t
val singleton_addon_is_ready : t -> string -> unit Lwt.t
val device_added : t -> Hal_device.t OBus_signal.t
val device_removed : t -> Hal_device.t OBus_signal.t
val new_capability : t -> (Hal_device.t * string) OBus_signal.t
val global_interface_lock_acquired :
t -> (string * string * int) OBus_signal.t
val global_interface_lock_released :
t -> (string * string * int) OBus_signal.t
end`