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

#pragma once

// Forward declarations of C++ defined types
// Forward declaration of `BroadcastPickerPresentationEvent` to properly resolve imports.
namespace margelo::nitro::nitroscreenrecorder { enum class BroadcastPickerPresentationEvent; }
// Forward declaration of `CameraDevice` to properly resolve imports.
namespace margelo::nitro::nitroscreenrecorder { enum class CameraDevice; }
// Forward declaration of `HybridNitroScreenRecorderSpec` to properly resolve imports.
namespace margelo::nitro::nitroscreenrecorder { class HybridNitroScreenRecorderSpec; }
// Forward declaration of `PermissionResponse` to properly resolve imports.
namespace margelo::nitro::nitroscreenrecorder { struct PermissionResponse; }
// Forward declaration of `PermissionStatus` to properly resolve imports.
namespace margelo::nitro::nitroscreenrecorder { enum class PermissionStatus; }
// Forward declaration of `RecorderCameraStyle` to properly resolve imports.
namespace margelo::nitro::nitroscreenrecorder { struct RecorderCameraStyle; }
// Forward declaration of `RecordingError` to properly resolve imports.
namespace margelo::nitro::nitroscreenrecorder { struct RecordingError; }
// Forward declaration of `RecordingEventReason` to properly resolve imports.
namespace margelo::nitro::nitroscreenrecorder { enum class RecordingEventReason; }
// Forward declaration of `RecordingEventType` to properly resolve imports.
namespace margelo::nitro::nitroscreenrecorder { enum class RecordingEventType; }
// Forward declaration of `ScreenRecordingEvent` to properly resolve imports.
namespace margelo::nitro::nitroscreenrecorder { struct ScreenRecordingEvent; }
// Forward declaration of `ScreenRecordingFile` to properly resolve imports.
namespace margelo::nitro::nitroscreenrecorder { struct ScreenRecordingFile; }

// Include C++ defined types
#include "BroadcastPickerPresentationEvent.hpp"
#include "CameraDevice.hpp"
#include "HybridNitroScreenRecorderSpec.hpp"
#include "PermissionResponse.hpp"
#include "PermissionStatus.hpp"
#include "RecorderCameraStyle.hpp"
#include "RecordingError.hpp"
#include "RecordingEventReason.hpp"
#include "RecordingEventType.hpp"
#include "ScreenRecordingEvent.hpp"
#include "ScreenRecordingFile.hpp"
#include <NitroModules/Promise.hpp>
#include <NitroModules/Result.hpp>
#include <exception>
#include <functional>
#include <memory>
#include <optional>
#include <string>

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

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