///
/// AcousticConnectRN-Swift-Cxx-Bridge.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 `HybridAcousticConnectRNSpec` to properly resolve imports.
namespace margelo::nitro::acousticconnectrn { class HybridAcousticConnectRNSpec; }
// Forward declaration of `PushErrorInfo` to properly resolve imports.
namespace margelo::nitro::acousticconnectrn { struct PushErrorInfo; }
// Forward declaration of `PushPermissionResult` to properly resolve imports.
namespace margelo::nitro::acousticconnectrn { struct PushPermissionResult; }

// Forward declarations of Swift defined types
// Forward declaration of `HybridAcousticConnectRNSpec_cxx` to properly resolve imports.
namespace AcousticConnectRN { class HybridAcousticConnectRNSpec_cxx; }

// Include C++ defined types
#include "HybridAcousticConnectRNSpec.hpp"
#include "PushErrorInfo.hpp"
#include "PushPermissionResult.hpp"
#include <NitroModules/Null.hpp>
#include <NitroModules/Promise.hpp>
#include <NitroModules/PromiseHolder.hpp>
#include <NitroModules/Result.hpp>
#include <exception>
#include <functional>
#include <memory>
#include <optional>
#include <string>
#include <unordered_map>
#include <variant>

/**
 * Contains specialized versions of C++ templated types so they can be accessed from Swift,
 * as well as helper functions to interact with those C++ types from Swift.
 */
namespace margelo::nitro::acousticconnectrn::bridge::swift {

  // pragma MARK: std::variant<bool, std::string, double>
  /**
   * Wrapper struct for `std::variant<bool, std::string, double>`.
   * std::variant cannot be used in Swift because of a Swift bug.
   * Not even specializing it works. So we create a wrapper struct.
   */
  struct std__variant_bool__std__string__double_ final {
    std::variant<bool, std::string, double> variant;
    std__variant_bool__std__string__double_(std::variant<bool, std::string, double> variant): variant(variant) { }
    operator std::variant<bool, std::string, double>() const noexcept {
      return variant;
    }
    inline size_t index() const noexcept {
      return variant.index();
    }
    inline bool get_0() const noexcept {
      return std::get<0>(variant);
    }
    inline std::string get_1() const noexcept {
      return std::get<1>(variant);
    }
    inline double get_2() const noexcept {
      return std::get<2>(variant);
    }
  };
  inline std__variant_bool__std__string__double_ create_std__variant_bool__std__string__double_(bool value) noexcept {
    return std__variant_bool__std__string__double_(value);
  }
  inline std__variant_bool__std__string__double_ create_std__variant_bool__std__string__double_(const std::string& value) noexcept {
    return std__variant_bool__std__string__double_(value);
  }
  inline std__variant_bool__std__string__double_ create_std__variant_bool__std__string__double_(double value) noexcept {
    return std__variant_bool__std__string__double_(value);
  }
  
  // pragma MARK: std::variant<nitro::NullType, std::string>
  /**
   * Wrapper struct for `std::variant<nitro::NullType, std::string>`.
   * std::variant cannot be used in Swift because of a Swift bug.
   * Not even specializing it works. So we create a wrapper struct.
   */
  struct std__variant_nitro__NullType__std__string_ final {
    std::variant<nitro::NullType, std::string> variant;
    std__variant_nitro__NullType__std__string_(std::variant<nitro::NullType, std::string> variant): variant(variant) { }
    operator std::variant<nitro::NullType, std::string>() const noexcept {
      return variant;
    }
    inline size_t index() const noexcept {
      return variant.index();
    }
    inline nitro::NullType get_0() const noexcept {
      return std::get<0>(variant);
    }
    inline std::string get_1() const noexcept {
      return std::get<1>(variant);
    }
  };
  inline std__variant_nitro__NullType__std__string_ create_std__variant_nitro__NullType__std__string_(nitro::NullType value) noexcept {
    return std__variant_nitro__NullType__std__string_(value);
  }
  inline std__variant_nitro__NullType__std__string_ create_std__variant_nitro__NullType__std__string_(const std::string& value) noexcept {
    return std__variant_nitro__NullType__std__string_(value);
  }
  
