///
/// NitroReadium-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 `AccessibilityCertification` to properly resolve imports.
namespace margelo::nitro::readium { struct AccessibilityCertification; }
// Forward declaration of `Accessibility` to properly resolve imports.
namespace margelo::nitro::readium { struct Accessibility; }
// Forward declaration of `BelongsTo` to properly resolve imports.
namespace margelo::nitro::readium { struct BelongsTo; }
// Forward declaration of `Contributor` to properly resolve imports.
namespace margelo::nitro::readium { struct Contributor; }
// Forward declaration of `DecorationActivatedEvent` to properly resolve imports.
namespace margelo::nitro::readium { struct DecorationActivatedEvent; }
// Forward declaration of `DecorationGroup` to properly resolve imports.
namespace margelo::nitro::readium { struct DecorationGroup; }
// Forward declaration of `DecorationStyle` to properly resolve imports.
namespace margelo::nitro::readium { struct DecorationStyle; }
// Forward declaration of `Decoration` to properly resolve imports.
namespace margelo::nitro::readium { struct Decoration; }
// Forward declaration of `HybridReadiumViewSpec` to properly resolve imports.
namespace margelo::nitro::readium { class HybridReadiumViewSpec; }
// Forward declaration of `Link` to properly resolve imports.
namespace margelo::nitro::readium { struct Link; }
// Forward declaration of `LocatorLocations` to properly resolve imports.
namespace margelo::nitro::readium { struct LocatorLocations; }
// Forward declaration of `LocatorText` to properly resolve imports.
namespace margelo::nitro::readium { struct LocatorText; }
// Forward declaration of `Locator` to properly resolve imports.
namespace margelo::nitro::readium { struct Locator; }
// Forward declaration of `Point` to properly resolve imports.
namespace margelo::nitro::readium { struct Point; }
// Forward declaration of `Preferences` to properly resolve imports.
namespace margelo::nitro::readium { struct Preferences; }
// Forward declaration of `PublicationMetadata` to properly resolve imports.
namespace margelo::nitro::readium { struct PublicationMetadata; }
// Forward declaration of `PublicationReadyEvent` to properly resolve imports.
namespace margelo::nitro::readium { struct PublicationReadyEvent; }
// Forward declaration of `ReadiumFile` to properly resolve imports.
namespace margelo::nitro::readium { struct ReadiumFile; }
// Forward declaration of `Rect` to properly resolve imports.
namespace margelo::nitro::readium { struct Rect; }
// Forward declaration of `SelectionActionEvent` to properly resolve imports.
namespace margelo::nitro::readium { struct SelectionActionEvent; }
// Forward declaration of `SelectionAction` to properly resolve imports.
namespace margelo::nitro::readium { struct SelectionAction; }
// Forward declaration of `SelectionEvent` to properly resolve imports.
namespace margelo::nitro::readium { struct SelectionEvent; }
// Forward declaration of `SeriesInfo` to properly resolve imports.
namespace margelo::nitro::readium { struct SeriesInfo; }
// Forward declaration of `Subject` to properly resolve imports.
namespace margelo::nitro::readium { struct Subject; }

// Include C++ defined types
#include "Accessibility.hpp"
#include "AccessibilityCertification.hpp"
#include "BelongsTo.hpp"
#include "Contributor.hpp"
#include "Decoration.hpp"
#include "DecorationActivatedEvent.hpp"
#include "DecorationGroup.hpp"
#include "DecorationStyle.hpp"
#include "HybridReadiumViewSpec.hpp"
#include "Link.hpp"
#include "Locator.hpp"
#include "LocatorLocations.hpp"
#include "LocatorText.hpp"
#include "Point.hpp"
#include "Preferences.hpp"
#include "PublicationMetadata.hpp"
#include "PublicationReadyEvent.hpp"
#include "ReadiumFile.hpp"
#include "Rect.hpp"
#include "SelectionAction.hpp"
#include "SelectionActionEvent.hpp"
#include "SelectionEvent.hpp"
#include "SeriesInfo.hpp"
#include "Subject.hpp"
#include <NitroModules/Result.hpp>
#include <exception>
#include <functional>
#include <memory>
#include <optional>
#include <string>
#include <unordered_map>
#include <vector>

// C++ helpers for Swift
#include "NitroReadium-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 `HybridReadiumViewSpec_cxx` to properly resolve imports.
namespace NitroReadium { class HybridReadiumViewSpec_cxx; }

// Include Swift defined types
#if __has_include("NitroReadium-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 "NitroReadium".
#include "NitroReadium-Swift.h"
// Same as above, but used when building with frameworks (`use_frameworks`)
#elif __has_include(<NitroReadium/NitroReadium-Swift.h>)
#include <NitroReadium/NitroReadium-Swift.h>
#else
#error NitroReadium's autogenerated Swift header cannot be found! Make sure the Swift module's name (= podspec name) is actually "NitroReadium", and try building the app first.
#endif
