// Generated by scripts/generate.mjs from bindings/api.mjs. Do not edit.

///|
#external
pub type MathUtils

///|
#module("@mizchi/three-mbt/statics")
pub extern "js" fn MathUtils::generate_uuid() -> String = "MathUtils_generate_uuid"

///|
#module("@mizchi/three-mbt/statics")
pub extern "js" fn MathUtils::clamp(
  value : Double,
  min : Double,
  max : Double,
) -> Double = "MathUtils_clamp"

///|
#module("@mizchi/three-mbt/statics")
pub extern "js" fn MathUtils::euclidean_modulo(
  n : Double,
  m : Double,
) -> Double = "MathUtils_euclidean_modulo"

///|
#module("@mizchi/three-mbt/statics")
pub extern "js" fn MathUtils::map_linear(
  x : Double,
  a1 : Double,
  a2 : Double,
  b1 : Double,
  b2 : Double,
) -> Double = "MathUtils_map_linear"

///|
#module("@mizchi/three-mbt/statics")
pub extern "js" fn MathUtils::inverse_lerp(
  x : Double,
  y : Double,
  t : Double,
) -> Double = "MathUtils_inverse_lerp"

///|
#module("@mizchi/three-mbt/statics")
pub extern "js" fn MathUtils::lerp(
  x : Double,
  y : Double,
  t : Double,
) -> Double = "MathUtils_lerp"

///|
#module("@mizchi/three-mbt/statics")
pub extern "js" fn MathUtils::damp(
  x : Double,
  y : Double,
  lambda : Double,
  dt : Double,
) -> Double = "MathUtils_damp"

///|
#module("@mizchi/three-mbt/statics")
pub extern "js" fn MathUtils::pingpong(x : Double, length : Double) -> Double = "MathUtils_pingpong"

///|
#module("@mizchi/three-mbt/statics")
pub extern "js" fn MathUtils::smoothstep(
  x : Double,
  min : Double,
  max : Double,
) -> Double = "MathUtils_smoothstep"

///|
#module("@mizchi/three-mbt/statics")
pub extern "js" fn MathUtils::smootherstep(
  x : Double,
  min : Double,
  max : Double,
) -> Double = "MathUtils_smootherstep"

///|
#module("@mizchi/three-mbt/statics")
pub extern "js" fn MathUtils::rand_int(low : Int, high : Int) -> Int = "MathUtils_rand_int"

///|
#module("@mizchi/three-mbt/statics")
pub extern "js" fn MathUtils::rand_float(low : Double, high : Double) -> Double = "MathUtils_rand_float"

///|
#module("@mizchi/three-mbt/statics")
pub extern "js" fn MathUtils::rand_float_spread(range : Double) -> Double = "MathUtils_rand_float_spread"

///|
#module("@mizchi/three-mbt/statics")
pub extern "js" fn MathUtils::seeded_random(seed : Int) -> Double = "MathUtils_seeded_random"

///|
#module("@mizchi/three-mbt/statics")
pub extern "js" fn MathUtils::next_seeded_random() -> Double = "MathUtils_next_seeded_random"

///|
#module("@mizchi/three-mbt/statics")
pub extern "js" fn MathUtils::deg_to_rad(degrees : Double) -> Double = "MathUtils_deg_to_rad"

///|
#module("@mizchi/three-mbt/statics")
pub extern "js" fn MathUtils::rad_to_deg(radians : Double) -> Double = "MathUtils_rad_to_deg"

///|
#module("@mizchi/three-mbt/statics")
pub extern "js" fn MathUtils::is_power_of_two(value : Int) -> Bool = "MathUtils_is_power_of_two"

///|
#module("@mizchi/three-mbt/statics")
pub extern "js" fn MathUtils::ceil_power_of_two(value : Double) -> Double = "MathUtils_ceil_power_of_two"

///|
#module("@mizchi/three-mbt/statics")
pub extern "js" fn MathUtils::floor_power_of_two(value : Double) -> Double = "MathUtils_floor_power_of_two"