  // pragma MARK: std::optional<std::variant<nitro::NullType, std::string>>
  /**
   * Specialized version of `std::optional<std::variant<nitro::NullType, std::string>>`.
   */
  using std__optional_std__variant_nitro__NullType__std__string__ = std::optional<std::variant<nitro::NullType, std::string>>;
  inline std::optional<std::variant<nitro::NullType, std::string>> create_std__optional_std__variant_nitro__NullType__std__string__(const std::variant<nitro::NullType, std::string>& value) noexcept {
    return std::optional<std::variant<nitro::NullType, std::string>>(value);
  }
  inline bool has_value_std__optional_std__variant_nitro__NullType__std__string__(const std::optional<std::variant<nitro::NullType, std::string>>& optional) noexcept {
    return optional.has_value();
  }
  inline std::variant<nitro::NullType, std::string> get_std__optional_std__variant_nitro__NullType__std__string__(const std::optional<std::variant<nitro::NullType, std::string>>& optional) noexcept {
    return optional.value();
  }
  
  // pragma MARK: std::unordered_map<std::string, std::variant<bool, std::string, double>>
  /**
   * Specialized version of `std::unordered_map<std::string, std::variant<bool, std::string, double>>`.
   */
  using std__unordered_map_std__string__std__variant_bool__std__string__double__ = std::unordered_map<std::string, std::variant<bool, std::string, double>>;
  inline std::unordered_map<std::string, std::variant<bool, std::string, double>> create_std__unordered_map_std__string__std__variant_bool__std__string__double__(size_t size) noexcept {
    std::unordered_map<std::string, std::variant<bool, std::string, double>> map;
    map.reserve(size);
    return map;
  }
  inline std::vector<std::string> get_std__unordered_map_std__string__std__variant_bool__std__string__double___keys(const std__unordered_map_std__string__std__variant_bool__std__string__double__& map) noexcept {
    std::vector<std::string> keys;
    keys.reserve(map.size());
    for (const auto& entry : map) {
      keys.push_back(entry.first);
    }
    return keys;
  }
  inline std::variant<bool, std::string, double> get_std__unordered_map_std__string__std__variant_bool__std__string__double___value(const std__unordered_map_std__string__std__variant_bool__std__string__double__& map, const std::string& key) noexcept {
    return map.find(key)->second;
  }
  inline void emplace_std__unordered_map_std__string__std__variant_bool__std__string__double__(std__unordered_map_std__string__std__variant_bool__std__string__double__& map, const std::string& key, const std::variant<bool, std::string, double>& value) noexcept {
    map.emplace(key, value);
  }
  
  // pragma MARK: std::shared_ptr<Promise<bool>>
  /**
   * Specialized version of `std::shared_ptr<Promise<bool>>`.
   */
  using std__shared_ptr_Promise_bool__ = std::shared_ptr<Promise<bool>>;
  inline std::shared_ptr<Promise<bool>> create_std__shared_ptr_Promise_bool__() noexcept {
    return Promise<bool>::create();
  }
  inline PromiseHolder<bool> wrap_std__shared_ptr_Promise_bool__(std::shared_ptr<Promise<bool>> promise) noexcept {
    return PromiseHolder<bool>(std::move(promise));
  }
  
  // pragma MARK: std::function<void(bool /* result */)>
  /**
   * Specialized version of `std::function<void(bool)>`.
   */
  using Func_void_bool = std::function<void(bool /* result */)>;
  /**
   * Wrapper class for a `std::function<void(bool / * result * /)>`, this can be used from Swift.
   */
  class Func_void_bool_Wrapper final {
  public:
    explicit Func_void_bool_Wrapper(std::function<void(bool /* result */)>&& func): _function(std::make_unique<std::function<void(bool /* result */)>>(std::move(func))) {}
    inline void call(bool result) const noexcept {
      _function->operator()(result);
    }
  private:
    std::unique_ptr<std::function<void(bool /* result */)>> _function;
  } SWIFT_NONCOPYABLE;
  Func_void_bool create_Func_void_bool(void* NON_NULL swiftClosureWrapper) noexcept;
  inline Func_void_bool_Wrapper wrap_Func_void_bool(Func_void_bool value) noexcept {
    return Func_void_bool_Wrapper(std::move(value));
  }
  
