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