#pragma once
#include "rust/cxx.h"
#include <pxr/imaging/hd/sceneIndex.h>
#include <pxr/usd/usd/stage.h>
#include <pxr/usdImaging/usdImaging/stageSceneIndex.h>
#include <cstddef>
#include <memory>
#include <string>
#include <vector>
namespace hydra_rs {
struct SceneIndex {
pxr::UsdStageRefPtr stage_owner;
pxr::HdSceneIndexBaseRefPtr scene_index;
rust::String stage_root() const;
size_t prim_count() const;
std::unique_ptr<std::vector<std::string>> prim_paths() const;
};
std::unique_ptr<SceneIndex> populate_from_path(rust::Str usd_path);
std::unique_ptr<std::vector<std::string>> list_render_delegate_ids();
std::unique_ptr<std::vector<uint8_t>> render_to_rgba(
rust::Str usd_path,
rust::Str render_delegate_id,
uint32_t width,
uint32_t height);
}