  // pragma MARK: std::function<void(const std::exception_ptr& /* error */)>
  /**
   * Specialized version of `std::function<void(const std::exception_ptr&)>`.
   */
  using Func_void_std__exception_ptr = std::function<void(const std::exception_ptr& /* error */)>;
  /**
   * Wrapper class for a `std::function<void(const std::exception_ptr& / * error * /)>`, this can be used from Swift.
   */
  class Func_void_std__exception_ptr_Wrapper final {
  public:
    explicit Func_void_std__exception_ptr_Wrapper(std::function<void(const std::exception_ptr& /* error */)>&& func): _function(std::make_unique<std::function<void(const std::exception_ptr& /* error */)>>(std::move(func))) {}
    inline void call(std::exception_ptr error) const noexcept {
      _function->operator()(error);
    }
  private:
    std::unique_ptr<std::function<void(const std::exception_ptr& /* error */)>> _function;
  } SWIFT_NONCOPYABLE;
  Func_void_std__exception_ptr create_Func_void_std__exception_ptr(void* NON_NULL swiftClosureWrapper) noexcept;
  inline Func_void_std__exception_ptr_Wrapper wrap_Func_void_std__exception_ptr(Func_void_std__exception_ptr value) noexcept {
    return Func_void_std__exception_ptr_Wrapper(std::move(value));
  }
  
  // pragma MARK: std::optional<std::string>
  /**
   * Specialized version of `std::optional<std::string>`.
   */
  using std__optional_std__string_ = std::optional<std::string>;
  inline std::optional<std::string> create_std__optional_std__string_(const std::string& value) noexcept {
    return std::optional<std::string>(value);
  }
  inline bool has_value_std__optional_std__string_(const std::optional<std::string>& optional) noexcept {
    return optional.has_value();
  }
  inline std::string get_std__optional_std__string_(const std::optional<std::string>& optional) noexcept {
    return optional.value();
  }
  
  // pragma MARK: std::unordered_map<std::string, std::string>
  /**
   * Specialized version of `std::unordered_map<std::string, std::string>`.
   */
  using std__unordered_map_std__string__std__string_ = std::unordered_map<std::string, std::string>;
  inline std::unordered_map<std::string, std::string> create_std__unordered_map_std__string__std__string_(size_t size) noexcept {
    std::unordered_map<std::string, std::string> map;
    map.reserve(size);
    return map;
  }
  inline std::vector<std::string> get_std__unordered_map_std__string__std__string__keys(const std__unordered_map_std__string__std__string_& map) noexcept {
    std::vector<std::string> keys;
    keys.reserve(map.size());
    for (const auto& entry : map) {
      keys.push_back(entry.first);
    }
    return keys;
  }
  inline std::string get_std__unordered_map_std__string__std__string__value(const std__unordered_map_std__string__std__string_& map, const std::string& key) noexcept {
    return map.find(key)->second;
  }
  inline void emplace_std__unordered_map_std__string__std__string_(std__unordered_map_std__string__std__string_& map, const std::string& key, const std::string& value) noexcept {
    map.emplace(key, value);
  }
  
  // pragma MARK: std::optional<std::unordered_map<std::string, std::string>>
  /**
   * Specialized version of `std::optional<std::unordered_map<std::string, std::string>>`.
   */
  using std__optional_std__unordered_map_std__string__std__string__ = std::optional<std::unordered_map<std::string, std::string>>;
  inline std::optional<std::unordered_map<std::string, std::string>> create_std__optional_std__unordered_map_std__string__std__string__(const std::unordered_map<std::string, std::string>& value) noexcept {
    return std::optional<std::unordered_map<std::string, std::string>>(value);
  }
  inline bool has_value_std__optional_std__unordered_map_std__string__std__string__(const std::optional<std::unordered_map<std::string, std::string>>& optional) noexcept {
    return optional.has_value();
  }
  inline std::unordered_map<std::string, std::string> get_std__optional_std__unordered_map_std__string__std__string__(const std::optional<std::unordered_map<std::string, std::string>>& optional) noexcept {
    return optional.value();
  }
  
  // pragma MARK: std::optional<double>
  /**
   * Specialized version of `std::optional<double>`.
   */
  using std__optional_double_ = std::optional<double>;
  inline std::optional<double> create_std__optional_double_(const double& value) noexcept {
    return std::optional<double>(value);
  }
  inline bool has_value_std__optional_double_(const std::optional<double>& optional) noexcept {
    return optional.has_value();
  }
  inline double get_std__optional_double_(const std::optional<double>& optional) noexcept {
    return optional.value();
  }
  
