///
/// RNRive-Swift-Cxx-Umbrella.hpp
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
/// https://github.com/mrousavy/nitro
/// Copyright © Marc Rousavy @ Margelo
///

#pragma once

// Forward declarations of C++ defined types
// Forward declaration of `Alignment` to properly resolve imports.
namespace margelo::nitro::rive { enum class Alignment; }
// Forward declaration of `ArtboardByTypes` to properly resolve imports.
namespace margelo::nitro::rive { enum class ArtboardByTypes; }
// Forward declaration of `ArtboardBy` to properly resolve imports.
namespace margelo::nitro::rive { struct ArtboardBy; }
// Forward declaration of `DataBindByName` to properly resolve imports.
namespace margelo::nitro::rive { struct DataBindByName; }
// Forward declaration of `DataBindMode` to properly resolve imports.
namespace margelo::nitro::rive { enum class DataBindMode; }
// Forward declaration of `Fit` to properly resolve imports.
namespace margelo::nitro::rive { enum class Fit; }
// Forward declaration of `HybridBindableArtboardSpec` to properly resolve imports.
namespace margelo::nitro::rive { class HybridBindableArtboardSpec; }
// Forward declaration of `HybridFallbackFontSpec` to properly resolve imports.
namespace margelo::nitro::rive { class HybridFallbackFontSpec; }
// Forward declaration of `HybridRiveFileFactorySpec` to properly resolve imports.
namespace margelo::nitro::rive { class HybridRiveFileFactorySpec; }
// Forward declaration of `HybridRiveFileSpec` to properly resolve imports.
namespace margelo::nitro::rive { class HybridRiveFileSpec; }
// Forward declaration of `HybridRiveFontConfigSpec` to properly resolve imports.
namespace margelo::nitro::rive { class HybridRiveFontConfigSpec; }
// Forward declaration of `HybridRiveImageFactorySpec` to properly resolve imports.
namespace margelo::nitro::rive { class HybridRiveImageFactorySpec; }
// Forward declaration of `HybridRiveImageSpec` to properly resolve imports.
namespace margelo::nitro::rive { class HybridRiveImageSpec; }
// Forward declaration of `HybridRiveRuntimeSpec` to properly resolve imports.
namespace margelo::nitro::rive { class HybridRiveRuntimeSpec; }
// Forward declaration of `HybridRiveViewSpec` to properly resolve imports.
namespace margelo::nitro::rive { class HybridRiveViewSpec; }
// Forward declaration of `HybridViewModelArtboardPropertySpec` to properly resolve imports.
namespace margelo::nitro::rive { class HybridViewModelArtboardPropertySpec; }
// Forward declaration of `HybridViewModelBooleanPropertySpec` to properly resolve imports.
namespace margelo::nitro::rive { class HybridViewModelBooleanPropertySpec; }
// Forward declaration of `HybridViewModelColorPropertySpec` to properly resolve imports.
namespace margelo::nitro::rive { class HybridViewModelColorPropertySpec; }
// Forward declaration of `HybridViewModelEnumPropertySpec` to properly resolve imports.
namespace margelo::nitro::rive { class HybridViewModelEnumPropertySpec; }
// Forward declaration of `HybridViewModelImagePropertySpec` to properly resolve imports.
namespace margelo::nitro::rive { class HybridViewModelImagePropertySpec; }
// Forward declaration of `HybridViewModelInstanceSpec` to properly resolve imports.
namespace margelo::nitro::rive { class HybridViewModelInstanceSpec; }
// Forward declaration of `HybridViewModelListPropertySpec` to properly resolve imports.
namespace margelo::nitro::rive { class HybridViewModelListPropertySpec; }
// Forward declaration of `HybridViewModelNumberPropertySpec` to properly resolve imports.
namespace margelo::nitro::rive { class HybridViewModelNumberPropertySpec; }
// Forward declaration of `HybridViewModelPropertySpec` to properly resolve imports.
namespace margelo::nitro::rive { class HybridViewModelPropertySpec; }
// Forward declaration of `HybridViewModelSpec` to properly resolve imports.
namespace margelo::nitro::rive { class HybridViewModelSpec; }
// Forward declaration of `HybridViewModelStringPropertySpec` to properly resolve imports.
namespace margelo::nitro::rive { class HybridViewModelStringPropertySpec; }
// Forward declaration of `HybridViewModelTriggerPropertySpec` to properly resolve imports.
namespace margelo::nitro::rive { class HybridViewModelTriggerPropertySpec; }
// Forward declaration of `ReferencedAssetsType` to properly resolve imports.
namespace margelo::nitro::rive { struct ReferencedAssetsType; }
// Forward declaration of `ResolvedReferencedAsset` to properly resolve imports.
namespace margelo::nitro::rive { struct ResolvedReferencedAsset; }
// Forward declaration of `RiveErrorType` to properly resolve imports.
namespace margelo::nitro::rive { enum class RiveErrorType; }
// Forward declaration of `RiveError` to properly resolve imports.
namespace margelo::nitro::rive { struct RiveError; }
// Forward declaration of `RiveEventType` to properly resolve imports.
namespace margelo::nitro::rive { enum class RiveEventType; }
// Forward declaration of `UnifiedRiveEvent` to properly resolve imports.
namespace margelo::nitro::rive { struct UnifiedRiveEvent; }

