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

///|
#external
pub type USDZExporter

///|
#module("@mizchi/three-mbt/asset-formats")
pub extern "js" fn USDZExporter::USDZExporter() -> USDZExporter = "uSDZExporter"

///|
extern "js" fn USDZExporter::ffi_export_usdz(
  self : USDZExporter,
  root : Object3D,
  options : USDZExportOptions,
) -> @js_async.Promise[Bytes] =
  #| (self, root, options) => Promise.resolve().then(() => self.parseAsync(root,{...options,animations:options.animations.slice()}))

///|
pub async fn USDZExporter::export_usdz(
  self : USDZExporter,
  root : Object3D,
  options : USDZExportOptions,
) -> Bytes raise ExportError {
  try {
    let value = self.ffi_export_usdz(root, options).wait()
    value
  } catch {
    error => raise ExportError((error : Error).to_string())
  }
}