  // pragma MARK: std::variant<nitro::NullType, bool>
  /**
   * Wrapper struct for `std::variant<nitro::NullType, bool>`.
   * std::variant cannot be used in Swift because of a Swift bug.
   * Not even specializing it works. So we create a wrapper struct.
   */
  struct std__variant_nitro__NullType__bool_ final {
    std::variant<nitro::NullType, bool> variant;
    std__variant_nitro__NullType__bool_(std::variant<nitro::NullType, bool> variant): variant(variant) { }
    operator std::variant<nitro::NullType, bool>() const noexcept {
      return variant;
    }
    inline size_t index() const noexcept {
      return variant.index();
    }
    inline nitro::NullType get_0() const noexcept {
      return std::get<0>(variant);
    }
    inline bool get_1() const noexcept {
      return std::get<1>(variant);
    }
  };
  inline std__variant_nitro__NullType__bool_ create_std__variant_nitro__NullType__bool_(nitro::NullType value) noexcept {
    return std__variant_nitro__NullType__bool_(value);
  }
  inline std__variant_nitro__NullType__bool_ create_std__variant_nitro__NullType__bool_(bool value) noexcept {
    return std__variant_nitro__NullType__bool_(value);
  }
  
  // pragma MARK: std::optional<std::variant<nitro::NullType, bool>>
  /**
   * Specialized version of `std::optional<std::variant<nitro::NullType, bool>>`.
   */
  using std__optional_std__variant_nitro__NullType__bool__ = std::optional<std::variant<nitro::NullType, bool>>;
  inline std::optional<std::variant<nitro::NullType, bool>> create_std__optional_std__variant_nitro__NullType__bool__(const std::variant<nitro::NullType, bool>& value) noexcept {
    return std::optional<std::variant<nitro::NullType, bool>>(value);
  }
  inline bool has_value_std__optional_std__variant_nitro__NullType__bool__(const std::optional<std::variant<nitro::NullType, bool>>& optional) noexcept {
    return optional.has_value();
  }
  inline std::variant<nitro::NullType, bool> get_std__optional_std__variant_nitro__NullType__bool__(const std::optional<std::variant<nitro::NullType, bool>>& optional) noexcept {
    return optional.value();
  }
  
  // pragma MARK: std::optional<PushErrorInfo>
  /**
   * Specialized version of `std::optional<PushErrorInfo>`.
   */
  using std__optional_PushErrorInfo_ = std::optional<PushErrorInfo>;
  inline std::optional<PushErrorInfo> create_std__optional_PushErrorInfo_(const PushErrorInfo& value) noexcept {
    return std::optional<PushErrorInfo>(value);
  }
  inline bool has_value_std__optional_PushErrorInfo_(const std::optional<PushErrorInfo>& optional) noexcept {
    return optional.has_value();
  }
  inline PushErrorInfo get_std__optional_PushErrorInfo_(const std::optional<PushErrorInfo>& optional) noexcept {
    return optional.value();
  }
  
  // pragma MARK: std::shared_ptr<Promise<PushPermissionResult>>
  /**
   * Specialized version of `std::shared_ptr<Promise<PushPermissionResult>>`.
   */
  using std__shared_ptr_Promise_PushPermissionResult__ = std::shared_ptr<Promise<PushPermissionResult>>;
  inline std::shared_ptr<Promise<PushPermissionResult>> create_std__shared_ptr_Promise_PushPermissionResult__() noexcept {
    return Promise<PushPermissionResult>::create();
  }
  inline PromiseHolder<PushPermissionResult> wrap_std__shared_ptr_Promise_PushPermissionResult__(std::shared_ptr<Promise<PushPermissionResult>> promise) noexcept {
    return PromiseHolder<PushPermissionResult>(std::move(promise));
  }
  
  // pragma MARK: std::function<void(const PushPermissionResult& /* result */)>
  /**
   * Specialized version of `std::function<void(const PushPermissionResult&)>`.
   */
  using Func_void_PushPermissionResult = std::function<void(const PushPermissionResult& /* result */)>;
  /**
   * Wrapper class for a `std::function<void(const PushPermissionResult& / * result * /)>`, this can be used from Swift.
   */
  class Func_void_PushPermissionResult_Wrapper final {
  public:
    explicit Func_void_PushPermissionResult_Wrapper(std::function<void(const PushPermissionResult& /* result */)>&& func): _function(std::make_unique<std::function<void(const PushPermissionResult& /* result */)>>(std::move(func))) {}
    inline void call(PushPermissionResult result) const noexcept {
      _function->operator()(result);
    }
  private:
    std::unique_ptr<std::function<void(const PushPermissionResult& /* result */)>> _function;
  } SWIFT_NONCOPYABLE;
  Func_void_PushPermissionResult create_Func_void_PushPermissionResult(void* NON_NULL swiftClosureWrapper) noexcept;
  inline Func_void_PushPermissionResult_Wrapper wrap_Func_void_PushPermissionResult(Func_void_PushPermissionResult value) noexcept {
    return Func_void_PushPermissionResult_Wrapper(std::move(value));
  }
  
