// swift-interface-format-version: 1.0
// swift-compiler-version: Apple Swift version 6.2.3 effective-5.10 (swiftlang-6.2.3.3.21 clang-1700.6.3.2)
// swift-module-flags: -target arm64-apple-ios12.2 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-experimental-feature DebugDescriptionMacro -enable-bare-slash-regex -module-name LunaCamera
// swift-module-flags-ignorable: -no-verify-emitted-module-interface -formal-cxx-interoperability-mode=off -interface-compiler-version 6.2.3
import AVFoundation
import AVKit
import CheckJailBreakDevice
import DeveloperToolsSupport
import Foundation
@_exported import LunaCamera
import LunaCore
import LunaWeb
import Swift
import SwiftUI
import UIKit
import _Concurrency
import _StringProcessing
import _SwiftConcurrencyShims
public enum LMUIOrientation {
  case portrait
  case landscapeLeft
  case landscapeRight
  case upsideDown
  #if compiler(>=5.3) && $NonescapableTypes
  public init?(uiOrientation: UIKit.UIInterfaceOrientation)
  #endif
  public static func == (a: LunaCamera.LMUIOrientation, b: LunaCamera.LMUIOrientation) -> Swift.Bool
  public func hash(into hasher: inout Swift.Hasher)
  public var hashValue: Swift.Int {
    get
  }
}
@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @_Concurrency.MainActor @preconcurrency public class LCRoundButton : UIKit.UIButton {
  @_Concurrency.MainActor @preconcurrency @objc override dynamic public func layoutSubviews()
  @_Concurrency.MainActor @preconcurrency @objc override dynamic public var isEnabled: Swift.Bool {
    @objc get
    @objc set
  }
  @objc deinit
}
public struct LMCameraBuilder {
  #if compiler(>=5.3) && $NonescapableTypes
  public static func viewController(delegate: any LunaCamera.LMCameraDelegate, configuration: LunaCore.LCLunaConfiguration, livenessAPI: any LunaCore.LCOnlineLivenessProtocol, lunaCustomization: LunaCamera.LMCustomization? = nil, canRecordVideo: Swift.Bool = false, interactionSteps: [any LunaCore.LCStepConfigProtocol]? = nil) -> any LunaCamera.LMCameraViewControllerProtocol
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  public static func viewController(delegate: any LunaCamera.LMCameraDelegate, configuration: LunaCore.LCLunaConfiguration, licenseConfig: LunaCore.LCLicenseConfig, livenessAPI: any LunaCore.LCOnlineLivenessProtocol, lunaCustomization: LunaCamera.LMCustomization? = nil, canRecordVideo: Swift.Bool = false, interactionSteps: [any LunaCore.LCStepConfigProtocol]? = nil) -> any LunaCamera.LMCameraViewControllerProtocol
  #endif
}
public protocol LMRootCustomizationViewProtocol : UIKit.UIView {
  func lockUI()
  func unlockUI()
}
@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class LMDefaultRootCustomizationView : UIKit.UIView, LunaCamera.LMRootCustomizationViewProtocol {
  @_Concurrency.MainActor @preconcurrency convenience public init(showCameraButton: Swift.Bool = false)
  @_Concurrency.MainActor @preconcurrency @objc override dynamic public init(frame: CoreFoundation.CGRect)
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor @preconcurrency @objc required dynamic public init?(coder: Foundation.NSCoder)
  #endif
  @_Concurrency.MainActor @preconcurrency public func lockUI()
  @_Concurrency.MainActor @preconcurrency public func unlockUI()
  @objc deinit
}
@objc public protocol LMJailbreakServiceDelegate : ObjectiveC.NSObjectProtocol {
  @objc func deviceJailbroken()
}
@objc public protocol LMJailbreakServiceProtocol : ObjectiveC.NSObjectProtocol {
  @objc func checkJailbreakStatus()
}
@objc public class LMJailbreakService : ObjectiveC.NSObject, LunaCamera.LMJailbreakServiceProtocol, CheckJailBreakDevice.CheckIfDeviceIsJailbroken {
  #if compiler(>=5.3) && $NonescapableTypes
  @objc public init(delegate: (any LunaCamera.LMJailbreakServiceDelegate)?)
  #endif
  public func sendTheStatusOfJailBreak(value: Swift.Bool)
  @objc public func checkJailbreakStatus()
  @objc deinit
}
public protocol LMBestShotServiceDelegate : AnyObject {
  func detectionRect(_ rect: CoreFoundation.CGRect, inFrameSize frameSize: CoreFoundation.CGSize)
  func bestShot(_ bestShot: LunaCore.LCBestShotModel) -> Swift.Bool
  func multipartBestShots(_ bestShots: [LunaCore.LCBestShotModel]) -> Swift.Bool
  func bestShotErrors(_ errors: [any Swift.Error])
  func interactionsFinish(with interactionFrames: [LunaCore.LCInteractionFrameInfo])
  func interactionsStateUpdate(interactionsType: LunaCore.LCInteractionsType, stateUpdate: LunaCore.LCStepState)
}
extension LunaCamera.LMBestShotServiceDelegate {
  public func interactionsFinish(with interactionFrames: [LunaCore.LCInteractionFrameInfo])
}
@objc @_hasMissingDesignatedInitializers final public class LMBestShotService : ObjectiveC.NSObject, LunaCamera.LMBestShotServiceProtocol, LunaCore.LCBestShotDelegate, LunaCamera.LMErrorPresenterDelegate {
  weak final public var delegate: (any LunaCamera.LMBestShotServiceDelegate)?
  final public var detector: any LunaCore.LCBestShotDetectorProtocol {
    get
  }
  final public func pushFrame(buffer sampleBuffer: CoreMedia.CMSampleBuffer)
  final public func pushFrame(image: CoreGraphics.CGImage)
  final public func resume()
  final public func screenSize(_ size: CoreFoundation.CGSize, edges: UIKit.UIEdgeInsets)
  final public func faceFound() -> Swift.Bool
  final public func launchWizard()
  final public func interactionHintDidShow()
  final public func defineStepsList(_ stepsList: [any LunaCore.LCStepConfigProtocol])
  final public func enableVideoRecordWatchDog(faceFoundBlock: @escaping LunaCore.FaceFoundedBlock)
  @objc final public func detectionRect(_ rect: CoreFoundation.CGRect, inFrameSize frameSize: CoreFoundation.CGSize)
  @objc final public func bestShot(_ bestShot: LunaCore.LCBestShotModel) -> Swift.Bool
  @objc final public func multipartBestShots(_ bestShots: [LunaCore.LCBestShotModel]) -> Swift.Bool
  @objc final public func bestShotError(_ error: any Swift.Error)
  @objc final public func interactionsFinish(with interactionFrames: [LunaCore.LCInteractionFrameInfo])
  @objc final public func interactionsStateUpdateCallback(_ interactionType: LunaCore.LCInteractionsType, stateUpdate: LunaCore.LCStepState)
  final public func send(errors: [any Swift.Error])
  @objc deinit
}
@objc public enum CompressionResult : Swift.Int {
  case failed
  case success
  #if compiler(>=5.3) && $NonescapableTypes
  public init?(rawValue: Swift.Int)
  #endif
  public typealias RawValue = Swift.Int
  public var rawValue: Swift.Int {
    get
  }
}
@_inheritsConvenienceInitializers @objc public class LMVideoCompresion : ObjectiveC.NSObject {
  @objc public func compressFile(urlToCompress: Swift.String, outputURL: Swift.String, completion: @escaping (LunaCamera.CompressionResult) -> Swift.Void)
  @objc override dynamic public init()
  @objc deinit
}
@objc public protocol LMVideoRecordWatchDogDataSourceProtocol : ObjectiveC.NSObjectProtocol {
  @objc func launchVideoRecord()
}
@objc public class LMVideoRecordWatchDog : ObjectiveC.NSObject {
  #if compiler(>=5.3) && $NonescapableTypes
  @objc public init(videoService: (any LunaCamera.LMSaveVideoServiceProtocol)? = nil, bestshotDetector: (any LunaCore.LCBestShotDetectorProtocol)? = nil, dataSource: (any LunaCamera.LMVideoRecordWatchDogDataSourceProtocol)? = nil)
  #endif
  @objc deinit
}
extension UIKit.UIColor {
  public static func lunaBlue() -> UIKit.UIColor
  public static func lunaAlto() -> UIKit.UIColor
  public static func lunaGray() -> UIKit.UIColor
  public static func lunaLightGray() -> UIKit.UIColor
  public static func lunaBlack() -> UIKit.UIColor
}
public protocol LMUICustomizerProtocol {
  #if compiler(>=5.3) && $NonescapableTypes
  func faceDetectionFrameView() -> (any LunaCamera.LMFaceDetectionViewProtocol)?
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  func videoStreamNotificationView() -> (any LunaCamera.LMVideoStreamNotificationViewProtocol)?
  #endif
  func rootCustomizationView() -> any LunaCamera.LMRootCustomizationViewProtocol
}
extension LunaCamera.LMUICustomizerProtocol {
  #if compiler(>=5.3) && $NonescapableTypes
  public func faceDetectionFrameView() -> (any LunaCamera.LMFaceDetectionViewProtocol)?
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  public func videoStreamNotificationView() -> (any LunaCamera.LMVideoStreamNotificationViewProtocol)?
  #endif
  public func rootCustomizationView() -> any LunaCamera.LMRootCustomizationViewProtocol
}
public class LMDefaultUICustomizer : LunaCamera.LMUICustomizerProtocol {
  public init(showCameraButton: Swift.Bool = false)
  #if compiler(>=5.3) && $NonescapableTypes
  public func faceDetectionFrameView() -> (any LunaCamera.LMFaceDetectionViewProtocol)?
  #endif
  public func rootCustomizationView() -> any LunaCamera.LMRootCustomizationViewProtocol
  #if compiler(>=5.3) && $NonescapableTypes
  public func videoStreamNotificationView() -> (any LunaCamera.LMVideoStreamNotificationViewProtocol)?
  #endif
  @objc deinit
}
public class LMCustomization {
  public var supportedInterfaceOrientations: LunaCamera.LMUIOrientation
  final public let uiCustomizer: any LunaCamera.LMUICustomizerProtocol
  public init(uiCustomizer: any LunaCamera.LMUICustomizerProtocol)
  @objc deinit
}
public protocol LMCameraViewControllerProtocol : UIKit.UIViewController {
  #if compiler(>=5.3) && $NonescapableTypes
  var delegate: (any LunaCamera.LMCameraDelegate)? { get set }
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  var configuration: LunaCore.LCLunaConfiguration! { get set }
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  var dismissHandler: (() -> Swift.Void)? { get set }
  #endif
}
@_hasMissingDesignatedInitializers final public class LMBestShotServiceBuilder {
  #if compiler(>=5.3) && $NonescapableTypes
  public static func build(delegate: any LunaCamera.LMBestShotServiceDelegate, livenessAPI: (any LunaCore.LCOnlineLivenessProtocol)?, configuration: LunaCore.LCLunaConfiguration, errorLimit: Swift.Int, licenseConfig: LunaCore.LCLicenseConfig, singleFrameMode: Swift.Bool) -> (any LunaCamera.LMBestShotServiceProtocol)?
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  public static func build(delegate: any LunaCamera.LMBestShotServiceDelegate, livenessAPI: (any LunaCore.LCOnlineLivenessProtocol)?, configuration: LunaCore.LCLunaConfiguration, errorLimit: Swift.Int, singleFrameMode: Swift.Bool) -> (any LunaCamera.LMBestShotServiceProtocol)?
  #endif
  @objc deinit
}
public protocol LMErrorPresenterDelegate : AnyObject {
  func send(errors: [any Swift.Error])
}
public protocol LMCameraDelegate : AnyObject {
  #if compiler(>=5.3) && $NonescapableTypes
  func bestShot(_ bestShot: LunaCore.LCBestShotModel, _ videoFile: Swift.String?)
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  func multipartBestShots(_ bestShots: [LunaCore.LCBestShotModel], _ videoFile: Swift.String?)
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  func error(_ error: LunaCamera.LMCameraError, _ videoFile: Swift.String?)
  #endif
  func interactionsFinish(with interactionFrames: [LunaCore.LCInteractionFrameInfo])
  func interactionsStateUpdate(interactionsType: LunaCore.LCInteractionsType, stateUpdate: LunaCore.LCStepState)
}
extension LunaCamera.LMCameraDelegate {
  public func interactionsFinish(with interactionFrames: [LunaCore.LCInteractionFrameInfo])
}
public protocol LMBestShotServiceProtocol {
  #if compiler(>=5.3) && $NonescapableTypes
  var delegate: (any LunaCamera.LMBestShotServiceDelegate)? { get set }
  #endif
  var detector: any LunaCore.LCBestShotDetectorProtocol { get }
  func pushFrame(buffer: CoreMedia.CMSampleBuffer)
  func pushFrame(image: CoreGraphics.CGImage)
  func resume()
  func screenSize(_ size: CoreFoundation.CGSize, edges: UIKit.UIEdgeInsets)
  func faceFound() -> Swift.Bool
  func launchWizard()
  func interactionHintDidShow()
  func defineStepsList(_ stepsList: [any LunaCore.LCStepConfigProtocol])
  func enableVideoRecordWatchDog(faceFoundBlock: @escaping LunaCore.FaceFoundedBlock)
}
extension UIKit.UIFont {
  public static func etelka(_ size: CoreFoundation.CGFloat = 17) -> UIKit.UIFont
}
public enum LMCameraError : Foundation.LocalizedError {
  case accessStatus(AVFoundation.AVAuthorizationStatus)
  case captureDeviceError(Foundation.NSError)
  case networkingError(LunaWeb.NetworkingError)
  case bestShotError(Foundation.NSError)
  case canceled
  case licenseError
  case error(any Swift.Error)
  case deviceOrientationChangedError
  #if compiler(>=5.3) && $NonescapableTypes
  public var errorDescription: Swift.String? {
    get
  }
  #endif
}
public protocol LMFaceDetectionViewProtocol : UIKit.UIView {
  func switchToPositiveState()
  func switchToNegativeState()
}
@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class LMFaceDetectionView : UIKit.UIView, LunaCamera.LMFaceDetectionViewProtocol {
  @_Concurrency.MainActor @preconcurrency public init(positiveDetectionColor: UIKit.UIColor, negativeDetectionColor: UIKit.UIColor)
  @_Concurrency.MainActor @preconcurrency @objc override dynamic public init(frame: CoreFoundation.CGRect)
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor @preconcurrency @objc required dynamic public init?(coder: Foundation.NSCoder)
  #endif
  @_Concurrency.MainActor @preconcurrency public func switchToPositiveState()
  @_Concurrency.MainActor @preconcurrency public func switchToNegativeState()
  @objc deinit
}
public protocol LMVideoStreamNotificationViewProtocol : UIKit.UIView {
  #if compiler(>=5.3) && $NonescapableTypes
  func showNotificationMessage(_ newMessage: (any Swift.Error)?)
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  func notificationMessage() -> (any Swift.Error)?
  #endif
}
@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class LMVideoStreamNotificationView : UIKit.UIView, LunaCamera.LMVideoStreamNotificationViewProtocol {
  @_Concurrency.MainActor @preconcurrency @objc override dynamic public init(frame: CoreFoundation.CGRect)
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor @preconcurrency @objc required dynamic public init?(coder: Foundation.NSCoder)
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor @preconcurrency public func showNotificationMessage(_ newMessage: (any Swift.Error)?)
  #endif
  #if compiler(>=5.3) && $NonescapableTypes
  @_Concurrency.MainActor @preconcurrency public func notificationMessage() -> (any Swift.Error)?
  #endif
  @_Concurrency.MainActor @preconcurrency public func applyFont(_ useFont: UIKit.UIFont)
  @_Concurrency.MainActor @preconcurrency public func applyTextColor(_ color: UIKit.UIColor)
  @objc deinit
}
public enum UIColorInputError : Swift.Error {
  case missingHashMarkAsPrefix, unableToScanHexValue, mismatchedHexStringLength
  public static func == (a: LunaCamera.UIColorInputError, b: LunaCamera.UIColorInputError) -> Swift.Bool
  public func hash(into hasher: inout Swift.Hasher)
  public var hashValue: Swift.Int {
    get
  }
}
extension UIKit.UIColor {
  convenience public init(hex3: Swift.UInt16, alpha: CoreFoundation.CGFloat = 1)
  convenience public init(hex4: Swift.UInt16)
  convenience public init(hex6: Swift.UInt32, alpha: CoreFoundation.CGFloat = 1)
  convenience public init(hex8: Swift.UInt32)
  public func hexString(_ includeAlpha: Swift.Bool = true) -> Swift.String
}
extension LunaCamera.LMUIOrientation : Swift.Equatable {}
extension LunaCamera.LMUIOrientation : Swift.Hashable {}
extension LunaCamera.CompressionResult : Swift.Equatable {}
extension LunaCamera.CompressionResult : Swift.Hashable {}
extension LunaCamera.CompressionResult : Swift.RawRepresentable {}
extension LunaCamera.UIColorInputError : Swift.Equatable {}
extension LunaCamera.UIColorInputError : Swift.Hashable {}
