// swift-interface-format-version: 1.0
// swift-compiler-version: Apple Swift version 6.3.3 effective-5.10 (swiftlang-6.3.3.1.3 clang-2100.1.1.101)
// swift-module-flags: -target arm64-apple-ios15.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -O -enable-experimental-feature DebugDescriptionMacro -enable-bare-slash-regex -module-name RNTurboImagePicker
// swift-module-flags-ignorable: -no-verify-emitted-module-interface -formal-cxx-interoperability-mode=off -interface-compiler-version 6.3.3
import AVFoundation
import CoreImage
import CoreText
import CryptoKit
import DeveloperToolsSupport
import Foundation
import ImageIO
import Photos
import Swift
import SwiftUI
import UIKit
import _Concurrency
import _StringProcessing
import _SwiftConcurrencyShims
@objc @_Concurrency.MainActor @preconcurrency public class GalleryBaseViewController : UIKit.UIViewController {
  @_Concurrency.MainActor @preconcurrency public var onImagesSelected: (([(Photos.PHAsset?, UIKit.UIImage)]) -> Swift.Void)?
  @_Concurrency.MainActor @preconcurrency public var onSelectionChanged: ((Swift.Int, Swift.Int) -> Swift.Void)?
  @_Concurrency.MainActor @preconcurrency public var onSingleImageTappedForEdit: ((Photos.PHAsset, CoreFoundation.CGRect, UIKit.UIImage?) -> Swift.Void)?
  @_Concurrency.MainActor @preconcurrency public var allowsEditing: Swift.Bool
  @_Concurrency.MainActor @preconcurrency public var profileMode: Swift.Bool
  @_Concurrency.MainActor @preconcurrency public var onProfileCropComplete: ((Photos.PHAsset, UIKit.UIImage) -> Swift.Void)?
  @_Concurrency.MainActor @preconcurrency public var editingAsset: Photos.PHAsset?
  @_Concurrency.MainActor @preconcurrency public var profileCropTransitionDelegate: (any UIKit.UIViewControllerTransitioningDelegate)?
  @_Concurrency.MainActor @preconcurrency public var maxSelection: Swift.Int
  @_Concurrency.MainActor @preconcurrency public var forceMultiMode: Swift.Bool
  @_Concurrency.MainActor @preconcurrency @objc dynamic public init()
  @_Concurrency.MainActor @preconcurrency @objc required dynamic public init?(coder: Foundation.NSCoder)
  @_Concurrency.MainActor @preconcurrency public var maxWidth: Swift.Int
  @_Concurrency.MainActor @preconcurrency public var maxHeight: Swift.Int
  @_Concurrency.MainActor @preconcurrency public var outputFormat: Swift.String
  @_Concurrency.MainActor @preconcurrency public var allItemsText: Swift.String
  @_Concurrency.MainActor @preconcurrency public var selectedItemsText: Swift.String
  @_Concurrency.MainActor @preconcurrency public var doneButtonText: Swift.String
  @_Concurrency.MainActor @preconcurrency public var recentsAlbumText: Swift.String
  @_Concurrency.MainActor @preconcurrency public var languageCode: Swift.String {
    get
    set
  }
  @_Concurrency.MainActor @preconcurrency public var themeColorHex: Swift.String?
  @_Concurrency.MainActor @preconcurrency public var parsedThemeColor: UIKit.UIColor {
    get
  }
  @_Concurrency.MainActor @preconcurrency public var allAssets: [Photos.PHAsset] {
    get
  }
  @_Concurrency.MainActor @preconcurrency final public let galleryID: Swift.String
  @_Concurrency.MainActor @preconcurrency public var selectedAssets: [Photos.PHAsset]
  @_Concurrency.MainActor @preconcurrency public var editedImages: [Swift.String : UIKit.UIImage]
  @_Concurrency.MainActor @preconcurrency public var selectedAssetsSet: Swift.Set<Swift.String>
  @_Concurrency.MainActor @preconcurrency public var hiddenAssetId: Swift.String?
  @_Concurrency.MainActor @preconcurrency public var collectionView: UIKit.UICollectionView {
    get
    set
  }
  @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad()
  @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewWillAppear(_ animated: Swift.Bool)
  @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidAppear(_ animated: Swift.Bool)
  @_Concurrency.MainActor @preconcurrency @objc override dynamic public func traitCollectionDidChange(_ previousTraitCollection: UIKit.UITraitCollection?)
  @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewWillDisappear(_ animated: Swift.Bool)
  @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidDisappear(_ animated: Swift.Bool)
  @_Concurrency.MainActor @preconcurrency public func forceCleanupBeforeDismiss()
  @_Concurrency.MainActor @preconcurrency public func refreshThumbnails(for changed: [Photos.PHAsset])
  @_Concurrency.MainActor @preconcurrency public func sendSelectionFromEditor()
  @_Concurrency.MainActor @preconcurrency public var hasReturnedImages: Swift.Bool
  @_Concurrency.MainActor @preconcurrency public func updateNavigationBarForSelection()
  @_Concurrency.MainActor @preconcurrency @objc override dynamic public func didReceiveMemoryWarning()
  @objc deinit
}
@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency final public class GalleryViewController : RNTurboImagePicker.GalleryBaseViewController {
  @_Concurrency.MainActor @preconcurrency final public var customTransitioningDelegate: any UIKit.UIViewControllerTransitioningDelegate {
    get
    set
  }
  @_Concurrency.MainActor @preconcurrency @objc override final public func viewDidLoad()
  @_Concurrency.MainActor @preconcurrency @objc override final public func viewWillAppear(_ animated: Swift.Bool)
  @_Concurrency.MainActor @preconcurrency @objc override final public func traitCollectionDidChange(_ previousTraitCollection: UIKit.UITraitCollection?)
  @_Concurrency.MainActor @preconcurrency @objc override final public func viewDidLayoutSubviews()
  @_Concurrency.MainActor @preconcurrency @objc override final public func viewDidAppear(_ animated: Swift.Bool)
  @_Concurrency.MainActor @preconcurrency @objc override final public func scrollViewDidScroll(_ scrollView: UIKit.UIScrollView)
  @_Concurrency.MainActor @preconcurrency @objc override dynamic public init()
  @_Concurrency.MainActor @preconcurrency @objc required dynamic public init?(coder: Foundation.NSCoder)
  @objc deinit
}
public struct FilterState {
  public var filterId: Swift.String
  public var intensity: CoreFoundation.CGFloat
  public init(filterId: Swift.String, intensity: CoreFoundation.CGFloat)
}
@objc @_Concurrency.MainActor @preconcurrency public class ImageEditorViewController : UIKit.UIViewController {
  @_Concurrency.MainActor @preconcurrency public var languageCode: Swift.String
  @_Concurrency.MainActor @preconcurrency @objc dynamic public init()
  @_Concurrency.MainActor @preconcurrency @objc required dynamic public init?(coder: Foundation.NSCoder)
  @_Concurrency.MainActor @preconcurrency public var allAssets: [Photos.PHAsset]
  @_Concurrency.MainActor @preconcurrency public var standaloneImage: UIKit.UIImage?
  @_Concurrency.MainActor @preconcurrency public var currentIndex: Swift.Int
  @_Concurrency.MainActor @preconcurrency public var filterStates: [Swift.Int : RNTurboImagePicker.FilterState]
  @_Concurrency.MainActor @preconcurrency public var croppedImages: [Swift.Int : UIKit.UIImage]
  @_Concurrency.MainActor @preconcurrency public var singlePhotoMode: Swift.Bool
  @_Concurrency.MainActor @preconcurrency public var disableCrop: Swift.Bool
  @_Concurrency.MainActor @preconcurrency public var selectedAssets: [Photos.PHAsset]
  @_Concurrency.MainActor @preconcurrency public var onSelectionToggled: ((Photos.PHAsset, Swift.Bool) -> Swift.Void)?
  @_Concurrency.MainActor @preconcurrency public var replaceSelectionWhenFull: Swift.Bool
  @_Concurrency.MainActor @preconcurrency public var onEditDeleted: ((Photos.PHAsset) -> Swift.Void)?
  @_Concurrency.MainActor @preconcurrency public var onConfirm: ((Photos.PHAsset?, UIKit.UIImage?, RNTurboImagePicker.FilterState, Swift.String) -> Swift.Void)?
  @_Concurrency.MainActor @preconcurrency public var onConfirmMulti: (([Photos.PHAsset], [Photos.PHAsset : UIKit.UIImage], [Photos.PHAsset : RNTurboImagePicker.FilterState]) -> Swift.Void)?
  @_Concurrency.MainActor @preconcurrency public var onSendMulti: (([Photos.PHAsset], [Photos.PHAsset : UIKit.UIImage], [Photos.PHAsset : RNTurboImagePicker.FilterState]) -> Swift.Void)?
  @_Concurrency.MainActor @preconcurrency public var onCancel: (() -> Swift.Void)?
  @_Concurrency.MainActor @preconcurrency public var themeColor: UIKit.UIColor?
  @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad()
  @_Concurrency.MainActor @preconcurrency @objc override dynamic public func traitCollectionDidChange(_ previousTraitCollection: UIKit.UITraitCollection?)
  @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLayoutSubviews()
  @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewWillDisappear(_ animated: Swift.Bool)
  @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidDisappear(_ animated: Swift.Bool)
  @objc deinit
}
extension RNTurboImagePicker.ImageEditorViewController : UIKit.UIGestureRecognizerDelegate {
  @_Concurrency.MainActor @preconcurrency @objc dynamic public func gestureRecognizerShouldBegin(_ gestureRecognizer: UIKit.UIGestureRecognizer) -> Swift.Bool
  @_Concurrency.MainActor @preconcurrency @objc dynamic public func gestureRecognizer(_ gestureRecognizer: UIKit.UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIKit.UIGestureRecognizer) -> Swift.Bool
}
extension RNTurboImagePicker.ImageEditorViewController : UIKit.UICollectionViewDataSource {
  @_Concurrency.MainActor @preconcurrency @objc dynamic public func collectionView(_ cv: UIKit.UICollectionView, numberOfItemsInSection section: Swift.Int) -> Swift.Int
  @_Concurrency.MainActor @preconcurrency @objc dynamic public func collectionView(_ cv: UIKit.UICollectionView, cellForItemAt indexPath: Foundation.IndexPath) -> UIKit.UICollectionViewCell
}
extension RNTurboImagePicker.ImageEditorViewController : UIKit.UICollectionViewDelegate, UIKit.UICollectionViewDelegateFlowLayout {
  @_Concurrency.MainActor @preconcurrency @objc dynamic public func collectionView(_ collectionView: UIKit.UICollectionView, didSelectItemAt indexPath: Foundation.IndexPath)
  @_Concurrency.MainActor @preconcurrency @objc dynamic public func collectionView(_ cv: UIKit.UICollectionView, layout collectionViewLayout: UIKit.UICollectionViewLayout, sizeForItemAt indexPath: Foundation.IndexPath) -> CoreFoundation.CGSize
}
extension RNTurboImagePicker.ImageEditorViewController {
  @_Concurrency.MainActor @preconcurrency @objc dynamic public func scrollViewDidEndDecelerating(_ scrollView: UIKit.UIScrollView)
  @_Concurrency.MainActor @preconcurrency @objc dynamic public func scrollViewDidEndDragging(_ scrollView: UIKit.UIScrollView, willDecelerate decelerate: Swift.Bool)
  @_Concurrency.MainActor @preconcurrency @objc dynamic public func scrollViewDidEndScrollingAnimation(_ scrollView: UIKit.UIScrollView)
}
extension RNTurboImagePicker.ImageEditorViewController : UIKit.UICollectionViewDataSourcePrefetching {
  @_Concurrency.MainActor @preconcurrency @objc dynamic public func collectionView(_ cv: UIKit.UICollectionView, prefetchItemsAt indexPaths: [Foundation.IndexPath])
  @_Concurrency.MainActor @preconcurrency @objc dynamic public func collectionView(_ cv: UIKit.UICollectionView, cancelPrefetchingForItemsAt indexPaths: [Foundation.IndexPath])
}
public struct Album {
  public let collection: Photos.PHAssetCollection
  public let title: Swift.String
  public let count: Swift.Int
  public var identifier: Swift.String {
    get
  }
  public var isRecents: Swift.Bool {
    get
  }
}
@_hasMissingDesignatedInitializers public class PhotoManager {
  public var languageCode: Swift.String
  public static let shared: RNTurboImagePicker.PhotoManager
  public func resetCachingManager()
  public func fetchAlbums(completion: @escaping ([RNTurboImagePicker.Album]) -> Swift.Void)
  public func fetchInitialPhotos(from album: RNTurboImagePicker.Album? = nil, completion: @escaping ([Photos.PHAsset]) -> Swift.Void)
  public func fetchAllPhotosMetadata(from album: RNTurboImagePicker.Album? = nil, skip: Swift.Int = 0, completion: @escaping ([Photos.PHAsset]) -> Swift.Void)
  public func fetchInitialPhotos(completion: @escaping ([Photos.PHAsset]) -> Swift.Void)
  public func fetchAllPhotosMetadata(skip: Swift.Int = 0, completion: @escaping ([Photos.PHAsset]) -> Swift.Void)
  public func fetchAllPhotos(completion: @escaping ([Photos.PHAsset]) -> Swift.Void)
  public var thumbnailImageManager: Photos.PHImageManager {
    get
  }
  public func requestThumbnail(for asset: Photos.PHAsset, targetSize: CoreFoundation.CGSize, completion: @escaping (UIKit.UIImage?) -> Swift.Void) -> Photos.PHImageRequestID
  public func requestFullImage(for asset: Photos.PHAsset, targetSize: CoreFoundation.CGSize, progressHandler: ((Swift.Double) -> Swift.Void)? = nil, completion: @escaping (UIKit.UIImage?) -> Swift.Void) -> Photos.PHImageRequestID
  public func startCachingImages(for assets: [Photos.PHAsset], targetSize: CoreFoundation.CGSize)
  public func stopCachingImages(for assets: [Photos.PHAsset], targetSize: CoreFoundation.CGSize)
  public func stopCachingAllImages()
  @objc deinit
}
public struct ImageFilter {
  public let id: Swift.String
  public let name: Swift.String
  public let apply: (CoreImage.CIImage, CoreFoundation.CGFloat) -> CoreImage.CIImage?
}
@_hasMissingDesignatedInitializers public class FilterManager {
  public static let shared: RNTurboImagePicker.FilterManager
  final public let context: CoreImage.CIContext
  final public let filters: [RNTurboImagePicker.ImageFilter]
  @objc deinit
}
extension RNTurboImagePicker.GalleryBaseViewController : UIKit.UICollectionViewDataSource {
  @_Concurrency.MainActor @preconcurrency @objc dynamic public func collectionView(_ collectionView: UIKit.UICollectionView, numberOfItemsInSection section: Swift.Int) -> Swift.Int
  @_Concurrency.MainActor @preconcurrency @objc dynamic public func collectionView(_ collectionView: UIKit.UICollectionView, cellForItemAt indexPath: Foundation.IndexPath) -> UIKit.UICollectionViewCell
}
extension RNTurboImagePicker.GalleryBaseViewController : UIKit.UICollectionViewDelegate, UIKit.UICollectionViewDelegateFlowLayout {
  @_Concurrency.MainActor @preconcurrency @objc dynamic public func collectionView(_ collectionView: UIKit.UICollectionView, didSelectItemAt indexPath: Foundation.IndexPath)
  @_Concurrency.MainActor @preconcurrency public func refreshSelectionAfterEdit()
  @_Concurrency.MainActor @preconcurrency public func updateSelectedCellNumbers()
  @_Concurrency.MainActor @preconcurrency public func notifySelectionChanged()
  @_Concurrency.MainActor @preconcurrency public func setHiddenAsset(_ asset: Photos.PHAsset?, scrollIntoView: Swift.Bool = false)
  @_Concurrency.MainActor @preconcurrency public func frameForAsset(_ asset: Photos.PHAsset) -> CoreFoundation.CGRect?
  @_Concurrency.MainActor @preconcurrency @objc dynamic public func scrollViewDidScroll(_ scrollView: UIKit.UIScrollView)
  @_Concurrency.MainActor @preconcurrency @objc dynamic public func scrollViewDidEndDragging(_ scrollView: UIKit.UIScrollView, willDecelerate decelerate: Swift.Bool)
  @_Concurrency.MainActor @preconcurrency @objc dynamic public func scrollViewDidEndDecelerating(_ scrollView: UIKit.UIScrollView)
  @_Concurrency.MainActor @preconcurrency @objc dynamic public func collectionView(_ collectionView: UIKit.UICollectionView, layout collectionViewLayout: UIKit.UICollectionViewLayout, sizeForItemAt indexPath: Foundation.IndexPath) -> CoreFoundation.CGSize
  @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLayoutSubviews()
  @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewWillTransition(to size: CoreFoundation.CGSize, with coordinator: any UIKit.UIViewControllerTransitionCoordinator)
}
@available(iOS 15.0, *)
extension RNTurboImagePicker.GalleryBaseViewController : UIKit.UISheetPresentationControllerDelegate {
  @_Concurrency.MainActor @preconcurrency @objc dynamic public func sheetPresentationControllerDidChangeSelectedDetentIdentifier(_ sheetPresentationController: UIKit.UISheetPresentationController)
}
extension RNTurboImagePicker.GalleryBaseViewController : UIKit.UICollectionViewDataSourcePrefetching {
  @_Concurrency.MainActor @preconcurrency @objc dynamic public func collectionView(_ collectionView: UIKit.UICollectionView, prefetchItemsAt indexPaths: [Foundation.IndexPath])
  @_Concurrency.MainActor @preconcurrency @objc dynamic public func collectionView(_ collectionView: UIKit.UICollectionView, cancelPrefetchingForItemsAt indexPaths: [Foundation.IndexPath])
}
extension RNTurboImagePicker.GalleryBaseViewController : RNTurboImagePicker.TelegramGalleryLayoutDelegate {
  @_Concurrency.MainActor @preconcurrency public func isCameraCell(at indexPath: Foundation.IndexPath) -> Swift.Bool
}
public protocol TelegramGalleryLayoutDelegate : AnyObject {
  func isCameraCell(at indexPath: Foundation.IndexPath) -> Swift.Bool
}
@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class TelegramGalleryLayout : UIKit.UICollectionViewLayout {
  @_Concurrency.MainActor @preconcurrency weak public var delegate: (any RNTurboImagePicker.TelegramGalleryLayoutDelegate)?
  @_Concurrency.MainActor @preconcurrency public var numberOfColumns: Swift.Int
  @_Concurrency.MainActor @preconcurrency public var cellPadding: CoreFoundation.CGFloat
  @_Concurrency.MainActor @preconcurrency @objc override dynamic public func prepare()
  @_Concurrency.MainActor @preconcurrency @objc override dynamic public var collectionViewContentSize: CoreFoundation.CGSize {
    @objc get
  }
  @_Concurrency.MainActor @preconcurrency @objc override dynamic public func layoutAttributesForElements(in rect: CoreFoundation.CGRect) -> [UIKit.UICollectionViewLayoutAttributes]?
  @_Concurrency.MainActor @preconcurrency @objc override dynamic public func layoutAttributesForItem(at indexPath: Foundation.IndexPath) -> UIKit.UICollectionViewLayoutAttributes?
  @_Concurrency.MainActor @preconcurrency @objc override dynamic public func shouldInvalidateLayout(forBoundsChange newBounds: CoreFoundation.CGRect) -> Swift.Bool
  @_Concurrency.MainActor @preconcurrency @objc override dynamic public func invalidateLayout()
  @_Concurrency.MainActor @preconcurrency @objc override dynamic public init()
  @_Concurrency.MainActor @preconcurrency @objc required dynamic public init?(coder: Foundation.NSCoder)
  @objc deinit
}
extension RNTurboImagePicker.GalleryBaseViewController : UIKit.UIImagePickerControllerDelegate, UIKit.UINavigationControllerDelegate {
  @_Concurrency.MainActor @preconcurrency @objc dynamic public func imagePickerController(_ picker: UIKit.UIImagePickerController, didFinishPickingMediaWithInfo info: [UIKit.UIImagePickerController.InfoKey : Any])
  @_Concurrency.MainActor @preconcurrency @objc dynamic public func imagePickerControllerDidCancel(_ picker: UIKit.UIImagePickerController)
}
extension RNTurboImagePicker.GalleryBaseViewController : UIKit.UIAdaptivePresentationControllerDelegate {
  @_Concurrency.MainActor @preconcurrency @objc dynamic public func presentationControllerDidDismiss(_ presentationController: UIKit.UIPresentationController)
}
@_hasMissingDesignatedInitializers public class LicenseManager {
  public static let shared: RNTurboImagePicker.LicenseManager
  public func initialize(with key: Swift.String) -> Swift.Bool
  public func isValidLicense() -> Swift.Bool
  @objc deinit
}
@_hasMissingDesignatedInitializers public class ViewerImageCache {
  public static let shared: RNTurboImagePicker.ViewerImageCache
  public func hasCache(for url: Swift.String) -> Swift.Bool
  public func getMemoryImage(for url: Swift.String) -> UIKit.UIImage?
  public func getDiskImageSynchronously(for url: Swift.String) -> UIKit.UIImage?
  public func setMemoryImage(_ image: UIKit.UIImage, for url: Swift.String)
  public func saveImage(_ image: UIKit.UIImage, for url: Swift.String)
  @objc deinit
}
@objc @_hasMissingDesignatedInitializers @_Concurrency.MainActor @preconcurrency public class RemoteImageViewerViewController : UIKit.UIViewController {
  @_Concurrency.MainActor @preconcurrency public var onPageChanged: ((Swift.Int) -> Swift.Void)?
  @_Concurrency.MainActor @preconcurrency public var prefersPlaceholderThumbnails: Swift.Bool
  @_Concurrency.MainActor @preconcurrency public var hasMoreItems: Swift.Bool {
    get
    set
  }
  @_Concurrency.MainActor @preconcurrency public var titleProvider: ((Swift.Int) -> Swift.String?)?
  @_Concurrency.MainActor @preconcurrency public var deleteOptionsProvider: ((Swift.Int) -> [RNTurboImagePicker.RemoteImageViewerViewController.DeleteOption])?
  @_Concurrency.MainActor @preconcurrency public var singleItemActionsOnly: Swift.Bool
  @_Concurrency.MainActor @preconcurrency public var suppressGroupDeleteMessage: Swift.Bool
  @_Concurrency.MainActor @preconcurrency public var onViewerWillClose: (() -> Swift.Void)?
  @_Concurrency.MainActor @preconcurrency public var themeColor: UIKit.UIColor
  @_Concurrency.MainActor @preconcurrency public var languageCode: Swift.String
  @_Concurrency.MainActor @preconcurrency public var viewerTitle: Swift.String?
  @_Concurrency.MainActor @preconcurrency public var placeholderImages: [Swift.String]?
  @_Concurrency.MainActor @preconcurrency public var cacheFiles: [Swift.String]?
  @_Concurrency.MainActor @preconcurrency public var showActionButtons: Swift.Bool
  @_Concurrency.MainActor @preconcurrency public var saveAllText: Swift.String?
  @_Concurrency.MainActor @preconcurrency public var saveOneText: Swift.String?
  @_Concurrency.MainActor @preconcurrency public var shareAllText: Swift.String?
  @_Concurrency.MainActor @preconcurrency public var shareOneText: Swift.String?
  @_Concurrency.MainActor @preconcurrency public var actionCancelText: Swift.String?
  @_Concurrency.MainActor @preconcurrency public var deleteConfirmTitle: Swift.String?
  @_Concurrency.MainActor @preconcurrency public var deleteConfirmMessage: Swift.String?
  @_Concurrency.MainActor @preconcurrency public var deleteConfirmGroupMessage: Swift.String?
  @_Concurrency.MainActor @preconcurrency public var deleteButtonText: Swift.String?
  public struct DeleteOption {
    public let key: Swift.String
    public let label: Swift.String
    public let destructive: Swift.Bool
    public init(key: Swift.String, label: Swift.String, destructive: Swift.Bool)
  }
  @_Concurrency.MainActor @preconcurrency public var deleteOptions: [RNTurboImagePicker.RemoteImageViewerViewController.DeleteOption]
  @_Concurrency.MainActor @preconcurrency public var onImageDeleted: ((Swift.Int, Swift.String, Swift.String?) -> Swift.Void)?
  @_Concurrency.MainActor @preconcurrency public var onWillDismissForDelete: (() -> Swift.Void)?
  @_Concurrency.MainActor @preconcurrency public func appendImages(urls: [Swift.String], placeholders: [Swift.String]?, cacheFiles newCacheFiles: [Swift.String]?)
  @_Concurrency.MainActor @preconcurrency public static func isImageCached(for urlString: Swift.String) -> Swift.Bool
  @_Concurrency.MainActor @preconcurrency public static func prefetchImage(from urlString: Swift.String, completion: @escaping (UIKit.UIImage?) -> Swift.Void)
  @_Concurrency.MainActor @preconcurrency public init(imageUrls: [Swift.String], initialIndex: Swift.Int)
  @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad()
  @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLayoutSubviews()
  @objc deinit
}
extension RNTurboImagePicker.RemoteImageViewerViewController : UIKit.UIGestureRecognizerDelegate {
  @_Concurrency.MainActor @preconcurrency @objc dynamic public func gestureRecognizerShouldBegin(_ gestureRecognizer: UIKit.UIGestureRecognizer) -> Swift.Bool
  @_Concurrency.MainActor @preconcurrency @objc dynamic public func gestureRecognizer(_ gestureRecognizer: UIKit.UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIKit.UIGestureRecognizer) -> Swift.Bool
}
extension RNTurboImagePicker.RemoteImageViewerViewController : UIKit.UIScrollViewDelegate {
  @_Concurrency.MainActor @preconcurrency @objc dynamic public func scrollViewDidScroll(_ scrollView: UIKit.UIScrollView)
  @_Concurrency.MainActor @preconcurrency @objc dynamic public func scrollViewDidEndDecelerating(_ scrollView: UIKit.UIScrollView)
}
extension RNTurboImagePicker.RemoteImageViewerViewController : UIKit.UICollectionViewDataSource, UIKit.UICollectionViewDelegate {
  @_Concurrency.MainActor @preconcurrency @objc dynamic public func collectionView(_ collectionView: UIKit.UICollectionView, numberOfItemsInSection section: Swift.Int) -> Swift.Int
  @_Concurrency.MainActor @preconcurrency @objc dynamic public func collectionView(_ collectionView: UIKit.UICollectionView, cellForItemAt indexPath: Foundation.IndexPath) -> UIKit.UICollectionViewCell
  @_Concurrency.MainActor @preconcurrency @objc dynamic public func collectionView(_ collectionView: UIKit.UICollectionView, didSelectItemAt indexPath: Foundation.IndexPath)
}
public struct Localizer {
  public static let supportedLanguageCodes: [Swift.String]
  public static func normalize(_ languageCode: Swift.String) -> Swift.String
  public static func getString(key: Swift.String, languageCode: Swift.String) -> Swift.String
}
public struct MediaGalleryItem {
  public let id: Swift.String
  public let groupId: Swift.String
  public let timestamp: Swift.Double
  public let thumbUri: Swift.String?
  public let imageUri: Swift.String
  public let cacheFile: Swift.String?
  public let isMine: Swift.Bool
  public let width: Swift.Int?
  public let height: Swift.Int?
  public init(id: Swift.String, groupId: Swift.String, timestamp: Swift.Double, thumbUri: Swift.String?, imageUri: Swift.String, cacheFile: Swift.String? = nil, isMine: Swift.Bool = false, width: Swift.Int? = nil, height: Swift.Int? = nil)
  public init?(dictionary d: [Swift.String : Any])
  public func toDictionary() -> [Swift.String : Any]
  public var localThumbPath: Swift.String? {
    get
  }
}
public struct MediaGalleryPage {
  public let items: [RNTurboImagePicker.MediaGalleryItem]
  public let nextCursor: Swift.String?
  public let hasMore: Swift.Bool
  public init(items: [RNTurboImagePicker.MediaGalleryItem], nextCursor: Swift.String?, hasMore: Swift.Bool)
}
public protocol MediaGalleryDataSource : AnyObject {
  func loadPage(params: [Swift.String : Any], cursor: Swift.String?, limit: Swift.Int, completion: @escaping (RNTurboImagePicker.MediaGalleryPage) -> Swift.Void)
}
public enum MediaGalleryRegistry {
  public static func register(_ name: Swift.String, _ source: any RNTurboImagePicker.MediaGalleryDataSource)
  public static func unregister(_ name: Swift.String)
  public static func source(named name: Swift.String) -> (any RNTurboImagePicker.MediaGalleryDataSource)?
}
public protocol MediaGalleryStoreObserver : AnyObject {
  func mediaGalleryStore(_ store: RNTurboImagePicker.MediaGalleryStore, didAppend range: Swift.Range<Swift.Int>)
  func mediaGalleryStore(_ store: RNTurboImagePicker.MediaGalleryStore, didRemoveAt indices: [Swift.Int], items: [RNTurboImagePicker.MediaGalleryItem])
  func mediaGalleryStoreDidChangeState(_ store: RNTurboImagePicker.MediaGalleryStore)
}
final public class MediaGalleryStore {
  public enum Source {
    case native(any RNTurboImagePicker.MediaGalleryDataSource, params: [Swift.String : Any])
    case javascript
  }
  public static let firstPageLimit: Swift.Int
  public static let nextPageLimit: Swift.Int
  final public let galleryId: Swift.String
  final public var items: [RNTurboImagePicker.MediaGalleryItem] {
    get
  }
  final public var hasMore: Swift.Bool {
    get
  }
  final public var isLoading: Swift.Bool {
    get
  }
  final public var didLoadFirstPage: Swift.Bool {
    get
  }
  final public var isClosed: Swift.Bool {
    get
  }
  final public var onNeedPage: ((Swift.String?) -> Swift.Void)?
  public init(galleryId: Swift.String, source: RNTurboImagePicker.MediaGalleryStore.Source, initialItems: [RNTurboImagePicker.MediaGalleryItem] = [], nextCursor: Swift.String? = nil, hasMore: Swift.Bool = true)
  final public var count: Swift.Int {
    get
  }
  final public func item(at index: Swift.Int) -> RNTurboImagePicker.MediaGalleryItem?
  final public func index(ofId id: Swift.String) -> Swift.Int?
  final public func addObserver(_ observer: any RNTurboImagePicker.MediaGalleryStoreObserver)
  final public func removeObserver(_ observer: any RNTurboImagePicker.MediaGalleryStoreObserver)
  final public func requestNextPage()
  final public func appendExternal(_ page: RNTurboImagePicker.MediaGalleryPage)
  @discardableResult
  final public func removeGroups(_ groupIds: Swift.Set<Swift.String>) -> [Swift.Int]
  final public func close()
  @objc deinit
}
final public class MediaGalleryDemoDataSource : RNTurboImagePicker.MediaGalleryDataSource {
  public static let name: Swift.String
  public init()
  final public func loadPage(params: [Swift.String : Any], cursor: Swift.String?, limit: Swift.Int, completion: @escaping (RNTurboImagePicker.MediaGalleryPage) -> Swift.Void)
  @objc deinit
}
public struct MediaGalleryTheme {
  public var isDark: Swift.Bool
  public var screenBg: UIKit.UIColor?
  public var cellBg: UIKit.UIColor?
  public var skeleton: UIKit.UIColor?
  public var titleColor: UIKit.UIColor?
  public var subTextColor: UIKit.UIColor?
  public init(isDark: Swift.Bool)
}
public struct MediaGalleryConfig {
  public var galleryId: Swift.String
  public var title: Swift.String
  public var columns: Swift.Int
  public var spacing: CoreFoundation.CGFloat
  public var theme: RNTurboImagePicker.MediaGalleryTheme
  public var languageCode: Swift.String
  public var emptyTitle: Swift.String
  public var emptySubtitle: Swift.String
  public var countMoreFormat: Swift.String
  public var viewerOptions: [Swift.String : Any]
  public init(dictionary o: [Swift.String : Any])
}
public enum MediaGalleryColor {
  public static func parse(_ string: Swift.String?) -> UIKit.UIColor?
}
@objc @_hasMissingDesignatedInitializers @_Concurrency.MainActor @preconcurrency final public class MediaGalleryViewController : UIKit.UIViewController {
  @_Concurrency.MainActor @preconcurrency final public let store: RNTurboImagePicker.MediaGalleryStore
  @_Concurrency.MainActor @preconcurrency final public let config: RNTurboImagePicker.MediaGalleryConfig
  @_Concurrency.MainActor @preconcurrency final public var onClosed: (() -> Swift.Void)?
  @_Concurrency.MainActor @preconcurrency final public var onItemDeleted: ((RNTurboImagePicker.MediaGalleryItem, Swift.String?) -> Swift.Void)?
  @_Concurrency.MainActor @preconcurrency final public var customTransitioningDelegate: any UIKit.UIViewControllerTransitioningDelegate {
    get
    set
  }
  @_Concurrency.MainActor @preconcurrency public init(store: RNTurboImagePicker.MediaGalleryStore, config: RNTurboImagePicker.MediaGalleryConfig)
  @objc deinit
  @_Concurrency.MainActor @preconcurrency final public func makePresentableController() -> UIKit.UINavigationController
  @_Concurrency.MainActor @preconcurrency @objc override final public var supportedInterfaceOrientations: UIKit.UIInterfaceOrientationMask {
    @objc get
  }
  @_Concurrency.MainActor @preconcurrency @objc override final public func viewDidLoad()
  @_Concurrency.MainActor @preconcurrency @objc override final public func viewWillAppear(_ animated: Swift.Bool)
  @_Concurrency.MainActor @preconcurrency @objc override final public func viewDidAppear(_ animated: Swift.Bool)
  @_Concurrency.MainActor @preconcurrency @objc override final public func viewDidLayoutSubviews()
  @_Concurrency.MainActor @preconcurrency @objc override final public func viewDidDisappear(_ animated: Swift.Bool)
  @_Concurrency.MainActor @preconcurrency final public func scrollItemIntoViewIfNeeded(_ index: Swift.Int)
}
extension RNTurboImagePicker.MediaGalleryViewController : RNTurboImagePicker.MediaGalleryStoreObserver {
  @_Concurrency.MainActor @preconcurrency final public func mediaGalleryStore(_ store: RNTurboImagePicker.MediaGalleryStore, didAppend range: Swift.Range<Swift.Int>)
  @_Concurrency.MainActor @preconcurrency final public func mediaGalleryStore(_ store: RNTurboImagePicker.MediaGalleryStore, didRemoveAt indices: [Swift.Int], items: [RNTurboImagePicker.MediaGalleryItem])
  @_Concurrency.MainActor @preconcurrency final public func mediaGalleryStoreDidChangeState(_ store: RNTurboImagePicker.MediaGalleryStore)
}
extension RNTurboImagePicker.MediaGalleryViewController : UIKit.UICollectionViewDataSource, UIKit.UICollectionViewDelegate, UIKit.UICollectionViewDataSourcePrefetching {
  @_Concurrency.MainActor @preconcurrency @objc final public func collectionView(_ collectionView: UIKit.UICollectionView, numberOfItemsInSection section: Swift.Int) -> Swift.Int
  @_Concurrency.MainActor @preconcurrency @objc final public func collectionView(_ collectionView: UIKit.UICollectionView, cellForItemAt indexPath: Foundation.IndexPath) -> UIKit.UICollectionViewCell
  @_Concurrency.MainActor @preconcurrency @objc final public func collectionView(_ collectionView: UIKit.UICollectionView, didEndDisplaying cell: UIKit.UICollectionViewCell, forItemAt indexPath: Foundation.IndexPath)
  @_Concurrency.MainActor @preconcurrency @objc final public func collectionView(_ collectionView: UIKit.UICollectionView, shouldHighlightItemAt indexPath: Foundation.IndexPath) -> Swift.Bool
  @_Concurrency.MainActor @preconcurrency @objc final public func collectionView(_ collectionView: UIKit.UICollectionView, didSelectItemAt indexPath: Foundation.IndexPath)
  @_Concurrency.MainActor @preconcurrency @objc final public func collectionView(_ collectionView: UIKit.UICollectionView, prefetchItemsAt indexPaths: [Foundation.IndexPath])
  @_Concurrency.MainActor @preconcurrency @objc final public func collectionView(_ collectionView: UIKit.UICollectionView, cancelPrefetchingForItemsAt indexPaths: [Foundation.IndexPath])
  @_Concurrency.MainActor @preconcurrency @objc final public func scrollViewDidScroll(_ scrollView: UIKit.UIScrollView)
  @_Concurrency.MainActor @preconcurrency @objc final public func scrollViewWillBeginDragging(_ scrollView: UIKit.UIScrollView)
  @_Concurrency.MainActor @preconcurrency @objc final public func scrollViewDidEndDecelerating(_ scrollView: UIKit.UIScrollView)
  @_Concurrency.MainActor @preconcurrency @objc final public func scrollViewDidEndDragging(_ scrollView: UIKit.UIScrollView, willDecelerate decelerate: Swift.Bool)
}
@_hasMissingDesignatedInitializers public class ImageProcessor {
  public static let shared: RNTurboImagePicker.ImageProcessor
  public func applyWatermarkIfNeeded(_ image: UIKit.UIImage) -> UIKit.UIImage
  public func applyEvaluationWatermark(to image: UIKit.UIImage) -> UIKit.UIImage
  @objc deinit
}
@_inheritsConvenienceInitializers @objc @_Concurrency.MainActor @preconcurrency public class ImageEditorTransitionDelegate : ObjectiveC.NSObject, UIKit.UIViewControllerTransitioningDelegate {
  @_Concurrency.MainActor @preconcurrency public var sourceFrame: CoreFoundation.CGRect
  @_Concurrency.MainActor @preconcurrency public var sourceImage: UIKit.UIImage?
  @_Concurrency.MainActor @preconcurrency public var uncroppedImage: UIKit.UIImage?
  @_Concurrency.MainActor @preconcurrency public var assetAspectRatio: CoreFoundation.CGFloat
  @_Concurrency.MainActor @preconcurrency public var asset: Photos.PHAsset?
  @_Concurrency.MainActor @preconcurrency public var frameProvider: ((Photos.PHAsset) -> CoreFoundation.CGRect?)?
  @_Concurrency.MainActor @preconcurrency public var disablePresentationAnimation: Swift.Bool
  @_Concurrency.MainActor @preconcurrency public var onCurrentAssetChanged: ((Photos.PHAsset) -> Swift.Void)?
  @_Concurrency.MainActor @preconcurrency public var onEditorClosed: (() -> Swift.Void)?
  @_Concurrency.MainActor @preconcurrency public var openDuration: Swift.Double
  @_Concurrency.MainActor @preconcurrency public var closeDuration: Swift.Double
  @_Concurrency.MainActor @preconcurrency @objc override dynamic public init()
  @_Concurrency.MainActor @preconcurrency @objc public func animationController(forPresented presented: UIKit.UIViewController, presenting: UIKit.UIViewController, source: UIKit.UIViewController) -> (any UIKit.UIViewControllerAnimatedTransitioning)?
  @_Concurrency.MainActor @preconcurrency @objc public func animationController(forDismissed dismissed: UIKit.UIViewController) -> (any UIKit.UIViewControllerAnimatedTransitioning)?
  @objc deinit
}
@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class ZoomTransitionAnimator : ObjectiveC.NSObject, UIKit.UIViewControllerAnimatedTransitioning {
  @_Concurrency.MainActor @preconcurrency public var isPresenting: Swift.Bool
  @_Concurrency.MainActor @preconcurrency public var sourceRect: CoreFoundation.CGRect
  @_Concurrency.MainActor @preconcurrency public var sourceImage: UIKit.UIImage?
  @_Concurrency.MainActor @preconcurrency public var imageAspectRatio: CoreFoundation.CGFloat?
  @_Concurrency.MainActor @preconcurrency public var animationType: Swift.String
  @_Concurrency.MainActor @preconcurrency public var closeAnimationType: Swift.String?
  @_Concurrency.MainActor @preconcurrency public var sourceBorderRadius: CoreFoundation.CGFloat
  @_Concurrency.MainActor @preconcurrency public var sourceBorderCorners: QuartzCore.CACornerMask
  @_Concurrency.MainActor @preconcurrency public var sourceBackgroundColor: UIKit.UIColor
  @_Concurrency.MainActor @preconcurrency public var fadeOutOnDismiss: Swift.Bool
  @_Concurrency.MainActor @preconcurrency public func updateMaskView()
  @_Concurrency.MainActor @preconcurrency public var openDuration: Swift.Double
  @_Concurrency.MainActor @preconcurrency public var closeDuration: Swift.Double
  @_Concurrency.MainActor @preconcurrency @objc public func transitionDuration(using transitionContext: (any UIKit.UIViewControllerContextTransitioning)?) -> Foundation.TimeInterval
  @_Concurrency.MainActor @preconcurrency @objc public func animateTransition(using transitionContext: any UIKit.UIViewControllerContextTransitioning)
  @_Concurrency.MainActor @preconcurrency @objc override dynamic public init()
  @objc deinit
}
extension RNTurboImagePicker.ImageEditorTransitionDelegate : Swift.Sendable {}
extension RNTurboImagePicker.ZoomTransitionAnimator : Swift.Sendable {}