  // pragma MARK: std::shared_ptr<Promise<std::variant<nitro::NullType, bool>>>
  /**
   * Specialized version of `std::shared_ptr<Promise<std::variant<nitro::NullType, bool>>>`.
   */
  using std__shared_ptr_Promise_std__variant_nitro__NullType__bool___ = std::shared_ptr<Promise<std::variant<nitro::NullType, bool>>>;
  inline std::shared_ptr<Promise<std::variant<nitro::NullType, bool>>> create_std__shared_ptr_Promise_std__variant_nitro__NullType__bool___() noexcept {
    return Promise<std::variant<nitro::NullType, bool>>::create();
  }
  inline PromiseHolder<std::variant<nitro::NullType, bool>> wrap_std__shared_ptr_Promise_std__variant_nitro__NullType__bool___(std::shared_ptr<Promise<std::variant<nitro::NullType, bool>>> promise) noexcept {
    return PromiseHolder<std::variant<nitro::NullType, bool>>(std::move(promise));
  }
  
  // pragma MARK: std::function<void(const std::variant<nitro::NullType, bool>& /* result */)>
  /**
   * Specialized version of `std::function<void(const std::variant<nitro::NullType, bool>&)>`.
   */
  using Func_void_std__variant_nitro__NullType__bool_ = std::function<void(const std::variant<nitro::NullType, bool>& /* result */)>;
  /**
   * Wrapper class for a `std::function<void(const std::variant<nitro::NullType, bool>& / * result * /)>`, this can be used from Swift.
   */
  class Func_void_std__variant_nitro__NullType__bool__Wrapper final {
  public:
    explicit Func_void_std__variant_nitro__NullType__bool__Wrapper(std::function<void(const std::variant<nitro::NullType, bool>& /* result */)>&& func): _function(std::make_unique<std::function<void(const std::variant<nitro::NullType, bool>& /* result */)>>(std::move(func))) {}
    inline void call(std::variant<nitro::NullType, bool> result) const noexcept {
      _function->operator()(result);
    }
  private:
    std::unique_ptr<std::function<void(const std::variant<nitro::NullType, bool>& /* result */)>> _function;
  } SWIFT_NONCOPYABLE;
  Func_void_std__variant_nitro__NullType__bool_ create_Func_void_std__variant_nitro__NullType__bool_(void* NON_NULL swiftClosureWrapper) noexcept;
  inline Func_void_std__variant_nitro__NullType__bool__Wrapper wrap_Func_void_std__variant_nitro__NullType__bool_(Func_void_std__variant_nitro__NullType__bool_ value) noexcept {
    return Func_void_std__variant_nitro__NullType__bool__Wrapper(std::move(value));
  }
  
  // pragma MARK: std::shared_ptr<HybridAcousticConnectRNSpec>
  /**
   * Specialized version of `std::shared_ptr<HybridAcousticConnectRNSpec>`.
   */
  using std__shared_ptr_HybridAcousticConnectRNSpec_ = std::shared_ptr<HybridAcousticConnectRNSpec>;
  std::shared_ptr<HybridAcousticConnectRNSpec> create_std__shared_ptr_HybridAcousticConnectRNSpec_(void* NON_NULL swiftUnsafePointer) noexcept;
  void* NON_NULL get_std__shared_ptr_HybridAcousticConnectRNSpec_(std__shared_ptr_HybridAcousticConnectRNSpec_ cppType);
  
  // pragma MARK: std::weak_ptr<HybridAcousticConnectRNSpec>
  using std__weak_ptr_HybridAcousticConnectRNSpec_ = std::weak_ptr<HybridAcousticConnectRNSpec>;
  inline std__weak_ptr_HybridAcousticConnectRNSpec_ weakify_std__shared_ptr_HybridAcousticConnectRNSpec_(const std::shared_ptr<HybridAcousticConnectRNSpec>& strong) noexcept { return strong; }
  