// Include C++ defined types
#include "Alignment.hpp"
#include "ArtboardBy.hpp"
#include "ArtboardByTypes.hpp"
#include "DataBindByName.hpp"
#include "DataBindMode.hpp"
#include "Fit.hpp"
#include "HybridBindableArtboardSpec.hpp"
#include "HybridFallbackFontSpec.hpp"
#include "HybridRiveFileFactorySpec.hpp"
#include "HybridRiveFileSpec.hpp"
#include "HybridRiveFontConfigSpec.hpp"
#include "HybridRiveImageFactorySpec.hpp"
#include "HybridRiveImageSpec.hpp"
#include "HybridRiveRuntimeSpec.hpp"
#include "HybridRiveViewSpec.hpp"
#include "HybridViewModelArtboardPropertySpec.hpp"
#include "HybridViewModelBooleanPropertySpec.hpp"
#include "HybridViewModelColorPropertySpec.hpp"
#include "HybridViewModelEnumPropertySpec.hpp"
#include "HybridViewModelImagePropertySpec.hpp"
#include "HybridViewModelInstanceSpec.hpp"
#include "HybridViewModelListPropertySpec.hpp"
#include "HybridViewModelNumberPropertySpec.hpp"
#include "HybridViewModelPropertySpec.hpp"
#include "HybridViewModelSpec.hpp"
#include "HybridViewModelStringPropertySpec.hpp"
#include "HybridViewModelTriggerPropertySpec.hpp"
#include "ReferencedAssetsType.hpp"
#include "ResolvedReferencedAsset.hpp"
#include "RiveError.hpp"
#include "RiveErrorType.hpp"
#include "RiveEventType.hpp"
#include "UnifiedRiveEvent.hpp"
#include <NitroModules/ArrayBuffer.hpp>
#include <NitroModules/Promise.hpp>
#include <NitroModules/Result.hpp>
#include <exception>
#include <functional>
#include <memory>
#include <optional>
#include <string>
#include <unordered_map>
#include <variant>
#include <vector>

// C++ helpers for Swift
#include "RNRive-Swift-Cxx-Bridge.hpp"

// Common C++ types used in Swift
#include <NitroModules/ArrayBufferHolder.hpp>
#include <NitroModules/AnyMapUtils.hpp>
#include <NitroModules/RuntimeError.hpp>
#include <NitroModules/DateToChronoDate.hpp>

