sig
  type t
  type filter = Tag of string | Subsystem_devtype of string * string option
  type netlink_source = Udev | Kernel
  val create :
    ?source:Udev.Monitor.netlink_source -> Udev.Context.t -> Udev.Monitor.t
  val set_filter : Udev.Monitor.t -> Udev.Monitor.filter list -> unit
  val start : Udev.Monitor.t -> unit
  exception Timeout
  val receive_device : ?timeout:float -> Udev.Monitor.t -> Udev.Device.t
  val context : Udev.Monitor.t -> Udev.Context.t
  val set_receive_buffer_size : Udev.Monitor.t -> int -> unit
  val fd : Udev.Monitor.t -> Unix.file_descr
end