sig
  type t
  type config
  external config :
    ?persistent:Js.boolean ->
    ?recursive:Js.boolean ->
    ?encoding:Js_string.t -> unit -> Node_fs.Watch.config = "" "BS-EXTERNAL"
  external watch :
    string -> ?config:Node_fs.Watch.config -> unit -> Node_fs.Watch.t = ""
    "BS-EXTERNAL"
  external on :
    [ `change of (string -> Node.string_buffer -> unit [@bs])
    | `error of (unit -> unit [@bs]) ] -> Node_fs.Watch.t -> Node_fs.Watch.t
    = "" "BS-EXTERNAL"
  external close : Node_fs.Watch.t -> unit = "" "BS-EXTERNAL"
end