sig
  type 'a t
  type key = string
  external get : 'Js_dict.t -> Js_dict.key -> 'a option = "" "BS-EXTERNAL"
  external unsafeGet : 'Js_dict.t -> Js_dict.key -> 'a = "" "BS-EXTERNAL"
  external set : 'Js_dict.t -> Js_dict.key -> '-> unit = "" "BS-EXTERNAL"
  external keys : 'Js_dict.t -> string array = "Object.keys" "BS-EXTERNAL"
  external empty : unit -> 'Js_dict.t = "" "BS-EXTERNAL"
  val unsafeDeleteKey :
    ([ `Arity_2 of string Js_dict.t * string ], unit) Js.Internal.fn
  val entries : 'Js_dict.t -> (Js_dict.key * 'a) array
  val values : 'Js_dict.t -> 'a array
  val fromList : (Js_dict.key * 'a) list -> 'Js_dict.t
  val fromArray : (Js_dict.key * 'a) array -> 'Js_dict.t
  val map :
    ([ `Arity_1 of 'a ], 'b) Js.Internal.fn -> 'Js_dict.t -> 'Js_dict.t
end