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

  public static func createImageFactory() -> bridge.std__shared_ptr_HybridImageFactorySpec_ {
    let hybridObject = HybridImageFactory()
    return { () -> bridge.std__shared_ptr_HybridImageFactorySpec_ in
      let __cxxWrapped = hybridObject.getCxxWrapper()
      return __cxxWrapped.getCxxPart()
    }()
  }
  
  public static func isImageFactoryRecyclable() -> Bool {
    return HybridImageFactory.self is any RecyclableView.Type
  }
  
  public static func createImageLoaderFactory() -> bridge.std__shared_ptr_HybridImageLoaderFactorySpec_ {
    let hybridObject = HybridImageLoaderFactory()
    return { () -> bridge.std__shared_ptr_HybridImageLoaderFactorySpec_ in
      let __cxxWrapped = hybridObject.getCxxWrapper()
      return __cxxWrapped.getCxxPart()
    }()
  }
  
  public static func isImageLoaderFactoryRecyclable() -> Bool {
    return HybridImageLoaderFactory.self is any RecyclableView.Type
  }
  
  public static func createImageUtils() -> bridge.std__shared_ptr_HybridImageUtilsSpec_ {
    let hybridObject = HybridImageUtils()
    return { () -> bridge.std__shared_ptr_HybridImageUtilsSpec_ in
      let __cxxWrapped = hybridObject.getCxxWrapper()
      return __cxxWrapped.getCxxPart()
    }()
  }
  
  public static func isImageUtilsRecyclable() -> Bool {
    return HybridImageUtils.self is any RecyclableView.Type
  }
  
  public static func createNitroImageView() -> bridge.std__shared_ptr_HybridNitroImageViewSpec_ {
    let hybridObject = HybridImageView()
    return { () -> bridge.std__shared_ptr_HybridNitroImageViewSpec_ in
      let __cxxWrapped = hybridObject.getCxxWrapper()
      return __cxxWrapped.getCxxPart()
    }()
  }
  
  public static func isNitroImageViewRecyclable() -> Bool {
    return HybridImageView.self is any RecyclableView.Type
  }
}
