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

  public static func createViewHolder() -> bridge.std__shared_ptr_HybridViewHolderSpec_ {
    let hybridObject = HybridViewHolder()
    return { () -> bridge.std__shared_ptr_HybridViewHolderSpec_ in
      let __cxxWrapped = hybridObject.getCxxWrapper()
      return __cxxWrapped.getCxxPart()
    }()
  }
  
  public static func isViewHolderRecyclable() -> Bool {
    return HybridViewHolder.self is any RecyclableView.Type
  }
  
  public static func createUiListView() -> bridge.std__shared_ptr_HybridUiListViewSpec_ {
    let hybridObject = HybridUiListView()
    return { () -> bridge.std__shared_ptr_HybridUiListViewSpec_ in
      let __cxxWrapped = hybridObject.getCxxWrapper()
      return __cxxWrapped.getCxxPart()
    }()
  }
  
  public static func isUiListViewRecyclable() -> Bool {
    return HybridUiListView.self is any RecyclableView.Type
  }
  
  public static func createNativeListDataSource() -> bridge.std__shared_ptr_HybridNativeListDataSourceSpec_ {
    let hybridObject = HybridNativeListDataSource()
    return { () -> bridge.std__shared_ptr_HybridNativeListDataSourceSpec_ in
      let __cxxWrapped = hybridObject.getCxxWrapper()
      return __cxxWrapped.getCxxPart()
    }()
  }
  
  public static func isNativeListDataSourceRecyclable() -> Bool {
    return HybridNativeListDataSource.self is any RecyclableView.Type
  }
  
  public static func createNativeListLayout() -> bridge.std__shared_ptr_HybridNativeListLayoutSpec_ {
    let hybridObject = HybridNativeListLayout()
    return { () -> bridge.std__shared_ptr_HybridNativeListLayoutSpec_ in
      let __cxxWrapped = hybridObject.getCxxWrapper()
      return __cxxWrapped.getCxxPart()
    }()
  }
  
  public static func isNativeListLayoutRecyclable() -> Bool {
    return HybridNativeListLayout.self is any RecyclableView.Type
  }
  
  public static func createNativeLinearListLayout() -> bridge.std__shared_ptr_HybridNativeLinearListLayoutSpec_ {
    let hybridObject = HybridNativeLinearListLayout()
    return { () -> bridge.std__shared_ptr_HybridNativeLinearListLayoutSpec_ in
      let __cxxWrapped = hybridObject.getCxxWrapper()
      return __cxxWrapped.getCxxPart()
    }()
  }
  
  public static func isNativeLinearListLayoutRecyclable() -> Bool {
    return HybridNativeLinearListLayout.self is any RecyclableView.Type
  }
  
  public static func createUiListModule() -> bridge.std__shared_ptr_HybridUiListModuleSpec_ {
    let hybridObject = HybridUiListModule()
    return { () -> bridge.std__shared_ptr_HybridUiListModuleSpec_ in
      let __cxxWrapped = hybridObject.getCxxWrapper()
      return __cxxWrapped.getCxxPart()
    }()
  }
  
  public static func isUiListModuleRecyclable() -> Bool {
    return HybridUiListModule.self is any RecyclableView.Type
  }
}
