// swift-interface-format-version: 1.0
// swift-compiler-version: Apple Swift version 5.5.2 (swiftlang-1300.0.47.5 clang-1300.0.29.30)
// swift-module-flags: -target arm64-apple-ios10.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name BrazeKit
import CommonCrypto
import CoreTelephony
import Dispatch
import Foundation
import Swift
import SystemConfiguration
import UIKit
import UserNotifications
import WebKit
import _Concurrency
import os.log
import os
extension BrazeKit.Braze {
  final public func logCustomEvent(name: Swift.String, properties: [Swift.String : Any]? = nil, fileID: Swift.StaticString = #fileID, line: Swift.UInt = #line)
  final public func logPurchase(productId: Swift.String, currency: Swift.String, price: Swift.Double, quantity: Swift.Int = 1, properties: [Swift.String : Any]? = nil, fileID: Swift.StaticString = #fileID, line: Swift.UInt = #line)
  final public func logFeedDisplayed()
  final public func changeUser(userId: Swift.String, sdkAuthSignature: Swift.String? = nil, fileID: Swift.StaticString = #fileID, line: Swift.UInt = #line)
  final public func set(sdkAuthenticationSignature signature: Swift.String)
  final public func requestImmediateDataFlush()
  final public func requestFeedRefresh()
  final public func requestContentCardsRefresh()
  final public func requestGeofences(latitude: Swift.Double, longitude: Swift.Double, fileID: Swift.StaticString = #fileID, line: Swift.UInt = #line)
  final public func wipeData()
  final public func set(identifierForVendor: Swift.String)
  final public func set(identifierForAdvertiser: Swift.String)
  final public func set(adTrackingEnabled: Swift.Bool)
}
extension BrazeKit.Braze {
  public struct Configuration {
    public var api: BrazeKit.Braze.Configuration.Api
    public var push: BrazeKit.Braze.Configuration.Push
    public var location: BrazeKit.Braze.Configuration.Location
    public var logger: BrazeKit.Braze.Configuration.Logger
    public var sessionTimeout: Swift.Double
    public var triggerMinimumTimeInterval: Swift.Double
    public var devicePropertyAllowList: Swift.Set<BrazeKit.Braze.Configuration.DeviceProperty>
    public var ephemeralEvents: [Swift.String]
    public init(apiKey: Swift.String, endpoint: Swift.String)
  }
}
extension BrazeKit.Braze.Configuration {
  public struct Api {
    public var key: Swift.String?
    public var endpoint: Swift.String?
    public var requestPolicy: BrazeKit.Braze.Configuration.Api.RequestPolicy
    public var flushInterval: Swift.Double
    public var sdkAuthentication: Swift.Bool
    public var flavor: BrazeKit.Braze.Configuration.Api.Flavor
    public var sdkMetadata: Swift.Set<BrazeKit.Braze.Configuration.Api.SdkMetadata> {
      get
    }
  }
}
extension BrazeKit.Braze.Configuration.Api {
  public enum RequestPolicy : Swift.String, Swift.CaseIterable, Swift.Codable {
    case automatic
    case manual
    public init?(rawValue: Swift.String)
    public typealias AllCases = [BrazeKit.Braze.Configuration.Api.RequestPolicy]
    public typealias RawValue = Swift.String
    public static var allCases: [BrazeKit.Braze.Configuration.Api.RequestPolicy] {
      get
    }
    public var rawValue: Swift.String {
      get
    }
  }
  public enum Flavor : Swift.String, Swift.CaseIterable, Swift.Codable {
    case vanilla
    case unity
    case react
    case cordova
    case xamarin
    case flutter
    case segment
    case mparticle
    case tealium
    public init?(rawValue: Swift.String)
    public typealias AllCases = [BrazeKit.Braze.Configuration.Api.Flavor]
    public typealias RawValue = Swift.String
    public static var allCases: [BrazeKit.Braze.Configuration.Api.Flavor] {
      get
    }
    public var rawValue: Swift.String {
      get
    }
  }
  public mutating func addSdkMetadata(_ sdkMetadata: [BrazeKit.Braze.Configuration.Api.SdkMetadata])
  public enum SdkMetadata : Swift.String, Swift.CaseIterable, Swift.Codable {
    case adjust
    case airbridge
    case appsflyer
    case bluedot
    case branch
    case cordova
    case carthage
    case cocoapods
    case cordovapm
    case expo
    case foursquare
    case flutter
    case googletagmanager
    case gimbal
    case gradle
    case ionic
    case kochava
    case manual
    case mparticle
    case nativescript
    case npm
    case nuget
    case pub
    case radar
    case reactnative
    case segment
    case singular
    case swiftpm
    case tealium
    case unreal
    case unitypm
    case unity
    case vizbee
    case xamarin
    public init?(rawValue: Swift.String)
    public typealias AllCases = [BrazeKit.Braze.Configuration.Api.SdkMetadata]
    public typealias RawValue = Swift.String
    public static var allCases: [BrazeKit.Braze.Configuration.Api.SdkMetadata] {
      get
    }
    public var rawValue: Swift.String {
      get
    }
  }
}
extension BrazeKit.Braze.Configuration {
  public enum DeviceProperty : Swift.String, Swift.CaseIterable, Swift.Codable {
    case model
    case osVersion
    case resolution
    case timeZone
    case locale
    case carrier
    case pushEnabled
    case pushAuthStatus
    case pushDisplayOptions
    public init?(rawValue: Swift.String)
    public typealias AllCases = [BrazeKit.Braze.Configuration.DeviceProperty]
    public typealias RawValue = Swift.String
    public static var allCases: [BrazeKit.Braze.Configuration.DeviceProperty] {
      get
    }
    public var rawValue: Swift.String {
      get
    }
  }
}
extension BrazeKit.Braze.Configuration {
  public struct Location {
    public var automaticLocationCollection: Swift.Bool
    public var geofencesEnabled: Swift.Bool
    public var automaticGeofenceRequests: Swift.Bool
    public var brazeLocation: Swift.AnyObject?
  }
}
extension BrazeKit.Braze.Configuration {
  public struct Logger {
    public var level: BrazeKit.Braze.Logger.Level
    public var signposts: Swift.Bool
    public var print: ((_ message: Swift.String, _ level: BrazeKit.Braze.Logger.Level) -> Swift.Bool)?
  }
}
extension BrazeKit.Braze.Configuration {
  public struct Push {
    public var appGroup: Swift.String?
  }
}
extension BrazeKit.Braze {
  @_hasMissingDesignatedInitializers final public class Notifications {
    final public func register(deviceToken: Foundation.Data, fileID: Swift.StaticString = #fileID, line: Swift.UInt = #line)
    final public func handleBackgroundNotification(userInfo: [Swift.AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIKit.UIBackgroundFetchResult) -> Swift.Void) -> Swift.Bool
    final public func handleUserNotification(response: UserNotifications.UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Swift.Void) -> Swift.Bool
    @objc deinit
  }
}
extension BrazeKit.Braze.Notifications {
  public static var categories: Swift.Set<UserNotifications.UNNotificationCategory>
}
final public class Braze {
  public static let version: Swift.String
  final public var enabled: Swift.Bool {
    get
    set
  }
  final public let configuration: BrazeKit.Braze.Configuration
  final public let user: BrazeKit.Braze.User
  final public let notifications: BrazeKit.Braze.Notifications
  final public var inAppMessagePresenter: BrazeKit.BrazeInAppMessagePresenter?
  weak final public var delegate: BrazeKit.BrazeDelegate?
  public init(configuration: BrazeKit.Braze.Configuration)
  @objc deinit
}
public protocol BrazeDelegate : AnyObject {
  func braze(_ braze: BrazeKit.Braze, shouldOpenURL context: inout BrazeKit.Braze.URLContext) -> Swift.Bool
  func braze(_ braze: BrazeKit.Braze, willPresentModalWithContext context: inout BrazeKit.Braze.ModalContext)
  func braze(_ braze: BrazeKit.Braze, sdkAuthenticationFailedWithError error: BrazeKit.Braze.SDKAuthenticationError)
}
extension BrazeKit.BrazeDelegate {
  public func braze(_ braze: BrazeKit.Braze, shouldOpenURL context: inout BrazeKit.Braze.URLContext) -> Swift.Bool
  public func braze(_ braze: BrazeKit.Braze, willPresentModalWithContext context: inout BrazeKit.Braze.ModalContext)
  public func braze(_ braze: BrazeKit.Braze, sdkAuthenticationFailedWithError error: Swift.Error)
}
extension BrazeKit.Braze {
  public struct Logger {
  }
}
extension BrazeKit.Braze.Logger {
  public enum Level : Swift.UInt8, Swift.CaseIterable, Swift.Codable {
    case debug
    case info
    case error
    case disabled
    public init?(rawValue: Swift.UInt8)
    public typealias AllCases = [BrazeKit.Braze.Logger.Level]
    public typealias RawValue = Swift.UInt8
    public static var allCases: [BrazeKit.Braze.Logger.Level] {
      get
    }
    public var rawValue: Swift.UInt8 {
      get
    }
  }
}
public protocol BrazeInAppMessageWindowType {
}
extension BrazeKit.Braze {
  public enum UIUtils {
  }
}
extension BrazeKit.Braze.UIUtils {
  @available(iOS 13.0, tvOS 13.0, *)
  public static var activeWindowScene: UIKit.UIWindowScene? {
    get
  }
  public static var activeWindow: UIKit.UIWindow? {
    get
  }
  public static var activeRootViewController: UIKit.UIViewController? {
    get
  }
  public static var interfaceOrientation: UIKit.UIInterfaceOrientation {
    get
  }
  public static func preferredFont(textStyle: UIKit.UIFont.TextStyle, weight: UIKit.UIFont.Weight) -> UIKit.UIFont
}
extension BrazeKit.Braze {
  public enum WebViewBridge {
  }
}
extension BrazeKit.Braze.WebViewBridge {
  public struct QueryHandler {
    public init(logClick: @escaping (Swift.String?) -> Swift.Void, logError: @escaping (BrazeKit.Braze.WebViewBridge.QueryHandler.Error) -> Swift.Void)
    public enum Error : Swift.Error, Swift.Hashable {
      case invalidButtonId(Swift.String?)
      public func hash(into hasher: inout Swift.Hasher)
      public static func == (a: BrazeKit.Braze.WebViewBridge.QueryHandler.Error, b: BrazeKit.Braze.WebViewBridge.QueryHandler.Error) -> Swift.Bool
      public var hashValue: Swift.Int {
        get
      }
    }
    public func process(url: Foundation.URL, logBodyClick: Swift.Bool = true) -> (BrazeKit.Braze.InAppMessage.ClickAction, Swift.String?)
  }
}
extension BrazeKit.Braze.WebViewBridge {
  @objc public class SchemeHandler : ObjectiveC.NSObject {
    public static let schemes: Swift.Set<Swift.String>
    public enum Action : Swift.String {
      case close
      case newsFeed
      case customEvent
      public init?(rawValue: Swift.String)
      public typealias RawValue = Swift.String
      public var rawValue: Swift.String {
        get
      }
    }
    public enum Error : Swift.Error, Swift.Hashable {
      case invalidCustomEvent(Foundation.URL)
      case invalidAction(Foundation.URL)
      case noBrazeInstance(Foundation.URL)
      public func hash(into hasher: inout Swift.Hasher)
      public static func == (a: BrazeKit.Braze.WebViewBridge.SchemeHandler.Error, b: BrazeKit.Braze.WebViewBridge.SchemeHandler.Error) -> Swift.Bool
      public var hashValue: Swift.Int {
        get
      }
    }
    public init(logError: @escaping (BrazeKit.Braze.WebViewBridge.SchemeHandler.Error) -> Swift.Void, showNewsFeed: @escaping () -> Swift.Void, closeMessage: @escaping () -> Swift.Void, queryHandler: BrazeKit.Braze.WebViewBridge.QueryHandler, braze: BrazeKit.Braze?)
    public func action(url: Foundation.URL) -> BrazeKit.Braze.WebViewBridge.SchemeHandler.Action?
    public func process(action: BrazeKit.Braze.WebViewBridge.SchemeHandler.Action, url: Foundation.URL)
    @objc deinit
  }
}
extension BrazeKit.Braze.WebViewBridge {
  @objc public class ScriptMessageHandler : ObjectiveC.NSObject, WebKit.WKScriptMessageHandler {
    public enum Error : Swift.Error, Swift.Hashable {
      case invalidPayload(Swift.String?)
      case noBrazeInstance(action: Swift.String, args: Swift.String)
      case invalidArg(action: Swift.String?, index: Swift.Int, arg: Swift.String, type: Swift.String)
      case deprecation(message: Swift.String)
      case unknown(BrazeKit.Braze.ErrorString)
      public func hash(into hasher: inout Swift.Hasher)
      public static func == (a: BrazeKit.Braze.WebViewBridge.ScriptMessageHandler.Error, b: BrazeKit.Braze.WebViewBridge.ScriptMessageHandler.Error) -> Swift.Bool
      public var hashValue: Swift.Int {
        get
      }
    }
    public init(logClick: @escaping (Swift.String?) -> Swift.Void, logError: @escaping (BrazeKit.Braze.WebViewBridge.ScriptMessageHandler.Error) -> Swift.Void, showNewsFeed: @escaping () -> Swift.Void, closeMessage: @escaping () -> Swift.Void, braze: BrazeKit.Braze?)
    @objc public func userContentController(_ userContentController: WebKit.WKUserContentController, didReceive message: WebKit.WKScriptMessage)
    public static let name: Swift.String
    public static let script: WebKit.WKUserScript
    @objc deinit
  }
}
public protocol BrazeInAppMessagePresenter {
  func present(message: BrazeKit.Braze.InAppMessage)
}
extension BrazeKit.Braze {
  public enum InAppMessage : BrazeKit.BrazeInAppMessageDataLookup, Swift.Hashable, Swift.Codable {
    case slideup(BrazeKit.Braze.InAppMessage.Slideup)
    case modal(BrazeKit.Braze.InAppMessage.Modal)
    case modalImage(BrazeKit.Braze.InAppMessage.ModalImage)
    case full(BrazeKit.Braze.InAppMessage.Full)
    case fullImage(BrazeKit.Braze.InAppMessage.FullImage)
    case html(BrazeKit.Braze.InAppMessage.Html)
    case control(BrazeKit.Braze.InAppMessage.Control)
    public func hash(into hasher: inout Swift.Hasher)
    public static func == (a: BrazeKit.Braze.InAppMessage, b: BrazeKit.Braze.InAppMessage) -> Swift.Bool
    public func encode(to encoder: Swift.Encoder) throws
    public var hashValue: Swift.Int {
      get
    }
    public init(from decoder: Swift.Decoder) throws
  }
}
extension BrazeKit.Braze.InAppMessage {
  final public class Context : Swift.Hashable {
    final public var valid: Swift.Bool {
      get
    }
    final public var discarded: Swift.Bool {
      get
    }
    public enum Error : Swift.Error, Swift.Hashable {
      case noLogImpression
      case extraLogImpression
      case extraLogClick
      case extraProcessClickAction
      public static func == (a: BrazeKit.Braze.InAppMessage.Context.Error, b: BrazeKit.Braze.InAppMessage.Context.Error) -> Swift.Bool
      public func hash(into hasher: inout Swift.Hasher)
      public var hashValue: Swift.Int {
        get
      }
    }
    public init(logImpression: @escaping () -> Swift.Void, logClick: @escaping (_ buttonId: Swift.String?) -> Swift.Void, processClickAction: @escaping (BrazeKit.Braze.InAppMessage.ClickAction) -> Swift.Void, logError: @escaping (Swift.Error) -> Swift.Void, braze: @escaping () -> Any?, discard: @escaping () -> Swift.Void, multipleLogClickEnabled: Swift.Bool)
    @objc deinit
    final public func logImpression()
    final public func logClick(buttonId: Swift.String? = nil)
    final public func processClickAction(_ clickAction: BrazeKit.Braze.InAppMessage.ClickAction)
    final public func logError(_ error: Swift.Error)
    final public func logError(flattened error: Swift.String)
    final public var braze: Any? {
      get
    }
    final public func discard()
    final public func hash(into hasher: inout Swift.Hasher)
    public static func == (lhs: BrazeKit.Braze.InAppMessage.Context, rhs: BrazeKit.Braze.InAppMessage.Context) -> Swift.Bool
    final public var hashValue: Swift.Int {
      get
    }
  }
}
extension BrazeKit.Braze.InAppMessage {
  public struct Data : Swift.Hashable, Swift.Codable {
    public var clickAction: BrazeKit.Braze.InAppMessage.ClickAction
    public var messageClose: BrazeKit.Braze.InAppMessage.MessageClose
    public var orientation: BrazeKit.Braze.InAppMessage.Orientation
    public var animateIn: Swift.Bool
    public var animateOut: Swift.Bool
    public var extras: [Swift.String : Any] {
      get
      set
    }
    public var context: BrazeKit.Braze.InAppMessage.Context?
    public init(clickAction: BrazeKit.Braze.InAppMessage.ClickAction = .none, messageClose: BrazeKit.Braze.InAppMessage.MessageClose = .userInteraction, orientation: BrazeKit.Braze.InAppMessage.Orientation = .any, animateIn: Swift.Bool = true, animateOut: Swift.Bool = true, extras: [Swift.String : Any] = [:])
    public func hash(into hasher: inout Swift.Hasher)
    public static func == (a: BrazeKit.Braze.InAppMessage.Data, b: BrazeKit.Braze.InAppMessage.Data) -> Swift.Bool
    public func encode(to encoder: Swift.Encoder) throws
    public var hashValue: Swift.Int {
      get
    }
    public init(from decoder: Swift.Decoder) throws
  }
}
@dynamicMemberLookup public protocol BrazeInAppMessageDataLookup {
  var data: BrazeKit.Braze.InAppMessage.Data { get set }
  subscript<Value>(dynamicMember keyPath: Swift.WritableKeyPath<BrazeKit.Braze.InAppMessage.Data, Value>) -> Value { get set }
}
extension BrazeKit.BrazeInAppMessageDataLookup {
  public subscript<Value>(dynamicMember keyPath: Swift.WritableKeyPath<BrazeKit.Braze.InAppMessage.Data, Value>) -> Value {
    get
    set
  }
}
extension BrazeKit.Braze.InAppMessage {
  public var slideup: BrazeKit.Braze.InAppMessage.Slideup? {
    get
    set
  }
  public var modal: BrazeKit.Braze.InAppMessage.Modal? {
    get
    set
  }
  public var modalImage: BrazeKit.Braze.InAppMessage.ModalImage? {
    get
    set
  }
  public var full: BrazeKit.Braze.InAppMessage.Full? {
    get
    set
  }
  public var fullImage: BrazeKit.Braze.InAppMessage.FullImage? {
    get
    set
  }
  public var html: BrazeKit.Braze.InAppMessage.Html? {
    get
    set
  }
  public var control: BrazeKit.Braze.InAppMessage.Control? {
    get
    set
  }
}
extension BrazeKit.Braze.InAppMessage {
  public var data: BrazeKit.Braze.InAppMessage.Data {
    get
    set
  }
  public var multipleLogClickEnabled: Swift.Bool {
    get
  }
}
extension BrazeKit.Braze.InAppMessage {
  public struct Theme : Swift.Hashable, Swift.Codable {
    public var backgroundColor: BrazeKit.Braze.InAppMessage.Color
    public var textColor: BrazeKit.Braze.InAppMessage.Color
    public var iconColor: BrazeKit.Braze.InAppMessage.Color
    public var iconBackgroundColor: BrazeKit.Braze.InAppMessage.Color
    public var headerTextColor: BrazeKit.Braze.InAppMessage.Color
    public var closeButtonColor: BrazeKit.Braze.InAppMessage.Color
    public var frameColor: BrazeKit.Braze.InAppMessage.Color
    public init(backgroundColor: BrazeKit.Braze.InAppMessage.Color = .clear, textColor: BrazeKit.Braze.InAppMessage.Color = .clear, iconColor: BrazeKit.Braze.InAppMessage.Color = .clear, iconBackgroundColor: BrazeKit.Braze.InAppMessage.Color = .clear, headerTextColor: BrazeKit.Braze.InAppMessage.Color = .clear, closeButtonColor: BrazeKit.Braze.InAppMessage.Color = .clear, frameColor: BrazeKit.Braze.InAppMessage.Color = .clear)
    public func hash(into hasher: inout Swift.Hasher)
    public static func == (a: BrazeKit.Braze.InAppMessage.Theme, b: BrazeKit.Braze.InAppMessage.Theme) -> Swift.Bool
    public func encode(to encoder: Swift.Encoder) throws
    public var hashValue: Swift.Int {
      get
    }
    public init(from decoder: Swift.Decoder) throws
  }
  public struct Themes : Swift.Hashable, Swift.Codable, Swift.ExpressibleByDictionaryLiteral {
    public var light: BrazeKit.Braze.InAppMessage.Theme {
      get
      set
    }
    public var dark: BrazeKit.Braze.InAppMessage.Theme? {
      get
      set
    }
    public subscript(name: Swift.String) -> BrazeKit.Braze.InAppMessage.Theme? {
      get
      set
    }
    public init(themes: [Swift.String : BrazeKit.Braze.InAppMessage.Theme])
    public init(dictionaryLiteral elements: (Swift.String, BrazeKit.Braze.InAppMessage.Theme)...)
    public func hash(into hasher: inout Swift.Hasher)
    public static func == (a: BrazeKit.Braze.InAppMessage.Themes, b: BrazeKit.Braze.InAppMessage.Themes) -> Swift.Bool
    public typealias Key = Swift.String
    public typealias Value = BrazeKit.Braze.InAppMessage.Theme
    public func encode(to encoder: Swift.Encoder) throws
    public var hashValue: Swift.Int {
      get
    }
    public init(from decoder: Swift.Decoder) throws
  }
  public struct ButtonTheme : Swift.Hashable, Swift.Codable {
    public var textColor: BrazeKit.Braze.InAppMessage.Color
    public var borderColor: BrazeKit.Braze.InAppMessage.Color
    public var backgroundColor: BrazeKit.Braze.InAppMessage.Color
    public init(textColor: BrazeKit.Braze.InAppMessage.Color = .clear, borderColor: BrazeKit.Braze.InAppMessage.Color = .clear, backgroundColor: BrazeKit.Braze.InAppMessage.Color = .clear)
    public func hash(into hasher: inout Swift.Hasher)
    public static func == (a: BrazeKit.Braze.InAppMessage.ButtonTheme, b: BrazeKit.Braze.InAppMessage.ButtonTheme) -> Swift.Bool
    public func encode(to encoder: Swift.Encoder) throws
    public var hashValue: Swift.Int {
      get
    }
    public init(from decoder: Swift.Decoder) throws
  }
  public struct ButtonThemes : Swift.Hashable, Swift.Codable, Swift.ExpressibleByDictionaryLiteral {
    public var light: BrazeKit.Braze.InAppMessage.ButtonTheme {
      get
    }
    public var dark: BrazeKit.Braze.InAppMessage.ButtonTheme? {
      get
    }
    public subscript(name: Swift.String) -> BrazeKit.Braze.InAppMessage.ButtonTheme? {
      get
    }
    public init(themes: [Swift.String : BrazeKit.Braze.InAppMessage.ButtonTheme])
    public init(dictionaryLiteral elements: (Swift.String, BrazeKit.Braze.InAppMessage.ButtonTheme)...)
    public func hash(into hasher: inout Swift.Hasher)
    public static func == (a: BrazeKit.Braze.InAppMessage.ButtonThemes, b: BrazeKit.Braze.InAppMessage.ButtonThemes) -> Swift.Bool
    public typealias Key = Swift.String
    public typealias Value = BrazeKit.Braze.InAppMessage.ButtonTheme
    public func encode(to encoder: Swift.Encoder) throws
    public var hashValue: Swift.Int {
      get
    }
    public init(from decoder: Swift.Decoder) throws
  }
}
extension BrazeKit.Braze.InAppMessage.Theme {
  public static let defaultLight: BrazeKit.Braze.InAppMessage.Theme
  public static let defaultDark: BrazeKit.Braze.InAppMessage.Theme
}
extension BrazeKit.Braze.InAppMessage.ButtonTheme {
  public static let primary: BrazeKit.Braze.InAppMessage.ButtonTheme
  public static let secondary: BrazeKit.Braze.InAppMessage.ButtonTheme
  public static let defaultLight: BrazeKit.Braze.InAppMessage.ButtonTheme
  public static let defaultDark: BrazeKit.Braze.InAppMessage.ButtonTheme
}
extension BrazeKit.Braze.InAppMessage.Themes {
  public static let `default`: BrazeKit.Braze.InAppMessage.Themes
}
public protocol BrazeInAppMessageThemeable {
  var themes: BrazeKit.Braze.InAppMessage.Themes { get }
}
extension BrazeKit.Braze.InAppMessage {
  public struct Slideup : BrazeKit.BrazeInAppMessageDataLookup, BrazeKit.BrazeInAppMessageThemeable, Swift.Hashable, Swift.Codable {
    public var data: BrazeKit.Braze.InAppMessage.Data
    public var graphic: BrazeKit.Braze.InAppMessage.Graphic?
    public var message: Swift.String
    public var slideFrom: BrazeKit.Braze.InAppMessage.SlideFrom
    public var themes: BrazeKit.Braze.InAppMessage.Themes
    public init(data: BrazeKit.Braze.InAppMessage.Data = .init(), graphic: BrazeKit.Braze.InAppMessage.Graphic? = nil, message: Swift.String = "", slideFrom: BrazeKit.Braze.InAppMessage.SlideFrom = .bottom, themes: BrazeKit.Braze.InAppMessage.Themes = .default)
    public static func == (a: BrazeKit.Braze.InAppMessage.Slideup, b: BrazeKit.Braze.InAppMessage.Slideup) -> Swift.Bool
    public func hash(into hasher: inout Swift.Hasher)
    public func encode(to encoder: Swift.Encoder) throws
    public var hashValue: Swift.Int {
      get
    }
    public init(from decoder: Swift.Decoder) throws
  }
  public struct Modal : BrazeKit.BrazeInAppMessageDataLookup, BrazeKit.BrazeInAppMessageThemeable, Swift.Hashable, Swift.Codable {
    public var data: BrazeKit.Braze.InAppMessage.Data
    public var graphic: BrazeKit.Braze.InAppMessage.Graphic?
    public var header: Swift.String
    public var headerTextAlignment: BrazeKit.Braze.InAppMessage.TextAlignment
    public var message: Swift.String
    public var messageTextAlignment: BrazeKit.Braze.InAppMessage.TextAlignment
    public var buttons: [BrazeKit.Braze.InAppMessage.Button]
    public var themes: BrazeKit.Braze.InAppMessage.Themes
    public init(data: BrazeKit.Braze.InAppMessage.Data = .init(), graphic: BrazeKit.Braze.InAppMessage.Graphic? = nil, header: Swift.String = "", headerTextAlignment: BrazeKit.Braze.InAppMessage.TextAlignment = .center, message: Swift.String = "", messageTextAlignment: BrazeKit.Braze.InAppMessage.TextAlignment = .center, buttons: [BrazeKit.Braze.InAppMessage.Button] = [], themes: BrazeKit.Braze.InAppMessage.Themes = .default)
    public static func == (a: BrazeKit.Braze.InAppMessage.Modal, b: BrazeKit.Braze.InAppMessage.Modal) -> Swift.Bool
    public func hash(into hasher: inout Swift.Hasher)
    public func encode(to encoder: Swift.Encoder) throws
    public var hashValue: Swift.Int {
      get
    }
    public init(from decoder: Swift.Decoder) throws
  }
  public struct ModalImage : BrazeKit.BrazeInAppMessageDataLookup, BrazeKit.BrazeInAppMessageThemeable, Swift.Hashable, Swift.Codable {
    public var data: BrazeKit.Braze.InAppMessage.Data
    public var imageUri: Foundation.URL
    public var buttons: [BrazeKit.Braze.InAppMessage.Button]
    public var themes: BrazeKit.Braze.InAppMessage.Themes
    public init(data: BrazeKit.Braze.InAppMessage.Data = .init(), imageUri: Foundation.URL, buttons: [BrazeKit.Braze.InAppMessage.Button] = [], themes: BrazeKit.Braze.InAppMessage.Themes = .default)
    public static func == (a: BrazeKit.Braze.InAppMessage.ModalImage, b: BrazeKit.Braze.InAppMessage.ModalImage) -> Swift.Bool
    public func hash(into hasher: inout Swift.Hasher)
    public func encode(to encoder: Swift.Encoder) throws
    public var hashValue: Swift.Int {
      get
    }
    public init(from decoder: Swift.Decoder) throws
  }
  public struct Full : BrazeKit.BrazeInAppMessageDataLookup, BrazeKit.BrazeInAppMessageThemeable, Swift.Hashable, Swift.Codable {
    public var data: BrazeKit.Braze.InAppMessage.Data
    public var imageUri: Foundation.URL
    public var header: Swift.String
    public var headerTextAlignment: BrazeKit.Braze.InAppMessage.TextAlignment
    public var message: Swift.String
    public var messageTextAlignment: BrazeKit.Braze.InAppMessage.TextAlignment
    public var buttons: [BrazeKit.Braze.InAppMessage.Button]
    public var themes: BrazeKit.Braze.InAppMessage.Themes
    public init(data: BrazeKit.Braze.InAppMessage.Data = .init(), imageUri: Foundation.URL, header: Swift.String = "", headerTextAlignment: BrazeKit.Braze.InAppMessage.TextAlignment = .center, message: Swift.String = "", messageTextAlignment: BrazeKit.Braze.InAppMessage.TextAlignment = .center, buttons: [BrazeKit.Braze.InAppMessage.Button] = [], themes: BrazeKit.Braze.InAppMessage.Themes = .default)
    public static func == (a: BrazeKit.Braze.InAppMessage.Full, b: BrazeKit.Braze.InAppMessage.Full) -> Swift.Bool
    public func hash(into hasher: inout Swift.Hasher)
    public func encode(to encoder: Swift.Encoder) throws
    public var hashValue: Swift.Int {
      get
    }
    public init(from decoder: Swift.Decoder) throws
  }
  public struct FullImage : BrazeKit.BrazeInAppMessageDataLookup, BrazeKit.BrazeInAppMessageThemeable, Swift.Hashable, Swift.Codable {
    public var data: BrazeKit.Braze.InAppMessage.Data
    public var imageUri: Foundation.URL
    public var buttons: [BrazeKit.Braze.InAppMessage.Button]
    public var themes: BrazeKit.Braze.InAppMessage.Themes
    public init(data: BrazeKit.Braze.InAppMessage.Data = .init(), imageUri: Foundation.URL, buttons: [BrazeKit.Braze.InAppMessage.Button] = [], themes: BrazeKit.Braze.InAppMessage.Themes = .default)
    public static func == (a: BrazeKit.Braze.InAppMessage.FullImage, b: BrazeKit.Braze.InAppMessage.FullImage) -> Swift.Bool
    public func hash(into hasher: inout Swift.Hasher)
    public func encode(to encoder: Swift.Encoder) throws
    public var hashValue: Swift.Int {
      get
    }
    public init(from decoder: Swift.Decoder) throws
  }
  public struct Html : BrazeKit.BrazeInAppMessageDataLookup, Swift.Hashable, Swift.Codable {
    public var data: BrazeKit.Braze.InAppMessage.Data
    public var message: Swift.String
    public var baseUrl: Foundation.URL?
    public var assetUrls: Swift.Set<Foundation.URL>
    public var legacy: Swift.Bool
    public init(data: BrazeKit.Braze.InAppMessage.Data = .init(), message: Swift.String = "<html></html>", baseUrl: Foundation.URL? = nil, assetUrls: Swift.Set<Foundation.URL> = [], legacy: Swift.Bool = false)
    public static func == (a: BrazeKit.Braze.InAppMessage.Html, b: BrazeKit.Braze.InAppMessage.Html) -> Swift.Bool
    public func hash(into hasher: inout Swift.Hasher)
    public func encode(to encoder: Swift.Encoder) throws
    public var hashValue: Swift.Int {
      get
    }
    public init(from decoder: Swift.Decoder) throws
  }
  public struct Control : BrazeKit.BrazeInAppMessageDataLookup, Swift.Hashable, Swift.Codable {
    public var data: BrazeKit.Braze.InAppMessage.Data
    public init(data: BrazeKit.Braze.InAppMessage.Data = .init())
    public static func == (a: BrazeKit.Braze.InAppMessage.Control, b: BrazeKit.Braze.InAppMessage.Control) -> Swift.Bool
    public func hash(into hasher: inout Swift.Hasher)
    public func encode(to encoder: Swift.Encoder) throws
    public var hashValue: Swift.Int {
      get
    }
    public init(from decoder: Swift.Decoder) throws
  }
}
extension BrazeKit.Braze.InAppMessage {
  public enum ClickAction : Swift.Hashable, Swift.Codable {
    case none
    case newsFeed
    case uri(Foundation.URL, useWebView: Swift.Bool)
    public static func == (a: BrazeKit.Braze.InAppMessage.ClickAction, b: BrazeKit.Braze.InAppMessage.ClickAction) -> Swift.Bool
    public func hash(into hasher: inout Swift.Hasher)
    public func encode(to encoder: Swift.Encoder) throws
    public var hashValue: Swift.Int {
      get
    }
    public init(from decoder: Swift.Decoder) throws
  }
  public enum MessageClose : Swift.Hashable, Swift.Codable {
    case userInteraction
    case auto(after: Foundation.TimeInterval)
    public static func == (a: BrazeKit.Braze.InAppMessage.MessageClose, b: BrazeKit.Braze.InAppMessage.MessageClose) -> Swift.Bool
    public func hash(into hasher: inout Swift.Hasher)
    public func encode(to encoder: Swift.Encoder) throws
    public var hashValue: Swift.Int {
      get
    }
    public init(from decoder: Swift.Decoder) throws
  }
  public enum Orientation : Swift.String, Swift.Hashable, Swift.Codable {
    case any
    case portrait
    case landscape
    public init?(rawValue: Swift.String)
    public typealias RawValue = Swift.String
    public var rawValue: Swift.String {
      get
    }
  }
  public enum TextAlignment : Swift.String, Swift.Hashable, Swift.Codable {
    case leading
    case center
    case trailing
    public init?(rawValue: Swift.String)
    public typealias RawValue = Swift.String
    public var rawValue: Swift.String {
      get
    }
  }
  public enum Graphic : Swift.Hashable, Swift.Codable {
    case icon(Swift.String)
    case image(Foundation.URL)
    public func hash(into hasher: inout Swift.Hasher)
    public static func == (a: BrazeKit.Braze.InAppMessage.Graphic, b: BrazeKit.Braze.InAppMessage.Graphic) -> Swift.Bool
    public func encode(to encoder: Swift.Encoder) throws
    public var hashValue: Swift.Int {
      get
    }
    public init(from decoder: Swift.Decoder) throws
  }
  public struct Button : Swift.Hashable, Swift.Codable {
    public var id: Swift.Int
    public var text: Swift.String
    public var clickAction: BrazeKit.Braze.InAppMessage.ClickAction
    public var themes: BrazeKit.Braze.InAppMessage.ButtonThemes
    public init(id: Swift.Int, text: Swift.String, clickAction: BrazeKit.Braze.InAppMessage.ClickAction, themes: BrazeKit.Braze.InAppMessage.ButtonThemes = [:])
    public func hash(into hasher: inout Swift.Hasher)
    public static func == (a: BrazeKit.Braze.InAppMessage.Button, b: BrazeKit.Braze.InAppMessage.Button) -> Swift.Bool
    public func encode(to encoder: Swift.Encoder) throws
    public var hashValue: Swift.Int {
      get
    }
    public init(from decoder: Swift.Decoder) throws
  }
  public struct Color : Swift.RawRepresentable, Swift.Hashable, Swift.Codable, Swift.ExpressibleByIntegerLiteral {
    public var rawValue: Swift.UInt32
    public var r: Swift.Double {
      get
    }
    public var g: Swift.Double {
      get
    }
    public var b: Swift.Double {
      get
    }
    public var a: Swift.Double {
      get
    }
    public static let clear: BrazeKit.Braze.InAppMessage.Color
    public static let white: BrazeKit.Braze.InAppMessage.Color
    public static let black: BrazeKit.Braze.InAppMessage.Color
    public static let red: BrazeKit.Braze.InAppMessage.Color
    public static let green: BrazeKit.Braze.InAppMessage.Color
    public static let blue: BrazeKit.Braze.InAppMessage.Color
    public init(rawValue: Swift.UInt32)
    public init(red: Swift.Double, green: Swift.Double, blue: Swift.Double, alpha: Swift.Double)
    public init(integerLiteral value: Swift.UInt32)
    public typealias IntegerLiteralType = Swift.UInt32
    public typealias RawValue = Swift.UInt32
  }
  public enum SlideFrom : Swift.String, Swift.Hashable, Swift.Codable {
    case top
    case bottom
    public init?(rawValue: Swift.String)
    public typealias RawValue = Swift.String
    public var rawValue: Swift.String {
      get
    }
  }
}
extension BrazeKit.Braze {
  public static var acknowledgments: [Swift.String : Foundation.URL]
  public static var license: Foundation.URL?
}
extension BrazeKit.Braze {
  @_hasMissingDesignatedInitializers final public class User {
    final public func id(queue: Dispatch.DispatchQueue = .main, completion: @escaping (Swift.String?) -> Swift.Void)
    final public func set(firstName: Swift.String?)
    final public func set(lastName: Swift.String?)
    final public func set(email: Swift.String?, fileID: Swift.StaticString = #fileID, line: Swift.UInt = #line)
    final public func set(dateOfBirth: Foundation.Date?)
    final public func set(country: Swift.String?)
    final public func set(homeCity: Swift.String?)
    final public func set(language: Swift.String?, fileID: Swift.StaticString = #fileID, line: Swift.UInt = #line)
    final public func set(gender: BrazeKit.Braze.User.Gender?)
    final public func set(phoneNumber: Swift.String?)
    final public func set(emailSubscriptionState: BrazeKit.Braze.User.SubscriptionState)
    final public func set(pushNotificationSubscriptionState: BrazeKit.Braze.User.SubscriptionState)
    final public func set(attributionData: BrazeKit.Braze.User.AttributionData?)
    final public func add(alias: Swift.String, label: Swift.String, fileID: Swift.StaticString = #fileID, line: Swift.UInt = #line)
    final public func setCustomAttribute(key: Swift.String, value: Swift.Bool, fileID: Swift.StaticString = #fileID, line: Swift.UInt = #line)
    final public func setCustomAttribute(key: Swift.String, value: Swift.Double, fileID: Swift.StaticString = #fileID, line: Swift.UInt = #line)
    final public func setCustomAttribute(key: Swift.String, value: Swift.Int, fileID: Swift.StaticString = #fileID, line: Swift.UInt = #line)
    final public func setCustomAttribute(key: Swift.String, value: Swift.String, fileID: Swift.StaticString = #fileID, line: Swift.UInt = #line)
    final public func setCustomAttribute(key: Swift.String, value: Foundation.Date, fileID: Swift.StaticString = #fileID, line: Swift.UInt = #line)
    final public func unsetCustomAttribute(key: Swift.String, fileID: Swift.StaticString = #fileID, line: Swift.UInt = #line)
    final public func incrementCustomUserAttribute(key: Swift.String, by amount: Swift.Int = 1, fileID: Swift.StaticString = #fileID, line: Swift.UInt = #line)
    final public func addToCustomAttributeArray(key: Swift.String, value: Swift.String, fileID: Swift.StaticString = #fileID, line: Swift.UInt = #line)
    final public func removeFromCustomAttributeArray(key: Swift.String, value: Swift.String, fileID: Swift.StaticString = #fileID, line: Swift.UInt = #line)
    final public func setCustomAttributeArray(key: Swift.String, array: [Swift.String]?, fileID: Swift.StaticString = #fileID, line: Swift.UInt = #line)
    final public func setLastKnownLocation(latitude: Swift.Double, longitude: Swift.Double, altitude: Swift.Double? = nil, horizontalAccuracy: Swift.Double? = nil, verticalAccuracy: Swift.Double? = nil, fileID: Swift.StaticString = #fileID, line: Swift.UInt = #line)
    final public func setLocationCustomAttribute(key: Swift.String, latitude: Swift.Double, longitude: Swift.Double, fileID: Swift.StaticString = #fileID, line: Swift.UInt = #line)
    final public func unsetLocationCustomAttribute(key: Swift.String, fileID: Swift.StaticString = #fileID, line: Swift.UInt = #line)
    final public func addToSubscriptionGroup(id: Swift.String, fileID: Swift.StaticString = #fileID, line: Swift.UInt = #line)
    final public func removeFromSubscriptionGroup(id: Swift.String, fileID: Swift.StaticString = #fileID, line: Swift.UInt = #line)
    @objc deinit
  }
}
extension BrazeKit.Braze.User {
  public struct AttributionData : Swift.Hashable, Swift.Codable {
    public init(network: Swift.String? = nil, campaign: Swift.String? = nil, adGroup: Swift.String? = nil, creative: Swift.String? = nil)
    public func hash(into hasher: inout Swift.Hasher)
    public static func == (a: BrazeKit.Braze.User.AttributionData, b: BrazeKit.Braze.User.AttributionData) -> Swift.Bool
    public func encode(to encoder: Swift.Encoder) throws
    public var hashValue: Swift.Int {
      get
    }
    public init(from decoder: Swift.Decoder) throws
  }
}
extension BrazeKit.Braze.User {
  public enum Gender : Swift.String, Swift.Codable, Swift.CaseIterable {
    case male
    case female
    case other
    case unknown
    case notApplicable
    case preferNotToSay
    public init?(rawValue: Swift.String)
    public typealias AllCases = [BrazeKit.Braze.User.Gender]
    public typealias RawValue = Swift.String
    public static var allCases: [BrazeKit.Braze.User.Gender] {
      get
    }
    public var rawValue: Swift.String {
      get
    }
  }
}
extension BrazeKit.Braze.User {
  public enum SubscriptionGroupStatus : Swift.String, Swift.Codable, Swift.CaseIterable {
    case subscribed
    case unsubscribed
    public init?(rawValue: Swift.String)
    public typealias AllCases = [BrazeKit.Braze.User.SubscriptionGroupStatus]
    public typealias RawValue = Swift.String
    public static var allCases: [BrazeKit.Braze.User.SubscriptionGroupStatus] {
      get
    }
    public var rawValue: Swift.String {
      get
    }
  }
}
extension BrazeKit.Braze.User {
  public enum SubscriptionState : Swift.String, Swift.Codable, Swift.CaseIterable {
    case optedIn
    case subscribed
    case unsubscribed
    public init?(rawValue: Swift.String)
    public typealias AllCases = [BrazeKit.Braze.User.SubscriptionState]
    public typealias RawValue = Swift.String
    public static var allCases: [BrazeKit.Braze.User.SubscriptionState] {
      get
    }
    public var rawValue: Swift.String {
      get
    }
  }
}
extension BrazeKit.Braze {
  public enum Channel : Swift.String {
    case notification
    case inAppMessage
    case contentCard
    case newsFeed
    public init?(rawValue: Swift.String)
    public typealias RawValue = Swift.String
    public var rawValue: Swift.String {
      get
    }
  }
}
@usableFromInline
internal protocol _AnyDecodable {
  var value: Any { get }
  init<T>(_ value: T?)
}
@usableFromInline
internal protocol _AnyEncodable {
  var value: Any { get }
  init<T>(_ value: T?)
}
extension BrazeKit.Braze {
  public struct ErrorString : Swift.Error, Swift.Hashable {
    public init(_ error: Swift.Error)
    public init(_ error: Swift.String)
    public var logDescription: Swift.String {
      get
    }
    public static func == (a: BrazeKit.Braze.ErrorString, b: BrazeKit.Braze.ErrorString) -> Swift.Bool
    public func hash(into hasher: inout Swift.Hasher)
    public var hashValue: Swift.Int {
      get
    }
  }
}
extension BrazeKit.Braze {
  public struct ModalContext {
    public var presentingViewController: UIKit.UIViewController
    public var animatePresentation: Swift.Bool
    public var animateDismissal: Swift.Bool
    public let channel: BrazeKit.Braze.Channel
  }
}
extension BrazeKit.Braze {
  public struct SDKAuthenticationError : Swift.Error {
    public var code: Swift.Int
    public var reason: Swift.String?
    public var userId: Swift.String?
    public var signature: Swift.String?
  }
}
extension BrazeKit.Braze {
  public struct URLContext : Swift.Hashable {
    public var url: Foundation.URL
    public var useWebView: Swift.Bool
    public let channel: BrazeKit.Braze.Channel
    public var extras: [Swift.String : Any] {
      get
    }
    @available(iOS 13.0, *)
    public var targetScene: UIKit.UIScene? {
      get
      set
    }
    public static func == (a: BrazeKit.Braze.URLContext, b: BrazeKit.Braze.URLContext) -> Swift.Bool
    public func hash(into hasher: inout Swift.Hasher)
    public var hashValue: Swift.Int {
      get
    }
  }
}
extension BrazeKit.Braze.Configuration.Api.RequestPolicy : Swift.Equatable {}
extension BrazeKit.Braze.Configuration.Api.RequestPolicy : Swift.Hashable {}
extension BrazeKit.Braze.Configuration.Api.RequestPolicy : Swift.RawRepresentable {}
extension BrazeKit.Braze.Configuration.Api.Flavor : Swift.Equatable {}
extension BrazeKit.Braze.Configuration.Api.Flavor : Swift.Hashable {}
extension BrazeKit.Braze.Configuration.Api.Flavor : Swift.RawRepresentable {}
extension BrazeKit.Braze.Configuration.Api.SdkMetadata : Swift.Equatable {}
extension BrazeKit.Braze.Configuration.Api.SdkMetadata : Swift.Hashable {}
extension BrazeKit.Braze.Configuration.Api.SdkMetadata : Swift.RawRepresentable {}
extension BrazeKit.Braze.Configuration.DeviceProperty : Swift.Equatable {}
extension BrazeKit.Braze.Configuration.DeviceProperty : Swift.Hashable {}
extension BrazeKit.Braze.Configuration.DeviceProperty : Swift.RawRepresentable {}
extension BrazeKit.Braze.Logger.Level : Swift.Equatable {}
extension BrazeKit.Braze.Logger.Level : Swift.Hashable {}
extension BrazeKit.Braze.Logger.Level : Swift.RawRepresentable {}
extension BrazeKit.Braze.WebViewBridge.SchemeHandler.Action : Swift.Equatable {}
extension BrazeKit.Braze.WebViewBridge.SchemeHandler.Action : Swift.Hashable {}
extension BrazeKit.Braze.WebViewBridge.SchemeHandler.Action : Swift.RawRepresentable {}
extension BrazeKit.Braze.InAppMessage.Orientation : Swift.RawRepresentable {}
extension BrazeKit.Braze.InAppMessage.TextAlignment : Swift.RawRepresentable {}
extension BrazeKit.Braze.InAppMessage.SlideFrom : Swift.RawRepresentable {}
extension BrazeKit.Braze.User.Gender : Swift.Equatable {}
extension BrazeKit.Braze.User.Gender : Swift.Hashable {}
extension BrazeKit.Braze.User.Gender : Swift.RawRepresentable {}
extension BrazeKit.Braze.User.SubscriptionGroupStatus : Swift.Equatable {}
extension BrazeKit.Braze.User.SubscriptionGroupStatus : Swift.Hashable {}
extension BrazeKit.Braze.User.SubscriptionGroupStatus : Swift.RawRepresentable {}
extension BrazeKit.Braze.User.SubscriptionState : Swift.Equatable {}
extension BrazeKit.Braze.User.SubscriptionState : Swift.Hashable {}
extension BrazeKit.Braze.User.SubscriptionState : Swift.RawRepresentable {}
extension BrazeKit.Braze.Channel : Swift.Equatable {}
extension BrazeKit.Braze.Channel : Swift.Hashable {}
extension BrazeKit.Braze.Channel : Swift.RawRepresentable {}
