// swift-interface-format-version: 1.0
// swift-compiler-version: Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28)
// swift-module-flags: -target arm64-apple-ios11.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name FlybitsKernelSDK
import CoreLocation
@_exported import FlybitsKernelSDK
import FlybitsSDK
import Foundation
import Swift
@objc public class Group : ObjectiveC.NSObject, Swift.Decodable, FlybitsSDK.DictionaryConvertible {
  public var identifier: Swift.String {
    get
  }
  public var tenantId: Swift.String? {
    get
  }
  public var creatorId: Swift.String? {
    get
  }
  public var experiences: [FlybitsKernelSDK.Experience]? {
    get
  }
  public var name: FlybitsSDK.LocalizedObject<Swift.String>? {
    get
  }
  public var groupDescription: FlybitsSDK.LocalizedObject<Swift.String>? {
    get
  }
  public var createdAt: Swift.Double {
    get
  }
  public var modifiedAt: Swift.Double {
    get
  }
  required public init(from decoder: Swift.Decoder) throws
  public init(name: FlybitsSDK.LocalizedObject<Swift.String>, description: FlybitsSDK.LocalizedObject<Swift.String>)
  public static func getAll(with query: FlybitsKernelSDK.GroupQuery? = nil, completion: @escaping (FlybitsSDK.Paged<FlybitsKernelSDK.Group>?, Swift.Error?) -> Swift.Void) -> FlybitsSDK.FlybitsRequest?
  public static func getAllRelevant(with query: FlybitsKernelSDK.GroupQuery? = nil, completion: @escaping (FlybitsSDK.Paged<FlybitsKernelSDK.Group>?, Swift.Error?) -> Swift.Void) -> FlybitsSDK.FlybitsRequest?
  public static func get(id: Swift.String, completion: @escaping (FlybitsKernelSDK.Group?, Swift.Error?) -> Swift.Void) -> FlybitsSDK.FlybitsRequest?
  public static func add(_ group: FlybitsKernelSDK.Group, completion: @escaping (FlybitsKernelSDK.Group?, Swift.Error?) -> Swift.Void) -> FlybitsSDK.FlybitsRequest?
  public static func update(_ group: FlybitsKernelSDK.Group, completion: @escaping (FlybitsKernelSDK.Group?, Swift.Error?) -> Swift.Void) -> FlybitsSDK.FlybitsRequest?
  public static func delete(id: Swift.String, completion: @escaping (Swift.Error?) -> Swift.Void) -> FlybitsSDK.FlybitsRequest?
  public func toDictionary() throws -> [Swift.String : Any]
  @objc deinit
  @objc override dynamic public init()
}
@_inheritsConvenienceInitializers public class GroupQuery : FlybitsSDK.Query {
  override public func toDictionary() throws -> [Swift.String : Any]
  @objc deinit
  required public init(_ pager: FlybitsSDK.Pager? = super)
  @objc override dynamic public init()
}
@_inheritsConvenienceInitializers @objc public class KernelScope : ObjectiveC.NSObject, FlybitsSDK.FlybitsScope {
  @objc public var identifier: Swift.String {
    get
  }
  @objc public func onStart(currentActiveUserIsOptedIn: Swift.Bool)
  @objc public func onStop()
  @objc public func onConnected(user: FlybitsSDK.User)
  @objc public func onDisconnected()
  @objc public func onOptIn()
  @objc public func onOptOut()
  @objc required convenience public init?(coder aDecoder: Foundation.NSCoder)
  @objc public func encode(with aCoder: Foundation.NSCoder)
  @objc deinit
  @objc override dynamic public init()
}
@objc @objcMembers public class LabelsCompoundQuery : FlybitsKernelSDK.LabelsQuery {
  @objc public var queries: [FlybitsKernelSDK.LabelsQuery]
  @objc public init(queries: [FlybitsKernelSDK.LabelsQuery], booleanOperator: FlybitsKernelSDK.BooleanOperator)
  @objc public func toString() -> Swift.String
  @objc deinit
  @objc override public init(predicates: [FlybitsKernelSDK.LabelsPredicate], booleanOperator: FlybitsKernelSDK.BooleanOperator)
}
@objc public class ContentQuery : ObjectiveC.NSObject, FlybitsSDK.FlybitsQuery {
  public var pager: FlybitsSDK.Pager?
  public var types: [Swift.String : FlybitsKernelSDK.ContentData.Type]?
  public var labelsQuery: FlybitsKernelSDK.LabelsQuery?
  public var templateType: Swift.String?
  public var locationQuery: FlybitsKernelSDK.LocationQuery?
  public var groupId: Swift.String?
  convenience public init(types: [Swift.String : FlybitsKernelSDK.ContentData.Type]?, labelsQuery: FlybitsKernelSDK.LabelsQuery? = nil, groupId: Swift.String? = nil, pager: FlybitsSDK.Pager? = nil)
  @objc convenience public init(contentTypes: [Swift.String : FlybitsKernelSDK.ContentData.Type]?, labelsQuery: FlybitsKernelSDK.LabelsQuery?, pager: FlybitsSDK.Pager?)
  required public init(_ pager: FlybitsSDK.Pager?)
  public func toDictionary() throws -> [Swift.String : Any]
  @objc deinit
  @objc override dynamic public init()
}
@objc public class Experience : ObjectiveC.NSObject, Swift.Decodable, FlybitsSDK.DictionaryConvertible {
  public var identifier: Swift.String {
    get
  }
  public var tenantId: Swift.String? {
    get
  }
  public var ruleId: Swift.String? {
    get
  }
  public var creatorId: Swift.String? {
    get
  }
  public var contentIds: [Swift.String]? {
    get
  }
  public var groupIds: [Swift.String]? {
    get
  }
  public var rule: [Swift.String : Swift.String]? {
    get
  }
  public var contents: [FlybitsKernelSDK.Content]? {
    get
  }
  public var labels: [Swift.String]? {
    get
  }
  public var name: FlybitsSDK.LocalizedObject<Swift.String>? {
    get
  }
  public var experienceDescription: FlybitsSDK.LocalizedObject<Swift.String>? {
    get
  }
  public var isActive: Swift.Bool {
    get
  }
  public var createdAt: Swift.Double {
    get
  }
  public var modifiedAt: Swift.Double {
    get
  }
  required public init(from decoder: Swift.Decoder) throws
  public init(name: FlybitsSDK.LocalizedObject<Swift.String>, description: FlybitsSDK.LocalizedObject<Swift.String>)
  public static func getAll(with query: FlybitsKernelSDK.ExperienceQuery? = nil, completion: @escaping (FlybitsSDK.Paged<FlybitsKernelSDK.Experience>?, Swift.Error?) -> Swift.Void) -> FlybitsSDK.FlybitsRequest?
  public static func get(id: Swift.String, completion: @escaping (FlybitsKernelSDK.Experience?, Swift.Error?) -> Swift.Void) -> FlybitsSDK.FlybitsRequest?
  public static func add(_ experience: FlybitsKernelSDK.Experience, completion: @escaping (FlybitsKernelSDK.Experience?, Swift.Error?) -> Swift.Void) -> FlybitsSDK.FlybitsRequest?
  public static func update(_ experience: FlybitsKernelSDK.Experience, completion: @escaping (FlybitsKernelSDK.Experience?, Swift.Error?) -> Swift.Void) -> FlybitsSDK.FlybitsRequest?
  public static func delete(id: Swift.String, completion: @escaping (Swift.Error?) -> Swift.Void) -> FlybitsSDK.FlybitsRequest?
  public func toDictionary() throws -> [Swift.String : Any]
  @objc deinit
  @objc override dynamic public init()
}
@_inheritsConvenienceInitializers @objc public class KernelAPIManager : ObjectiveC.NSObject {
  public typealias GroupsCompletion = ([FlybitsKernelSDK.Group]?, FlybitsSDK.Pager?, Swift.Error?) -> Swift.Void
  @discardableResult
  public class func getAllGroups(_ query: FlybitsKernelSDK.GroupQuery? = nil, completion: @escaping FlybitsKernelSDK.KernelAPIManager.GroupsCompletion) -> FlybitsSDK.FlybitsRequest?
  public typealias ExperiencesCompletion = ([FlybitsKernelSDK.Experience]?, FlybitsSDK.Pager?, Swift.Error?) -> Swift.Void
  @discardableResult
  public class func getAllExperiences(_ query: FlybitsKernelSDK.ExperienceQuery? = nil, completion: @escaping FlybitsKernelSDK.KernelAPIManager.ExperiencesCompletion) -> FlybitsSDK.FlybitsRequest?
  public typealias ContentCompletion = ([FlybitsKernelSDK.Content]?, FlybitsSDK.Pager?, Swift.Error?) -> Swift.Void
  @discardableResult
  public static func getAllRelevantContent(with query: FlybitsKernelSDK.ContentQuery? = nil, completion: @escaping FlybitsKernelSDK.KernelAPIManager.ContentCompletion) -> FlybitsSDK.FlybitsRequest?
  @discardableResult
  public static func getAllContentInstances(with query: FlybitsKernelSDK.ContentQuery? = nil, completion: @escaping FlybitsKernelSDK.KernelAPIManager.ContentCompletion) -> FlybitsSDK.FlybitsRequest?
  public typealias ContentDataCompletion = ([FlybitsKernelSDK.ContentData]?, FlybitsSDK.Pager?, Swift.Error?) -> Swift.Void
  @discardableResult
  public static func getAllContentData(with query: FlybitsKernelSDK.ContentDataQuery, completion: @escaping FlybitsKernelSDK.KernelAPIManager.ContentDataCompletion) -> FlybitsSDK.FlybitsRequest?
  @discardableResult
  public static func getNextContentData(contentData: FlybitsKernelSDK.ContentData, query: FlybitsKernelSDK.ContentDataQuery, completion: @escaping (FlybitsKernelSDK.ContentData?, Swift.Error?) -> Swift.Void) -> FlybitsSDK.FlybitsRequest?
  @objc deinit
  @objc override dynamic public init()
}
@objc public class LocationQuery : ObjectiveC.NSObject, FlybitsSDK.DictionaryConvertible {
  public var key: Swift.String
  public var location: CoreLocation.CLLocationCoordinate2D
  public var radius: Swift.Double
  public var templateId: Swift.String?
  public init(key: Swift.String, location: CoreLocation.CLLocationCoordinate2D, radius: Swift.Double, templateId: Swift.String? = nil)
  public func toDictionary() throws -> [Swift.String : Any]
  @objc deinit
  @objc override dynamic public init()
}
@objc public class Content : ObjectiveC.NSObject, Swift.Decodable, FlybitsSDK.DictionaryConvertible {
  public static var favorites: [Swift.String] {
    get
  }
  public var identifier: Swift.String {
    get
  }
  public var tenantId: Swift.String? {
    get
  }
  public var templateId: Swift.String? {
    get
  }
  public var templateType: Swift.String? {
    get
  }
  public var labels: [Swift.String]? {
    get
  }
  public var name: FlybitsSDK.LocalizedObject<Swift.String>? {
    get
  }
  public var contentDescription: FlybitsSDK.LocalizedObject<Swift.String>? {
    get
  }
  public var createdAt: Swift.Double {
    get
  }
  public var modifiedAt: Swift.Double {
    get
  }
  public var evaluatedAt: Swift.Double {
    get
  }
  public var iconUrl: Swift.String? {
    get
  }
  public var metadata: [Swift.String : Any]? {
    get
  }
  public var surveyMetadata: [Swift.String : Any]? {
    get
  }
  public var pagedContentData: FlybitsSDK.Paged<FlybitsKernelSDK.ContentData>? {
    get
  }
  public var isFavorite: Swift.Bool {
    get
  }
  public var experienceId: Swift.String? {
    get
  }
  public var pushRequestId: Swift.String? {
    get
    set
  }
  required public init(from decoder: Swift.Decoder) throws
  public static func getAllRelevant(with query: FlybitsKernelSDK.ContentQuery? = nil, includeRTF: Swift.Bool = false, completion: @escaping (FlybitsSDK.Paged<FlybitsKernelSDK.Content>?, Swift.Error?) -> Swift.Void) -> FlybitsSDK.FlybitsRequest?
  public static func getAllInstances(with query: FlybitsKernelSDK.ContentQuery? = nil, includeRTF: Swift.Bool = false, completion: @escaping (FlybitsSDK.Paged<FlybitsKernelSDK.Content>?, Swift.Error?) -> Swift.Void) -> FlybitsSDK.FlybitsRequest?
  public static func getInstances(withIds instanceIdentifiers: [Swift.String], query: FlybitsKernelSDK.ContentQuery? = nil, includeRTF: Swift.Bool = false, completion: @escaping (FlybitsSDK.Paged<FlybitsKernelSDK.Content>?, Swift.Error?) -> Swift.Void) -> FlybitsSDK.FlybitsRequest?
  public static func getInstance(identifier: Swift.String, query: FlybitsKernelSDK.ContentQuery? = nil, includeRTF: Swift.Bool = false, completion: @escaping (FlybitsKernelSDK.Content?, Swift.Error?) -> Swift.Void) -> FlybitsSDK.FlybitsRequest?
  public static func addInstance(_ content: FlybitsKernelSDK.Content, completion: @escaping (FlybitsKernelSDK.Content?, Swift.Error?) -> Swift.Void) -> FlybitsSDK.FlybitsRequest?
  public static func updateInstance(_ content: FlybitsKernelSDK.Content, completion: @escaping (FlybitsKernelSDK.Content?, Swift.Error?) -> Swift.Void) -> FlybitsSDK.FlybitsRequest?
  public static func deleteInstance(identifier: Swift.String, completion: @escaping (Swift.Error?) -> Swift.Void) -> FlybitsSDK.FlybitsRequest?
  public static func getAllData<T>(with query: FlybitsKernelSDK.ContentDataQuery, includeRTF: Swift.Bool = false, completion: @escaping (FlybitsSDK.Paged<T>?, Swift.Error?) -> Swift.Void) -> FlybitsSDK.FlybitsRequest? where T : FlybitsKernelSDK.ContentData
  public static func getData<T>(identifier: Swift.String, query: FlybitsKernelSDK.ContentDataQuery, includeRTF: Swift.Bool = false, completion: @escaping (T?, Swift.Error?) -> Swift.Void) -> FlybitsSDK.FlybitsRequest? where T : FlybitsKernelSDK.ContentData
  public static func addData<T>(_ contentData: T, query: FlybitsKernelSDK.ContentDataQuery, completion: @escaping (T?, Swift.Error?) -> Swift.Void) -> FlybitsSDK.FlybitsRequest? where T : FlybitsKernelSDK.ContentData
  public static func updateData<T>(_ contentData: T, query: FlybitsKernelSDK.ContentDataQuery, completion: @escaping (T?, Swift.Error?) -> Swift.Void) -> FlybitsSDK.FlybitsRequest? where T : FlybitsKernelSDK.ContentData
  public static func deleteData(identifier: Swift.String, query: FlybitsKernelSDK.ContentDataQuery, completion: @escaping (Swift.Error?) -> Swift.Void) -> FlybitsSDK.FlybitsRequest?
  public static func instances(forExperience experienceId: Swift.String, with query: FlybitsKernelSDK.ContentQuery? = nil, includeRTF: Swift.Bool = false, completion: @escaping (FlybitsSDK.Paged<FlybitsKernelSDK.Content>?, Swift.Error?) -> Swift.Void) -> FlybitsSDK.FlybitsRequest?
  @discardableResult
  public func setFavorite(_ isFavorite: Swift.Bool, completion: ((Foundation.NSError?) -> Swift.Void)?) -> FlybitsSDK.FlybitsRequest?
  @discardableResult
  public func addFavorite(completion: ((Foundation.NSError?) -> Swift.Void)?) -> FlybitsSDK.FlybitsRequest?
  @discardableResult
  public func removeFavorite(completion: ((Foundation.NSError?) -> Swift.Void)?) -> FlybitsSDK.FlybitsRequest?
  public init(templateId: Swift.String, name: FlybitsSDK.LocalizedObject<Swift.String>, description: FlybitsSDK.LocalizedObject<Swift.String>)
  public func toDictionary() throws -> [Swift.String : Any]
  @objc deinit
  @objc override dynamic public init()
}
public class ExperienceQuery : FlybitsSDK.Query {
  public var labels: [Swift.String]?
  convenience public init(labels: [Swift.String]?, pager: FlybitsSDK.Pager? = nil)
  required public init(_ pager: FlybitsSDK.Pager?)
  override public func toDictionary() throws -> [Swift.String : Any]
  @objc deinit
  @objc override dynamic public init()
}
@objc open class ContentData : ObjectiveC.NSObject, Swift.Decodable, FlybitsSDK.DictionaryConvertible {
  public struct ContentInfo {
    public let contentId: Swift.String
    public let experienceId: Swift.String?
    public let pushRequestId: Swift.String?
    public let templateType: Swift.String?
  }
  public class LocationContentData : Swift.Decodable {
    required public init(from decoder: Swift.Decoder) throws
    @objc deinit
  }
  public var identifier: Swift.String? {
    get
  }
  public var contentInstanceId: Swift.String?
  public var locationContentData: FlybitsKernelSDK.ContentData.LocationContentData? {
    get
  }
  public var distance: Swift.Double? {
    get
  }
  public var contentInfo: FlybitsKernelSDK.ContentData.ContentInfo? {
    get
  }
  required public init(from decoder: Swift.Decoder) throws
  open func toDictionary() throws -> [Swift.String : Any]
  public static func getNext<T>(contentData: T, query: FlybitsKernelSDK.ContentDataQuery, completion: @escaping (T?, Swift.Error?) -> Swift.Void) -> FlybitsSDK.FlybitsRequest? where T : FlybitsKernelSDK.ContentData
  @objc deinit
  @objc override dynamic public init()
}
@objc @_inheritsConvenienceInitializers public class ContentAnalyticsContext : ObjectiveC.NSObject {
  public static func trackContentViewed(contentId: Swift.String, timestamp: Swift.Double? = nil, sendImmediately: Swift.Bool = false)
  public static func trackContentEngaged(contentId: Swift.String, timestamp: Swift.Double? = nil, sendImmediately: Swift.Bool = false)
  public static func trackContentFulfilled(contentId: Swift.String, timestamp: Swift.Double? = nil, sendImmediately: Swift.Bool = false)
  public static func trackContentComponentEngaged(contentId: Swift.String, componentId: Swift.String, timestamp: Swift.Double? = nil, sendImmediately: Swift.Bool = false)
  public static func trackContentComponentFulfilled(contentId: Swift.String, componentId: Swift.String, timestamp: Swift.Double? = nil, sendImmediately: Swift.Bool = false)
  @objc deinit
  @objc override dynamic public init()
}
@objc public class LabelsQuery : ObjectiveC.NSObject {
  public var predicates: [FlybitsKernelSDK.LabelsPredicate] {
    get
  }
  public var booleanOperator: FlybitsKernelSDK.BooleanOperator {
    get
  }
  @objc public init(predicates: [FlybitsKernelSDK.LabelsPredicate], booleanOperator: FlybitsKernelSDK.BooleanOperator)
  @objc override dynamic public init()
  @objc deinit
}
@objc public class LabelsPredicate : ObjectiveC.NSObject {
  @objc public var labels: [Swift.String]
  @objc public init(labels: [Swift.String], booleanOperator: FlybitsKernelSDK.BooleanOperator)
  @objc deinit
  @objc override dynamic public init()
}
@objc public enum BooleanOperator : Swift.Int {
  case and
  case or
  case none
  public typealias RawValue = Swift.Int
  public init?(rawValue: Swift.Int)
  public var rawValue: Swift.Int {
    get
  }
}
public class ContentDataQuery : FlybitsSDK.Query {
  public var instanceIdentifier: Swift.String?
  public var key: Swift.String?
  convenience public init(instanceIdentifier: Swift.String, key: Swift.String?, pager: FlybitsSDK.Pager? = nil)
  required public init(_ pager: FlybitsSDK.Pager?)
  override public func toDictionary() throws -> [Swift.String : Any]
  @objc deinit
  @objc override dynamic public init()
}
extension Group {
  public func groupName() -> Swift.String?
  public func localizedGroupName(_ locale: Foundation.Locale) -> Swift.String?
  public func groupDesc() -> Swift.String?
  public func localizedGroupDesc(_ locale: Foundation.Locale) -> Swift.String?
}
extension Experience {
  public func experienceName() -> Swift.String?
  public func localizedExperienceName(_ locale: Foundation.Locale) -> Swift.String?
  public func experienceDesc() -> Swift.String?
  public func localizedExperienceDesc(_ locale: Foundation.Locale) -> Swift.String?
  public class func experience(with name: Swift.String, description: Swift.String) -> FlybitsKernelSDK.Experience
}
extension Content {
  public func contentName() -> Swift.String?
  public func localizedContentName(_ locale: Foundation.Locale) -> Swift.String?
  public func contentDesc() -> Swift.String?
  public func localizedContentDesc(_ locale: Foundation.Locale) -> Swift.String?
  public func pagedContentDataList() -> [FlybitsKernelSDK.ContentData]?
  public func pagedContentDataPager() -> FlybitsSDK.Pager?
}
@objc @_inheritsConvenienceInitializers public class ExperienceContentAnalyticsContext : ObjectiveC.NSObject {
  public static func trackViewed(contentId: Swift.String, experienceId: Swift.String, value: Swift.Bool = true, timestamp: Swift.Double? = nil, sendImmediately: Swift.Bool = false)
  public static func trackFulfilled(contentId: Swift.String, experienceId: Swift.String, value: Swift.Bool = true, timestamp: Swift.Double? = nil, sendImmediately: Swift.Bool = false)
  public static func trackEngaged(contentId: Swift.String, experienceId: Swift.String, value: Swift.Bool = true, timestamp: Swift.Double? = nil, sendImmediately: Swift.Bool = false)
  public static func trackComponentFulfilled(contentId: Swift.String, experienceId: Swift.String, componentId: Swift.String, value: Swift.Bool = true, timestamp: Swift.Double? = nil, sendImmediately: Swift.Bool = false)
  @objc deinit
  @objc override dynamic public init()
}
extension FlybitsKernelSDK.BooleanOperator : Swift.Equatable {}
extension FlybitsKernelSDK.BooleanOperator : Swift.Hashable {}
extension FlybitsKernelSDK.BooleanOperator : Swift.RawRepresentable {}