  // pragma MARK: Result<bool>
  using Result_bool_ = Result<bool>;
  inline Result_bool_ create_Result_bool_(bool value) noexcept {
    return Result<bool>::withValue(std::move(value));
  }
  inline Result_bool_ create_Result_bool_(const std::exception_ptr& error) noexcept {
    return Result<bool>::withError(error);
  }
  
  // pragma MARK: Result<std::optional<std::variant<nitro::NullType, std::string>>>
  using Result_std__optional_std__variant_nitro__NullType__std__string___ = Result<std::optional<std::variant<nitro::NullType, std::string>>>;
  inline Result_std__optional_std__variant_nitro__NullType__std__string___ create_Result_std__optional_std__variant_nitro__NullType__std__string___(const std::optional<std::variant<nitro::NullType, std::string>>& value) noexcept {
    return Result<std::optional<std::variant<nitro::NullType, std::string>>>::withValue(value);
  }
  inline Result_std__optional_std__variant_nitro__NullType__std__string___ create_Result_std__optional_std__variant_nitro__NullType__std__string___(const std::exception_ptr& error) noexcept {
    return Result<std::optional<std::variant<nitro::NullType, std::string>>>::withError(error);
  }
  
  // pragma MARK: Result<double>
  using Result_double_ = Result<double>;
  inline Result_double_ create_Result_double_(double value) noexcept {
    return Result<double>::withValue(std::move(value));
  }
  inline Result_double_ create_Result_double_(const std::exception_ptr& error) noexcept {
    return Result<double>::withError(error);
  }
  
  // pragma MARK: Result<std::shared_ptr<Promise<bool>>>
  using Result_std__shared_ptr_Promise_bool___ = Result<std::shared_ptr<Promise<bool>>>;
  inline Result_std__shared_ptr_Promise_bool___ create_Result_std__shared_ptr_Promise_bool___(const std::shared_ptr<Promise<bool>>& value) noexcept {
    return Result<std::shared_ptr<Promise<bool>>>::withValue(value);
  }
  inline Result_std__shared_ptr_Promise_bool___ create_Result_std__shared_ptr_Promise_bool___(const std::exception_ptr& error) noexcept {
    return Result<std::shared_ptr<Promise<bool>>>::withError(error);
  }
  
  // pragma MARK: Result<std::shared_ptr<Promise<PushPermissionResult>>>
  using Result_std__shared_ptr_Promise_PushPermissionResult___ = Result<std::shared_ptr<Promise<PushPermissionResult>>>;
  inline Result_std__shared_ptr_Promise_PushPermissionResult___ create_Result_std__shared_ptr_Promise_PushPermissionResult___(const std::shared_ptr<Promise<PushPermissionResult>>& value) noexcept {
    return Result<std::shared_ptr<Promise<PushPermissionResult>>>::withValue(value);
  }
  inline Result_std__shared_ptr_Promise_PushPermissionResult___ create_Result_std__shared_ptr_Promise_PushPermissionResult___(const std::exception_ptr& error) noexcept {
    return Result<std::shared_ptr<Promise<PushPermissionResult>>>::withError(error);
  }
  
  // pragma MARK: Result<std::shared_ptr<Promise<std::variant<nitro::NullType, bool>>>>
  using Result_std__shared_ptr_Promise_std__variant_nitro__NullType__bool____ = Result<std::shared_ptr<Promise<std::variant<nitro::NullType, bool>>>>;
  inline Result_std__shared_ptr_Promise_std__variant_nitro__NullType__bool____ create_Result_std__shared_ptr_Promise_std__variant_nitro__NullType__bool____(const std::shared_ptr<Promise<std::variant<nitro::NullType, bool>>>& value) noexcept {
    return Result<std::shared_ptr<Promise<std::variant<nitro::NullType, bool>>>>::withValue(value);
  }
  inline Result_std__shared_ptr_Promise_std__variant_nitro__NullType__bool____ create_Result_std__shared_ptr_Promise_std__variant_nitro__NullType__bool____(const std::exception_ptr& error) noexcept {
    return Result<std::shared_ptr<Promise<std::variant<nitro::NullType, bool>>>>::withError(error);
  }

} // namespace margelo::nitro::acousticconnectrn::bridge::swift