// Forward declarations of Swift defined types
// Forward declaration of `HybridBindableArtboardSpec_cxx` to properly resolve imports.
namespace RNRive { class HybridBindableArtboardSpec_cxx; }
// Forward declaration of `HybridFallbackFontSpec_cxx` to properly resolve imports.
namespace RNRive { class HybridFallbackFontSpec_cxx; }
// Forward declaration of `HybridRiveFileFactorySpec_cxx` to properly resolve imports.
namespace RNRive { class HybridRiveFileFactorySpec_cxx; }
// Forward declaration of `HybridRiveFileSpec_cxx` to properly resolve imports.
namespace RNRive { class HybridRiveFileSpec_cxx; }
// Forward declaration of `HybridRiveFontConfigSpec_cxx` to properly resolve imports.
namespace RNRive { class HybridRiveFontConfigSpec_cxx; }
// Forward declaration of `HybridRiveImageFactorySpec_cxx` to properly resolve imports.
namespace RNRive { class HybridRiveImageFactorySpec_cxx; }
// Forward declaration of `HybridRiveImageSpec_cxx` to properly resolve imports.
namespace RNRive { class HybridRiveImageSpec_cxx; }
// Forward declaration of `HybridRiveRuntimeSpec_cxx` to properly resolve imports.
namespace RNRive { class HybridRiveRuntimeSpec_cxx; }
// Forward declaration of `HybridRiveViewSpec_cxx` to properly resolve imports.
namespace RNRive { class HybridRiveViewSpec_cxx; }
// Forward declaration of `HybridViewModelArtboardPropertySpec_cxx` to properly resolve imports.
namespace RNRive { class HybridViewModelArtboardPropertySpec_cxx; }
// Forward declaration of `HybridViewModelBooleanPropertySpec_cxx` to properly resolve imports.
namespace RNRive { class HybridViewModelBooleanPropertySpec_cxx; }
// Forward declaration of `HybridViewModelColorPropertySpec_cxx` to properly resolve imports.
namespace RNRive { class HybridViewModelColorPropertySpec_cxx; }
// Forward declaration of `HybridViewModelEnumPropertySpec_cxx` to properly resolve imports.
namespace RNRive { class HybridViewModelEnumPropertySpec_cxx; }
// Forward declaration of `HybridViewModelImagePropertySpec_cxx` to properly resolve imports.
namespace RNRive { class HybridViewModelImagePropertySpec_cxx; }
// Forward declaration of `HybridViewModelInstanceSpec_cxx` to properly resolve imports.
namespace RNRive { class HybridViewModelInstanceSpec_cxx; }
// Forward declaration of `HybridViewModelListPropertySpec_cxx` to properly resolve imports.
namespace RNRive { class HybridViewModelListPropertySpec_cxx; }
// Forward declaration of `HybridViewModelNumberPropertySpec_cxx` to properly resolve imports.
namespace RNRive { class HybridViewModelNumberPropertySpec_cxx; }
// Forward declaration of `HybridViewModelPropertySpec_cxx` to properly resolve imports.
namespace RNRive { class HybridViewModelPropertySpec_cxx; }
// Forward declaration of `HybridViewModelSpec_cxx` to properly resolve imports.
namespace RNRive { class HybridViewModelSpec_cxx; }
// Forward declaration of `HybridViewModelStringPropertySpec_cxx` to properly resolve imports.
namespace RNRive { class HybridViewModelStringPropertySpec_cxx; }
// Forward declaration of `HybridViewModelTriggerPropertySpec_cxx` to properly resolve imports.
namespace RNRive { class HybridViewModelTriggerPropertySpec_cxx; }

// Include Swift defined types
#if __has_include("RNRive-Swift.h")
// This header is generated by Xcode/Swift on every app build.
// If it cannot be found, make sure the Swift module's name (= podspec name) is actually "RNRive".
#include "RNRive-Swift.h"
// Same as above, but used when building with frameworks (`use_frameworks`)
#elif __has_include(<RNRive/RNRive-Swift.h>)
#include <RNRive/RNRive-Swift.h>
#else
#error RNRive's autogenerated Swift header cannot be found! Make sure the Swift module's name (= podspec name) is actually "RNRive", and try building the app first.
#endif
