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

///|
#external
pub type RequestHeaders

///|
#module("@mizchi/three-mbt/loaders")
pub extern "js" fn RequestHeaders::RequestHeaders() -> RequestHeaders = "requestHeaders"

///|
pub extern "js" fn RequestHeaders::set(
  self : RequestHeaders,
  key : String,
  value : String,
) -> Unit =
  #| (self, key, value) => { Object.defineProperty(self, key, { value, enumerable: true, writable: true, configurable: true }); }

///|
extern "js" fn RequestHeaders::ffi_get(
  self : RequestHeaders,
  key : String,
) -> Nullable[String] =
  #| (self, key) => Object.hasOwn(self, key) ? self[key] : null

///|
pub fn RequestHeaders::get(self : RequestHeaders, key : String) -> String? {
  self.ffi_get(key).to_option()
}

///|
pub extern "js" fn RequestHeaders::keys(
  self : RequestHeaders,
) -> FixedArray[String] =
  #| (self) => Object.keys(self)

///|
pub extern "js" fn RequestHeaders::remove(
  self : RequestHeaders,
  key : String,
) -> Unit =
  #| (self, key) => { delete self[key]; }