sig
  type elt = int
  type 'a typed_array
  type t = elt typed_array
  external unsafe_get : t -> int -> elt = "" "BS-EXTERNAL"
  external unsafe_set : t -> int -> elt -> unit = "" "BS-EXTERNAL"
  external buffer : t -> array_buffer = "" "BS-EXTERNAL"
  external byteLength : t -> int = "" "BS-EXTERNAL"
  external byteOffset : t -> int = "" "BS-EXTERNAL"
  external setArray : elt array -> t -> unit = "set" "BS-EXTERNAL"
  external setArrayOffset : elt array -> int -> t -> unit = "set"
    "BS-EXTERNAL"
  external length : t -> int = "" "BS-EXTERNAL"
  external copyWithin : to_:int -> t -> t = "" "BS-EXTERNAL"
  external copyWithinFrom : to_:int -> from:int -> t -> t = "copyWithin"
    "BS-EXTERNAL"
  external copyWithinFromRange : to_:int -> start:int -> end_:int -> t -> t
    = "copyWithin" "BS-EXTERNAL"
  external fillInPlace : elt -> t -> t = "fill" "BS-EXTERNAL"
  external fillFromInPlace : elt -> from:int -> t -> t = "fill" "BS-EXTERNAL"
  external fillRangeInPlace : elt -> start:int -> end_:int -> t -> t = "fill"
    "BS-EXTERNAL"
  external reverseInPlace : t -> t = "reverse" "BS-EXTERNAL"
  external sortInPlace : t -> t = "sort" "BS-EXTERNAL"
  external sortInPlaceWith : (elt -> elt -> int [@bs]) -> t -> t = "sort"
    "BS-EXTERNAL"
  external includes : elt -> t -> Js.boolean = "" "BS-EXTERNAL"
  external indexOf : elt -> t -> int = "" "BS-EXTERNAL"
  external indexOfFrom : elt -> from:int -> t -> int = "indexOf"
    "BS-EXTERNAL"
  external join : t -> string = "" "BS-EXTERNAL"
  external joinWith : string -> t -> string = "join" "BS-EXTERNAL"
  external lastIndexOf : elt -> t -> int = "" "BS-EXTERNAL"
  external lastIndexOfFrom : elt -> from:int -> t -> int = "lastIndexOf"
    "BS-EXTERNAL"
  external slice : start:int -> end_:int -> t -> t = "" "BS-EXTERNAL"
  external copy : t -> t = "slice" "BS-EXTERNAL"
  external sliceFrom : int -> t -> t = "slice" "BS-EXTERNAL"
  external toString : t -> string = "" "BS-EXTERNAL"
  external toLocaleString : t -> string = "" "BS-EXTERNAL"
  external every : (elt -> Js.boolean [@bs]) -> t -> Js.boolean = ""
    "BS-EXTERNAL"
  external everyi : (elt -> int -> Js.boolean [@bs]) -> t -> Js.boolean
    = "every" "BS-EXTERNAL"
  external filter : (elt -> bool [@bs]) -> t -> t = "" "BS-EXTERNAL"
  external filteri : (elt -> int -> Js.boolean [@bs]) -> t -> t = "filter"
    "BS-EXTERNAL"
  external find : (elt -> bool [@bs]) -> t -> elt Js.undefined = ""
    "BS-EXTERNAL"
  external findi : (elt -> int -> bool [@bs]) -> t -> elt Js.undefined
    = "find" "BS-EXTERNAL"
  external findIndex : (elt -> bool [@bs]) -> t -> int = "" "BS-EXTERNAL"
  external findIndexi : (elt -> int -> bool [@bs]) -> t -> int = "findIndex"
    "BS-EXTERNAL"
  external forEach : (elt -> unit [@bs]) -> t -> unit = "" "BS-EXTERNAL"
  external forEachi : (elt -> int -> unit [@bs]) -> t -> unit = "forEach"
    "BS-EXTERNAL"
  external map : (elt -> 'b [@bs]) -> t -> 'b typed_array = "" "BS-EXTERNAL"
  external mapi : (elt -> int -> 'b [@bs]) -> t -> 'b typed_array = "map"
    "BS-EXTERNAL"
  external reduce : ('-> elt -> 'b [@bs]) -> '-> t -> 'b = ""
    "BS-EXTERNAL"
  external reducei : ('-> elt -> int -> 'b [@bs]) -> '-> t -> 'b
    = "reduce" "BS-EXTERNAL"
  external reduceRight : ('-> elt -> 'b [@bs]) -> '-> t -> 'b = ""
    "BS-EXTERNAL"
  external reduceRighti : ('-> elt -> int -> 'b [@bs]) -> '-> t -> 'b
    = "reduceRight" "BS-EXTERNAL"
  external some : (elt -> Js.boolean [@bs]) -> t -> Js.boolean = ""
    "BS-EXTERNAL"
  external somei : (elt -> int -> Js.boolean [@bs]) -> t -> Js.boolean
    = "some" "BS-EXTERNAL"
  external _BYTES_PER_ELEMENT : int = "Uint32Array.BYTES_PER_ELEMENT"
    "BS-EXTERNAL"
  external make : elt array -> t = "Uint32Array" "BS-EXTERNAL"
  external fromBuffer : Js_typed_array.array_buffer -> t = "Uint32Array"
    "BS-EXTERNAL"
  external fromBufferOffset : Js_typed_array.array_buffer -> int -> t
    = "Uint32Array" "BS-EXTERNAL"
  external fromBufferRange :
    Js_typed_array.array_buffer -> offset:int -> length:int -> t
    = "Uint32Array" "BS-EXTERNAL"
  external fromLength : int -> t = "Uint32Array" "BS-EXTERNAL"
  external from : elt Js_typed_array.array_like -> t = "Uint32Array.from"
    "BS-EXTERNAL"
end