///
/// VisionCameraAutolinking.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 VisionCameraAutolinking {
  public typealias bridge = margelo.nitro.camera.bridge.swift

  public static func createCameraFactory() -> bridge.std__shared_ptr_HybridCameraFactorySpec_ {
    let hybridObject = VisionCamera()
    return { () -> bridge.std__shared_ptr_HybridCameraFactorySpec_ in
      let __cxxWrapped = hybridObject.getCxxWrapper()
      return __cxxWrapped.getCxxPart()
    }()
  }
  
  public static func isCameraFactoryRecyclable() -> Bool {
    return VisionCamera.self is any RecyclableView.Type
  }
  
  public static func createPreviewView() -> bridge.std__shared_ptr_HybridPreviewViewSpec_ {
    let hybridObject = HybridPreviewView()
    return { () -> bridge.std__shared_ptr_HybridPreviewViewSpec_ in
      let __cxxWrapped = hybridObject.getCxxWrapper()
      return __cxxWrapped.getCxxPart()
    }()
  }
  
  public static func isPreviewViewRecyclable() -> Bool {
    return HybridPreviewView.self is any RecyclableView.Type
  }
  
  public static func createFrameRendererView() -> bridge.std__shared_ptr_HybridFrameRendererViewSpec_ {
    let hybridObject = HybridFrameRendererView()
    return { () -> bridge.std__shared_ptr_HybridFrameRendererViewSpec_ in
      let __cxxWrapped = hybridObject.getCxxWrapper()
      return __cxxWrapped.getCxxPart()
    }()
  }
  
  public static func isFrameRendererViewRecyclable() -> Bool {
    return HybridFrameRendererView.self is any RecyclableView.Type
  }
  
  public static func createNativeThreadFactory() -> bridge.std__shared_ptr_HybridNativeThreadFactorySpec_ {
    let hybridObject = HybridNativeThreadFactory()
    return { () -> bridge.std__shared_ptr_HybridNativeThreadFactorySpec_ in
      let __cxxWrapped = hybridObject.getCxxWrapper()
      return __cxxWrapped.getCxxPart()
    }()
  }
  
  public static func isNativeThreadFactoryRecyclable() -> Bool {
    return HybridNativeThreadFactory.self is any RecyclableView.Type
  }
  
  public static func createFrameConverter() -> bridge.std__shared_ptr_HybridFrameConverterSpec_ {
    let hybridObject = HybridFrameConverter()
    return { () -> bridge.std__shared_ptr_HybridFrameConverterSpec_ in
      let __cxxWrapped = hybridObject.getCxxWrapper()
      return __cxxWrapped.getCxxPart()
    }()
  }
  
  public static func isFrameConverterRecyclable() -> Bool {
    return HybridFrameConverter.self is any RecyclableView.Type
  }
}
