///
/// MunimBluetooth-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 `AdvertisingDataTypes` to properly resolve imports.
namespace margelo::nitro::munimbluetooth { struct AdvertisingDataTypes; }
// Forward declaration of `AdvertisingOptions` to properly resolve imports.
namespace margelo::nitro::munimbluetooth { struct AdvertisingOptions; }
// Forward declaration of `BackgroundSessionOptions` to properly resolve imports.
namespace margelo::nitro::munimbluetooth { struct BackgroundSessionOptions; }
// Forward declaration of `BluetoothCapabilities` to properly resolve imports.
namespace margelo::nitro::munimbluetooth { struct BluetoothCapabilities; }
// Forward declaration of `BluetoothPhyOption` to properly resolve imports.
namespace margelo::nitro::munimbluetooth { enum class BluetoothPhyOption; }
// Forward declaration of `BluetoothPhy` to properly resolve imports.
namespace margelo::nitro::munimbluetooth { enum class BluetoothPhy; }
// Forward declaration of `BondState` to properly resolve imports.
namespace margelo::nitro::munimbluetooth { enum class BondState; }
// Forward declaration of `CharacteristicValue` to properly resolve imports.
namespace margelo::nitro::munimbluetooth { struct CharacteristicValue; }
// Forward declaration of `DescriptorValue` to properly resolve imports.
namespace margelo::nitro::munimbluetooth { struct DescriptorValue; }
// Forward declaration of `ExtendedAdvertisingOptions` to properly resolve imports.
namespace margelo::nitro::munimbluetooth { struct ExtendedAdvertisingOptions; }
// Forward declaration of `GATTCharacteristic` to properly resolve imports.
namespace margelo::nitro::munimbluetooth { struct GATTCharacteristic; }
// Forward declaration of `GATTDescriptor` to properly resolve imports.
namespace margelo::nitro::munimbluetooth { struct GATTDescriptor; }
// Forward declaration of `GATTService` to properly resolve imports.
namespace margelo::nitro::munimbluetooth { struct GATTService; }
// Forward declaration of `HybridMunimBluetoothSpec` to properly resolve imports.
namespace margelo::nitro::munimbluetooth { class HybridMunimBluetoothSpec; }
// Forward declaration of `L2CAPChannel` to properly resolve imports.
namespace margelo::nitro::munimbluetooth { struct L2CAPChannel; }
// Forward declaration of `MultipeerDiscoveryInfoEntry` to properly resolve imports.
namespace margelo::nitro::munimbluetooth { struct MultipeerDiscoveryInfoEntry; }
// Forward declaration of `MultipeerEncryptionPreference` to properly resolve imports.
namespace margelo::nitro::munimbluetooth { enum class MultipeerEncryptionPreference; }
// Forward declaration of `MultipeerPeerState` to properly resolve imports.
namespace margelo::nitro::munimbluetooth { enum class MultipeerPeerState; }
// Forward declaration of `MultipeerPeer` to properly resolve imports.
namespace margelo::nitro::munimbluetooth { struct MultipeerPeer; }
// Forward declaration of `MultipeerSessionOptions` to properly resolve imports.
namespace margelo::nitro::munimbluetooth { struct MultipeerSessionOptions; }
// Forward declaration of `PhyStatus` to properly resolve imports.
namespace margelo::nitro::munimbluetooth { struct PhyStatus; }
// Forward declaration of `ScanMode` to properly resolve imports.
namespace margelo::nitro::munimbluetooth { enum class ScanMode; }
// Forward declaration of `ScanOptions` to properly resolve imports.
namespace margelo::nitro::munimbluetooth { struct ScanOptions; }
// Forward declaration of `ServiceDataEntry` to properly resolve imports.
namespace margelo::nitro::munimbluetooth { struct ServiceDataEntry; }
// Forward declaration of `WriteType` to properly resolve imports.
namespace margelo::nitro::munimbluetooth { enum class WriteType; }

// Include C++ defined types
#include "AdvertisingDataTypes.hpp"
#include "AdvertisingOptions.hpp"
#include "BackgroundSessionOptions.hpp"
#include "BluetoothCapabilities.hpp"
#include "BluetoothPhy.hpp"
#include "BluetoothPhyOption.hpp"
#include "BondState.hpp"
#include "CharacteristicValue.hpp"
#include "DescriptorValue.hpp"
#include "ExtendedAdvertisingOptions.hpp"
#include "GATTCharacteristic.hpp"
#include "GATTDescriptor.hpp"
#include "GATTService.hpp"
#include "HybridMunimBluetoothSpec.hpp"
#include "L2CAPChannel.hpp"
#include "MultipeerDiscoveryInfoEntry.hpp"
#include "MultipeerEncryptionPreference.hpp"
#include "MultipeerPeer.hpp"
#include "MultipeerPeerState.hpp"
#include "MultipeerSessionOptions.hpp"
#include "PhyStatus.hpp"
#include "ScanMode.hpp"
#include "ScanOptions.hpp"
#include "ServiceDataEntry.hpp"
#include "WriteType.hpp"
#include <NitroModules/Promise.hpp>
#include <NitroModules/Result.hpp>
#include <exception>
#include <memory>
#include <optional>
#include <string>
#include <vector>

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

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