///
/// AviationAutolinking.swift
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
/// https://github.com/mrousavy/nitro
/// Copyright © Marc Rousavy @ Margelo
///

import NitroModules

// TODO: Use empty enums once Swift supports exporting them as namespaces
//       See: https://github.com/swiftlang/swift/pull/83616
public final class AviationAutolinking {
  public typealias bridge = margelo.nitro.aviation.bridge.swift

  public static func createAudioSessionFactory() -> bridge.std__shared_ptr_HybridAudioSessionFactorySpec_ {
    let hybridObject = HybridAudioSessionFactory()
    return { () -> bridge.std__shared_ptr_HybridAudioSessionFactorySpec_ in
      let __cxxWrapped = hybridObject.getCxxWrapper()
      return __cxxWrapped.getCxxPart()
    }()
  }
  
  public static func isAudioSessionFactoryRecyclable() -> Bool {
    return HybridAudioSessionFactory.self is any RecyclableView.Type
  }
  
  public static func createMediaItemFactory() -> bridge.std__shared_ptr_HybridMediaItemFactorySpec_ {
    let hybridObject = HybridMediaItemFactory()
    return { () -> bridge.std__shared_ptr_HybridMediaItemFactorySpec_ in
      let __cxxWrapped = hybridObject.getCxxWrapper()
      return __cxxWrapped.getCxxPart()
    }()
  }
  
  public static func isMediaItemFactoryRecyclable() -> Bool {
    return HybridMediaItemFactory.self is any RecyclableView.Type
  }
  
  public static func createPlaybackEngineFactory() -> bridge.std__shared_ptr_HybridPlaybackEngineFactorySpec_ {
    let hybridObject = HybridPlaybackEngineFactory()
    return { () -> bridge.std__shared_ptr_HybridPlaybackEngineFactorySpec_ in
      let __cxxWrapped = hybridObject.getCxxWrapper()
      return __cxxWrapped.getCxxPart()
    }()
  }
  
  public static func isPlaybackEngineFactoryRecyclable() -> Bool {
    return HybridPlaybackEngineFactory.self is any RecyclableView.Type
  }
  
  public static func createVideoView() -> bridge.std__shared_ptr_HybridVideoViewSpec_ {
    let hybridObject = HybridVideoView()
    return { () -> bridge.std__shared_ptr_HybridVideoViewSpec_ in
      let __cxxWrapped = hybridObject.getCxxWrapper()
      return __cxxWrapped.getCxxPart()
    }()
  }
  
  public static func isVideoViewRecyclable() -> Bool {
    return HybridVideoView.self is any RecyclableView.Type
  }
  
  public static func createAirPlayButton() -> bridge.std__shared_ptr_HybridAirPlayButtonSpec_ {
    let hybridObject = HybridAirPlayButton()
    return { () -> bridge.std__shared_ptr_HybridAirPlayButtonSpec_ in
      let __cxxWrapped = hybridObject.getCxxWrapper()
      return __cxxWrapped.getCxxPart()
    }()
  }
  
  public static func isAirPlayButtonRecyclable() -> Bool {
    return HybridAirPlayButton.self is any RecyclableView.Type
  }
}
