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

///|
#external
pub type GLTFWriter

///|
pub extern "js" fn GLTFWriter::mark_extension(
  self : GLTFWriter,
  name : String,
  required : Bool,
) -> Unit =
  #| (self, name, required) => { Object.defineProperty(self.extensionsUsed,name,{value:true,enumerable:true,configurable:true});if(required)Object.defineProperty(self.extensionsRequired,name,{value:true,enumerable:true,configurable:true}); }

///|
extern "js" fn GLTFWriter::ffi_process_texture(
  self : GLTFWriter,
  texture : Texture,
) -> @js_async.Promise[Int] =
  #| (self, texture) => Promise.resolve().then(() => self.processTextureAsync(texture))

///|
pub async fn GLTFWriter::process_texture(
  self : GLTFWriter,
  texture : Texture,
) -> Int raise ExportError {
  try {
    let value = self.ffi_process_texture(texture).wait()
    value
  } catch {
    error => raise ExportError((error : Error).to_string())
  }
}