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
        ([ `Arity_2 of string * Node.string_buffer ], unit) Js.Internal.fn
    | `error of ([ `Arity_0 ], unit) Js.Internal.fn ] ->
    Node_fs.Watch.t -> Node_fs.Watch.t = "" "BS-EXTERNAL"
  external close : Node_fs.Watch.t -> unit = "" "BS-EXTERNAL"
end