@shortkitsdk/react-native 0.2.11 → 0.2.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/android/build.gradle.kts +13 -1
  2. package/android/src/main/java/com/shortkit/reactnative/ReactCarouselOverlayHost.kt +157 -54
  3. package/android/src/main/java/com/shortkit/reactnative/ReactOverlayHost.kt +67 -56
  4. package/android/src/main/java/com/shortkit/reactnative/ReactVideoCarouselOverlayHost.kt +431 -0
  5. package/android/src/main/java/com/shortkit/reactnative/ShortKitBridge.kt +154 -26
  6. package/android/src/main/java/com/shortkit/reactnative/ShortKitFeedView.kt +160 -35
  7. package/android/src/main/java/com/shortkit/reactnative/ShortKitFeedViewManager.kt +5 -0
  8. package/android/src/main/java/com/shortkit/reactnative/ShortKitModule.kt +45 -10
  9. package/android/src/main/java/com/shortkit/reactnative/ShortKitPlayerNativeView.kt +9 -0
  10. package/ios/ReactCarouselOverlayHost.swift +37 -17
  11. package/ios/ReactOverlayHost.swift +33 -35
  12. package/ios/ReactVideoCarouselOverlayHost.swift +283 -0
  13. package/ios/ShortKitBridge.swift +78 -2
  14. package/ios/ShortKitFeedView.swift +24 -3
  15. package/ios/ShortKitModule.mm +6 -2
  16. package/ios/ShortKitSDK.xcframework/Info.plist +4 -4
  17. package/ios/ShortKitSDK.xcframework/ios-arm64/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/arm64-apple-ios.abi.json +2597 -389
  18. package/ios/ShortKitSDK.xcframework/ios-arm64/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/arm64-apple-ios.private.swiftinterface +69 -5
  19. package/ios/ShortKitSDK.xcframework/ios-arm64/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  20. package/ios/ShortKitSDK.xcframework/ios-arm64/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/arm64-apple-ios.swiftinterface +69 -5
  21. package/ios/ShortKitSDK.xcframework/ios-arm64/ShortKitSDK.framework/ShortKitSDK +0 -0
  22. package/ios/ShortKitSDK.xcframework/ios-arm64/ShortKitSDK.framework/_CodeSignature/CodeResources +168 -0
  23. package/ios/ShortKitSDK.xcframework/ios-arm64-simulator/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/arm64-apple-ios-simulator.abi.json +2597 -389
  24. package/ios/ShortKitSDK.xcframework/ios-arm64-simulator/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +69 -5
  25. package/ios/ShortKitSDK.xcframework/ios-arm64-simulator/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  26. package/ios/ShortKitSDK.xcframework/ios-arm64-simulator/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/arm64-apple-ios-simulator.swiftinterface +69 -5
  27. package/ios/ShortKitSDK.xcframework/ios-arm64-simulator/ShortKitSDK.framework/ShortKitSDK +0 -0
  28. package/ios/ShortKitSDK.xcframework/ios-arm64-simulator/ShortKitSDK.framework/_CodeSignature/CodeResources +168 -0
  29. package/ios/ShortKitSDK.xcframework.bak2/Info.plist +43 -0
  30. package/ios/ShortKitSDK.xcframework.bak2/ios-arm64/ShortKitSDK.framework/Headers/ShortKitSDK-Swift.h +418 -0
  31. package/ios/ShortKitSDK.xcframework.bak2/ios-arm64/ShortKitSDK.framework/Info.plist +16 -0
  32. package/ios/ShortKitSDK.xcframework.bak2/ios-arm64/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/arm64-apple-ios.abi.json +31351 -0
  33. package/ios/ShortKitSDK.xcframework.bak2/ios-arm64/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/arm64-apple-ios.private.swiftinterface +865 -0
  34. package/ios/ShortKitSDK.xcframework.bak2/ios-arm64/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  35. package/ios/ShortKitSDK.xcframework.bak2/ios-arm64/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/arm64-apple-ios.swiftinterface +865 -0
  36. package/ios/ShortKitSDK.xcframework.bak2/ios-arm64/ShortKitSDK.framework/Modules/module.modulemap +4 -0
  37. package/ios/ShortKitSDK.xcframework.bak2/ios-arm64/ShortKitSDK.framework/ShortKitSDK +0 -0
  38. package/ios/ShortKitSDK.xcframework.bak2/ios-arm64-simulator/ShortKitSDK.framework/Headers/ShortKitSDK-Swift.h +418 -0
  39. package/ios/ShortKitSDK.xcframework.bak2/ios-arm64-simulator/ShortKitSDK.framework/Info.plist +16 -0
  40. package/ios/ShortKitSDK.xcframework.bak2/ios-arm64-simulator/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/arm64-apple-ios-simulator.abi.json +31351 -0
  41. package/ios/ShortKitSDK.xcframework.bak2/ios-arm64-simulator/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +865 -0
  42. package/ios/ShortKitSDK.xcframework.bak2/ios-arm64-simulator/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  43. package/ios/ShortKitSDK.xcframework.bak2/ios-arm64-simulator/ShortKitSDK.framework/Modules/ShortKitSDK.swiftmodule/arm64-apple-ios-simulator.swiftinterface +865 -0
  44. package/ios/ShortKitSDK.xcframework.bak2/ios-arm64-simulator/ShortKitSDK.framework/Modules/module.modulemap +4 -0
  45. package/ios/ShortKitSDK.xcframework.bak2/ios-arm64-simulator/ShortKitSDK.framework/ShortKitSDK +0 -0
  46. package/package.json +1 -1
  47. package/src/ShortKitCarouselOverlaySurface.tsx +57 -2
  48. package/src/ShortKitContext.ts +2 -1
  49. package/src/ShortKitFeed.tsx +19 -1
  50. package/src/ShortKitOverlaySurface.tsx +148 -41
  51. package/src/ShortKitPlayer.tsx +25 -3
  52. package/src/ShortKitProvider.tsx +4 -2
  53. package/src/ShortKitVideoCarouselOverlaySurface.tsx +156 -0
  54. package/src/index.ts +8 -1
  55. package/src/serialization.ts +8 -0
  56. package/src/specs/NativeShortKitModule.ts +31 -1
  57. package/src/types.ts +45 -1
@@ -0,0 +1,865 @@
1
+ // swift-interface-format-version: 1.0
2
+ // swift-compiler-version: Apple Swift version 6.1 effective-5.10 (swiftlang-6.1.0.110.21 clang-1700.0.13.3)
3
+ // swift-module-flags: -target arm64-apple-ios15.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -O -module-name ShortKitSDK -package-name swift_sdk
4
+ // swift-module-flags-ignorable: -interface-compiler-version 6.1
5
+ import AVFoundation
6
+ import Combine
7
+ import CoreGraphics
8
+ import Foundation
9
+ import Network
10
+ import QuartzCore
11
+ import Swift
12
+ import SwiftUI
13
+ import UIKit
14
+ import _Concurrency
15
+ import _StringProcessing
16
+ import _SwiftConcurrencyShims
17
+ public enum AdQuartile {
18
+ case first
19
+ case midpoint
20
+ case third
21
+ public static func == (a: ShortKitSDK.AdQuartile, b: ShortKitSDK.AdQuartile) -> Swift.Bool
22
+ public func hash(into hasher: inout Swift.Hasher)
23
+ public var hashValue: Swift.Int {
24
+ get
25
+ }
26
+ }
27
+ public protocol ShortKitAdDelegate : AnyObject {
28
+ func adDidStart(_ ad: ShortKitSDK.PreparedAd)
29
+ func adDidReachQuartile(_ ad: ShortKitSDK.PreparedAd, quartile: ShortKitSDK.AdQuartile)
30
+ func adDidComplete(_ ad: ShortKitSDK.PreparedAd)
31
+ func adWasSkipped(_ ad: ShortKitSDK.PreparedAd, watchTime: Foundation.TimeInterval)
32
+ func adDidFail(_ ad: ShortKitSDK.PreparedAd, error: ShortKitSDK.AdError)
33
+ func adDidReceiveClick(_ ad: ShortKitSDK.PreparedAd)
34
+ }
35
+ public protocol ShortKitAdProvider : AnyObject {
36
+ func loadAd(for slot: ShortKitSDK.AdSlot, completion: @escaping (Swift.Result<ShortKitSDK.PreparedAd, ShortKitSDK.AdError>) -> Swift.Void)
37
+ func displayAd(_ ad: ShortKitSDK.PreparedAd, in container: UIKit.UIView, presentingViewController: UIKit.UIViewController, delegate: any ShortKitSDK.ShortKitAdDelegate)
38
+ func dismissAd(_ ad: ShortKitSDK.PreparedAd)
39
+ }
40
+ public protocol BandwidthMonitorProtocol : AnyObject {
41
+ var isDesaturated: Swift.Bool { get }
42
+ var onDesaturationChanged: ((Swift.Bool) -> Swift.Void)? { get set }
43
+ func startObserving(activePlayer: AVFoundation.AVPlayer, nextPlayer: AVFoundation.AVPlayer?)
44
+ func stopObserving()
45
+ }
46
+ final public class BandwidthMonitor : ShortKitSDK.BandwidthMonitorProtocol {
47
+ final public var isDesaturated: Swift.Bool {
48
+ get
49
+ }
50
+ final public var onDesaturationChanged: ((Swift.Bool) -> Swift.Void)?
51
+ public init(activeThreshold: Foundation.TimeInterval = 15.0, nextThreshold: Foundation.TimeInterval = 2.0, pollInterval: Foundation.TimeInterval = 2.0)
52
+ @objc deinit
53
+ final public func startObserving(activePlayer: AVFoundation.AVPlayer, nextPlayer: AVFoundation.AVPlayer?)
54
+ final public func stopObserving()
55
+ public static func isDesaturated(activeBufferedAhead: Foundation.TimeInterval, activeThreshold: Foundation.TimeInterval, nextBuffered: Foundation.TimeInterval, nextThreshold: Foundation.TimeInterval) -> Swift.Bool
56
+ }
57
+ @objc final public class CachingResourceLoader : ObjectiveC.NSObject, AVFoundation.AVAssetResourceLoaderDelegate, @unchecked Swift.Sendable {
58
+ public static let cacheScheme: Swift.String
59
+ final public let segmentCache: any ShortKitSDK.SegmentCacheProtocol
60
+ final public var segmentServer: ShortKitSDK.SegmentHTTPServer?
61
+ public init(segmentCache: any ShortKitSDK.SegmentCacheProtocol, session: Foundation.URLSession = .shared)
62
+ final public var urlMapping: [Foundation.URL : Foundation.URL] {
63
+ get
64
+ }
65
+ public static func cacheSchemeURL(for url: Foundation.URL) -> Foundation.URL
66
+ public static func originalURL(for url: Foundation.URL) -> Foundation.URL
67
+ public static func isSegmentRequest(_ url: Foundation.URL) -> Swift.Bool
68
+ public static func isManifestRequest(_ url: Foundation.URL) -> Swift.Bool
69
+ public static func segmentIndex(from url: Foundation.URL) -> Swift.Int?
70
+ public static func shouldServeCached(videoID: Swift.String, rendition: Swift.String, segmentIndex: Swift.Int, cache: any ShortKitSDK.SegmentCacheProtocol) -> Swift.Bool
71
+ final public func makeAsset(for url: Foundation.URL, videoID: Swift.String, rendition: Swift.String) -> AVFoundation.AVURLAsset
72
+ final public func hasCachedContent(for videoID: Swift.String) -> Swift.Bool
73
+ final public func cachedRendition(for videoID: Swift.String) -> Swift.String?
74
+ @objc final public func resourceLoader(_ resourceLoader: AVFoundation.AVAssetResourceLoader, shouldWaitForLoadingOfRequestedResource loadingRequest: AVFoundation.AVAssetResourceLoadingRequest) -> Swift.Bool
75
+ @objc final public func resourceLoader(_ resourceLoader: AVFoundation.AVAssetResourceLoader, didCancel loadingRequest: AVFoundation.AVAssetResourceLoadingRequest)
76
+ @objc deinit
77
+ }
78
+ public protocol ColdStartManagerProtocol : Swift.Sendable {
79
+ func cachedFeedItems() -> [ShortKitSDK.FeedItem]
80
+ var hasCachedContent: Swift.Bool { get }
81
+ }
82
+ final public class ColdStartManager : ShortKitSDK.ColdStartManagerProtocol, @unchecked Swift.Sendable {
83
+ public init(cache: any ShortKitSDK.SegmentCacheProtocol, enabled: Swift.Bool = true)
84
+ final public var hasCachedContent: Swift.Bool {
85
+ get
86
+ }
87
+ final public func cachedFeedItems() -> [ShortKitSDK.FeedItem]
88
+ @objc deinit
89
+ }
90
+ public struct HLSRendition {
91
+ public let bandwidth: Swift.Int
92
+ public let resolution: CoreFoundation.CGSize
93
+ public let url: Foundation.URL
94
+ }
95
+ public struct HLSSegment {
96
+ public let index: Swift.Int
97
+ public let duration: Swift.Double
98
+ public let url: Foundation.URL
99
+ }
100
+ public enum HLSManifestParser {
101
+ public static func parseRenditions(from manifest: Swift.String) -> [ShortKitSDK.HLSRendition]
102
+ public static func selectRendition(from renditions: [ShortKitSDK.HLSRendition], targetHeight: CoreFoundation.CGFloat) -> ShortKitSDK.HLSRendition?
103
+ public static func parseSegments(from manifest: Swift.String) -> [ShortKitSDK.HLSSegment]
104
+ public static func rewriteURLs(in manifest: Swift.String, toScheme scheme: Swift.String) -> Swift.String
105
+ public static func reorderManifest(_ manifest: Swift.String, preferringHeight: CoreFoundation.CGFloat) -> Swift.String
106
+ }
107
+ public struct CachedVideoMeta : Swift.Codable {
108
+ public let contentItem: ShortKitSDK.ContentItem
109
+ public let streamingUrl: Swift.String
110
+ public let cachedRendition: Swift.String
111
+ public let cachedSegmentCount: Swift.Int
112
+ public let cachedAt: Foundation.Date
113
+ public let thumbnailData: Foundation.Data?
114
+ public init(contentItem: ShortKitSDK.ContentItem, streamingUrl: Swift.String, cachedRendition: Swift.String, cachedSegmentCount: Swift.Int, cachedAt: Foundation.Date, thumbnailData: Foundation.Data?)
115
+ public func encode(to encoder: any Swift.Encoder) throws
116
+ public init(from decoder: any Swift.Decoder) throws
117
+ }
118
+ public protocol SegmentCacheProtocol : AnyObject, Swift.Sendable {
119
+ func segment(for videoID: Swift.String, rendition: Swift.String, index: Swift.Int) -> Foundation.Data?
120
+ func storeSegment(_ data: Foundation.Data, for videoID: Swift.String, rendition: Swift.String, index: Swift.Int)
121
+ func hasSegment(for videoID: Swift.String, rendition: Swift.String, index: Swift.Int) -> Swift.Bool
122
+ func cachedVideoMetas() -> [ShortKitSDK.CachedVideoMeta]
123
+ func storeVideoMeta(_ meta: ShortKitSDK.CachedVideoMeta)
124
+ func videoMeta(for videoID: Swift.String) -> ShortKitSDK.CachedVideoMeta?
125
+ var totalSize: Swift.Int64 { get }
126
+ func evictIfNeeded()
127
+ func clearAll()
128
+ }
129
+ final public class SegmentCache : ShortKitSDK.SegmentCacheProtocol, @unchecked Swift.Sendable {
130
+ public init(directory: Foundation.URL? = nil, budgetBytes: Swift.Int64 = 50 * 1024 * 1024)
131
+ final public func segment(for videoID: Swift.String, rendition: Swift.String, index: Swift.Int) -> Foundation.Data?
132
+ final public func storeSegment(_ data: Foundation.Data, for videoID: Swift.String, rendition: Swift.String, index: Swift.Int)
133
+ final public func hasSegment(for videoID: Swift.String, rendition: Swift.String, index: Swift.Int) -> Swift.Bool
134
+ final public func cachedVideoMetas() -> [ShortKitSDK.CachedVideoMeta]
135
+ final public func storeVideoMeta(_ meta: ShortKitSDK.CachedVideoMeta)
136
+ final public func videoMeta(for videoID: Swift.String) -> ShortKitSDK.CachedVideoMeta?
137
+ final public var totalSize: Swift.Int64 {
138
+ get
139
+ }
140
+ final public func evictIfNeeded()
141
+ final public func clearAll()
142
+ @objc deinit
143
+ }
144
+ final public class SegmentHTTPServer {
145
+ final public var port: Swift.UInt16? {
146
+ get
147
+ }
148
+ public init(cache: any ShortKitSDK.SegmentCacheProtocol)
149
+ @objc deinit
150
+ final public func start() throws
151
+ final public func stop()
152
+ }
153
+ public protocol SegmentPrefetcherProtocol : AnyObject {
154
+ func updateCurrentIndex(_ index: Swift.Int, feedItems: [ShortKitSDK.FeedItem])
155
+ func pause()
156
+ func resume()
157
+ }
158
+ final public class SegmentPrefetcher : ShortKitSDK.SegmentPrefetcherProtocol {
159
+ public init(cache: any ShortKitSDK.SegmentCacheProtocol, monitor: any ShortKitSDK.BandwidthMonitorProtocol, session: Foundation.URLSession? = nil, targetRenditionHeight: Swift.Int = 720, maxCachedVideos: Swift.Int = 7)
160
+ final public func updateCurrentIndex(_ index: Swift.Int, feedItems: [ShortKitSDK.FeedItem])
161
+ final public func pause()
162
+ final public func resume()
163
+ @objc deinit
164
+ }
165
+ public enum FeedHeight : Swift.Codable, Swift.Equatable, Swift.Sendable {
166
+ case fullscreen
167
+ case percentage(CoreFoundation.CGFloat)
168
+ public static func == (a: ShortKitSDK.FeedHeight, b: ShortKitSDK.FeedHeight) -> Swift.Bool
169
+ public func encode(to encoder: any Swift.Encoder) throws
170
+ public init(from decoder: any Swift.Decoder) throws
171
+ }
172
+ public enum ScrollAxis : Swift.String, Swift.Codable, Swift.Equatable, Swift.Sendable {
173
+ case vertical
174
+ case horizontal
175
+ public init?(rawValue: Swift.String)
176
+ public typealias RawValue = Swift.String
177
+ public var rawValue: Swift.String {
178
+ get
179
+ }
180
+ }
181
+ public enum FeedSource : Swift.String, Swift.Codable, Swift.Equatable, Swift.Sendable {
182
+ case algorithmic
183
+ case custom
184
+ public init?(rawValue: Swift.String)
185
+ public typealias RawValue = Swift.String
186
+ public var rawValue: Swift.String {
187
+ get
188
+ }
189
+ }
190
+ public struct FeedFilter : Swift.Codable, Swift.Equatable, Swift.Sendable {
191
+ public var tags: [Swift.String]?
192
+ public var section: Swift.String?
193
+ public var author: Swift.String?
194
+ public var contentType: Swift.String?
195
+ public var metadata: [Swift.String : Swift.String]?
196
+ public init(tags: [Swift.String]? = nil, section: Swift.String? = nil, author: Swift.String? = nil, contentType: Swift.String? = nil, metadata: [Swift.String : Swift.String]? = nil)
197
+ public static func == (a: ShortKitSDK.FeedFilter, b: ShortKitSDK.FeedFilter) -> Swift.Bool
198
+ public func encode(to encoder: any Swift.Encoder) throws
199
+ public init(from decoder: any Swift.Decoder) throws
200
+ }
201
+ public struct FeedConfig : Swift.Codable {
202
+ public var feedHeight: ShortKitSDK.FeedHeight
203
+ public var scrollAxis: ShortKitSDK.ScrollAxis
204
+ public var videoOverlay: ShortKitSDK.VideoOverlayMode
205
+ public var carouselOverlay: ShortKitSDK.CarouselOverlayMode
206
+ public var surveyOverlay: ShortKitSDK.SurveyOverlayMode
207
+ public var adOverlay: ShortKitSDK.AdOverlayMode
208
+ public var muteOnStart: Swift.Bool
209
+ public var autoplay: Swift.Bool
210
+ public var feedSource: ShortKitSDK.FeedSource
211
+ public var coldStartEnabled: Swift.Bool
212
+ public var filter: ShortKitSDK.FeedFilter?
213
+ public var preload: ShortKitSDK.FeedPreload?
214
+ public init(feedHeight: ShortKitSDK.FeedHeight = .fullscreen, scrollAxis: ShortKitSDK.ScrollAxis = .vertical, videoOverlay: ShortKitSDK.VideoOverlayMode = .none, carouselOverlay: ShortKitSDK.CarouselOverlayMode = .none, surveyOverlay: ShortKitSDK.SurveyOverlayMode = .none, adOverlay: ShortKitSDK.AdOverlayMode = .none, muteOnStart: Swift.Bool = true, autoplay: Swift.Bool = true, feedSource: ShortKitSDK.FeedSource = .algorithmic, coldStartEnabled: Swift.Bool = false, filter: ShortKitSDK.FeedFilter? = nil, preload: ShortKitSDK.FeedPreload? = nil)
215
+ public func encode(to encoder: any Swift.Encoder) throws
216
+ public init(from decoder: any Swift.Decoder) throws
217
+ }
218
+ public enum VideoOverlayMode {
219
+ case none
220
+ case custom(@Sendable () -> any UIKit.UIView & ShortKitSDK.FeedOverlay)
221
+ }
222
+ extension ShortKitSDK.VideoOverlayMode {
223
+ public static func swiftUI<Content>(@SwiftUICore.ViewBuilder content: @escaping @Sendable (ShortKitSDK.ShortKitPlayer, ShortKitSDK.CellContent) -> Content) -> ShortKitSDK.VideoOverlayMode where Content : SwiftUICore.View
224
+ }
225
+ extension ShortKitSDK.VideoOverlayMode : Swift.Equatable {
226
+ public static func == (lhs: ShortKitSDK.VideoOverlayMode, rhs: ShortKitSDK.VideoOverlayMode) -> Swift.Bool
227
+ }
228
+ extension ShortKitSDK.VideoOverlayMode : Swift.Codable {
229
+ public init(from decoder: any Swift.Decoder) throws
230
+ public func encode(to encoder: any Swift.Encoder) throws
231
+ }
232
+ public enum CarouselOverlayMode {
233
+ case none
234
+ case custom(@Sendable () -> any UIKit.UIView & ShortKitSDK.CarouselOverlay)
235
+ }
236
+ extension ShortKitSDK.CarouselOverlayMode : Swift.Equatable {
237
+ public static func == (lhs: ShortKitSDK.CarouselOverlayMode, rhs: ShortKitSDK.CarouselOverlayMode) -> Swift.Bool
238
+ }
239
+ extension ShortKitSDK.CarouselOverlayMode : Swift.Codable {
240
+ public init(from decoder: any Swift.Decoder) throws
241
+ public func encode(to encoder: any Swift.Encoder) throws
242
+ }
243
+ public enum SurveyOverlayMode {
244
+ case none
245
+ case custom(@Sendable () -> any UIKit.UIView & ShortKitSDK.SurveyOverlay)
246
+ }
247
+ extension ShortKitSDK.SurveyOverlayMode : Swift.Equatable {
248
+ public static func == (lhs: ShortKitSDK.SurveyOverlayMode, rhs: ShortKitSDK.SurveyOverlayMode) -> Swift.Bool
249
+ }
250
+ extension ShortKitSDK.SurveyOverlayMode : Swift.Codable {
251
+ public init(from decoder: any Swift.Decoder) throws
252
+ public func encode(to encoder: any Swift.Encoder) throws
253
+ }
254
+ public enum AdOverlayMode {
255
+ case none
256
+ case custom(@Sendable () -> any UIKit.UIView & ShortKitSDK.AdOverlay)
257
+ }
258
+ extension ShortKitSDK.AdOverlayMode : Swift.Equatable {
259
+ public static func == (lhs: ShortKitSDK.AdOverlayMode, rhs: ShortKitSDK.AdOverlayMode) -> Swift.Bool
260
+ }
261
+ extension ShortKitSDK.AdOverlayMode : Swift.Codable {
262
+ public init(from decoder: any Swift.Decoder) throws
263
+ public func encode(to encoder: any Swift.Encoder) throws
264
+ }
265
+ public protocol ShortKitDelegate : AnyObject {
266
+ func shortKitDidRequestRefresh(_ shortKit: ShortKitSDK.ShortKit)
267
+ func shortKit(_ shortKit: ShortKitSDK.ShortKit, didTapContent contentId: Swift.String, at index: Swift.Int)
268
+ func shortKit(_ shortKit: ShortKitSDK.ShortKit, didFetchContentItems items: [ShortKitSDK.ContentItem])
269
+ }
270
+ extension ShortKitSDK.ShortKitDelegate {
271
+ public func shortKitDidRequestRefresh(_ shortKit: ShortKitSDK.ShortKit)
272
+ public func shortKit(_ shortKit: ShortKitSDK.ShortKit, didTapContent contentId: Swift.String, at index: Swift.Int)
273
+ public func shortKit(_ shortKit: ShortKitSDK.ShortKit, didFetchContentItems items: [ShortKitSDK.ContentItem])
274
+ }
275
+ @_hasMissingDesignatedInitializers final public class FeedPreload : @unchecked Swift.Sendable {
276
+ @objc deinit
277
+ }
278
+ @_Concurrency.MainActor @preconcurrency public struct ShortKitFeedView : SwiftUI.UIViewControllerRepresentable {
279
+ @_Concurrency.MainActor @preconcurrency public init(shortKit: ShortKitSDK.ShortKit, config: ShortKitSDK.FeedConfig = FeedConfig(), onFeedReady: (() -> Swift.Void)? = nil)
280
+ @_Concurrency.MainActor @preconcurrency public func makeCoordinator() -> ShortKitSDK.ShortKitFeedView.Coordinator
281
+ @_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: ShortKitSDK.ShortKitFeedView.Context) -> ShortKitSDK.ShortKitFeedViewController
282
+ @_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: ShortKitSDK.ShortKitFeedViewController, context: ShortKitSDK.ShortKitFeedView.Context)
283
+ @_hasMissingDesignatedInitializers final public class Coordinator {
284
+ weak final public var feedViewController: ShortKitSDK.ShortKitFeedViewController?
285
+ @objc deinit
286
+ }
287
+ public typealias Body = Swift.Never
288
+ public typealias UIViewControllerType = ShortKitSDK.ShortKitFeedViewController
289
+ }
290
+ @objc @_hasMissingDesignatedInitializers @_Concurrency.MainActor @preconcurrency public class ShortKitFeedViewController : UIKit.UIViewController {
291
+ @_Concurrency.MainActor @preconcurrency public var onDismiss: (() -> Swift.Void)?
292
+ @_Concurrency.MainActor @preconcurrency public var onRemainingContentCountChange: ((Swift.Int) -> Swift.Void)?
293
+ @_Concurrency.MainActor @preconcurrency public var onFeedReady: (() -> Swift.Void)?
294
+ @_Concurrency.MainActor @preconcurrency public init(shortKit: ShortKitSDK.ShortKit, config: ShortKitSDK.FeedConfig, startAtItemId: Swift.String? = nil)
295
+ @_Concurrency.MainActor public func setFeedItems(_ items: [ShortKitSDK.FeedInput])
296
+ @_Concurrency.MainActor public func appendFeedItems(_ items: [ShortKitSDK.FeedInput])
297
+ @_Concurrency.MainActor public func applyFilter(_ filter: ShortKitSDK.FeedFilter?)
298
+ @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad()
299
+ @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLayoutSubviews()
300
+ @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewWillAppear(_ animated: Swift.Bool)
301
+ @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidAppear(_ animated: Swift.Bool)
302
+ @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewWillDisappear(_ animated: Swift.Bool)
303
+ @_Concurrency.MainActor @preconcurrency public func setBridgeManaged()
304
+ @_Concurrency.MainActor @preconcurrency public func activate()
305
+ @_Concurrency.MainActor @preconcurrency public func deactivate()
306
+ @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidDisappear(_ animated: Swift.Bool)
307
+ @_Concurrency.MainActor @preconcurrency @objc override dynamic public var supportedInterfaceOrientations: UIKit.UIInterfaceOrientationMask {
308
+ @objc get
309
+ }
310
+ @objc deinit
311
+ }
312
+ extension ShortKitSDK.ShortKitFeedViewController : UIKit.UICollectionViewDelegate {
313
+ @_Concurrency.MainActor @preconcurrency @objc dynamic public func collectionView(_ collectionView: UIKit.UICollectionView, willDisplay cell: UIKit.UICollectionViewCell, forItemAt indexPath: Foundation.IndexPath)
314
+ @_Concurrency.MainActor @preconcurrency @objc dynamic public func scrollViewWillEndDragging(_ scrollView: UIKit.UIScrollView, withVelocity velocity: CoreFoundation.CGPoint, targetContentOffset: Swift.UnsafeMutablePointer<CoreFoundation.CGPoint>)
315
+ @_Concurrency.MainActor @preconcurrency @objc dynamic public func scrollViewWillBeginDragging(_ scrollView: UIKit.UIScrollView)
316
+ @_Concurrency.MainActor @preconcurrency @objc dynamic public func scrollViewDidEndDecelerating(_ scrollView: UIKit.UIScrollView)
317
+ @_Concurrency.MainActor @preconcurrency @objc dynamic public func scrollViewDidEndDragging(_ scrollView: UIKit.UIScrollView, willDecelerate decelerate: Swift.Bool)
318
+ @_Concurrency.MainActor @preconcurrency @objc dynamic public func scrollViewDidScroll(_ scrollView: UIKit.UIScrollView)
319
+ }
320
+ extension ShortKitSDK.ShortKitFeedViewController : UIKit.UICollectionViewDataSourcePrefetching {
321
+ @_Concurrency.MainActor @preconcurrency @objc dynamic public func collectionView(_ collectionView: UIKit.UICollectionView, prefetchItemsAt indexPaths: [Foundation.IndexPath])
322
+ }
323
+ extension ShortKitSDK.ShortKitFeedViewController : ShortKitSDK.ShortKitAdDelegate {
324
+ @_Concurrency.MainActor @preconcurrency public func adDidStart(_ ad: ShortKitSDK.PreparedAd)
325
+ @_Concurrency.MainActor @preconcurrency public func adDidReachQuartile(_ ad: ShortKitSDK.PreparedAd, quartile: ShortKitSDK.AdQuartile)
326
+ @_Concurrency.MainActor @preconcurrency public func adDidComplete(_ ad: ShortKitSDK.PreparedAd)
327
+ @_Concurrency.MainActor @preconcurrency public func adWasSkipped(_ ad: ShortKitSDK.PreparedAd, watchTime: Foundation.TimeInterval)
328
+ @_Concurrency.MainActor @preconcurrency public func adDidFail(_ ad: ShortKitSDK.PreparedAd, error: ShortKitSDK.AdError)
329
+ @_Concurrency.MainActor @preconcurrency public func adDidReceiveClick(_ ad: ShortKitSDK.PreparedAd)
330
+ }
331
+ public enum AdError : Swift.Error, Swift.Equatable {
332
+ case noFill
333
+ case timeout
334
+ case networkError(Swift.String)
335
+ case providerError(Swift.String)
336
+ public static func == (a: ShortKitSDK.AdError, b: ShortKitSDK.AdError) -> Swift.Bool
337
+ }
338
+ public enum SkipPolicy : Swift.Sendable, Swift.Equatable {
339
+ case nonSkippable
340
+ case skippableAfter(seconds: Foundation.TimeInterval)
341
+ case alwaysSkippable
342
+ public static func == (a: ShortKitSDK.SkipPolicy, b: ShortKitSDK.SkipPolicy) -> Swift.Bool
343
+ }
344
+ public struct NativeAssetKeyMap : Swift.Codable, Swift.Sendable, Swift.Equatable {
345
+ public let videoUrl: Swift.String?
346
+ public let headline: Swift.String?
347
+ public let ctaText: Swift.String?
348
+ public let sponsorName: Swift.String?
349
+ public let sponsorLogo: Swift.String?
350
+ public init(videoUrl: Swift.String? = nil, headline: Swift.String? = nil, ctaText: Swift.String? = nil, sponsorName: Swift.String? = nil, sponsorLogo: Swift.String? = nil)
351
+ public static func == (a: ShortKitSDK.NativeAssetKeyMap, b: ShortKitSDK.NativeAssetKeyMap) -> Swift.Bool
352
+ public func encode(to encoder: any Swift.Encoder) throws
353
+ public init(from decoder: any Swift.Decoder) throws
354
+ }
355
+ public struct AdSlot : Swift.Codable, Swift.Sendable, Swift.Equatable {
356
+ public let id: Swift.String
357
+ public let position: Swift.Int
358
+ public let adTagUrl: Swift.String?
359
+ public let adUnitId: Swift.String?
360
+ public let targeting: [Swift.String : Swift.String]
361
+ public let skipPolicy: ShortKitSDK.SkipPolicy
362
+ public let adFormat: Swift.String?
363
+ public let nativeFormatId: Swift.String?
364
+ public let nativeAssetKeys: ShortKitSDK.NativeAssetKeyMap?
365
+ public init(id: Swift.String, position: Swift.Int, adTagUrl: Swift.String? = nil, adUnitId: Swift.String? = nil, targeting: [Swift.String : Swift.String] = [:], skipPolicy: ShortKitSDK.SkipPolicy, adFormat: Swift.String? = nil, nativeFormatId: Swift.String? = nil, nativeAssetKeys: ShortKitSDK.NativeAssetKeyMap? = nil)
366
+ public init(from decoder: any Swift.Decoder) throws
367
+ public func encode(to encoder: any Swift.Encoder) throws
368
+ public static func == (a: ShortKitSDK.AdSlot, b: ShortKitSDK.AdSlot) -> Swift.Bool
369
+ }
370
+ public enum CaptionSource : Swift.String, Swift.Codable, Swift.Sendable {
371
+ case embedded
372
+ case external
373
+ case generated
374
+ public init?(rawValue: Swift.String)
375
+ public typealias RawValue = Swift.String
376
+ public var rawValue: Swift.String {
377
+ get
378
+ }
379
+ }
380
+ public struct CaptionTrack : Swift.Codable, Swift.Equatable, Swift.Sendable {
381
+ public let language: Swift.String
382
+ public let label: Swift.String
383
+ public let source: ShortKitSDK.CaptionSource
384
+ public let url: Swift.String?
385
+ public static func == (a: ShortKitSDK.CaptionTrack, b: ShortKitSDK.CaptionTrack) -> Swift.Bool
386
+ public func encode(to encoder: any Swift.Encoder) throws
387
+ public init(from decoder: any Swift.Decoder) throws
388
+ }
389
+ public struct ContentItem : Swift.Codable, Swift.Equatable, @unchecked Swift.Sendable {
390
+ public let id: Swift.String
391
+ public var playbackId: Swift.String?
392
+ public let title: Swift.String
393
+ public let description: Swift.String?
394
+ public let duration: Swift.Double
395
+ public let streamingUrl: Swift.String
396
+ public let thumbnailUrl: Swift.String
397
+ public var captionTracks: [ShortKitSDK.CaptionTrack] {
398
+ get
399
+ }
400
+ public let customMetadata: [Swift.String : ShortKitSDK.JSONValue]?
401
+ public let author: Swift.String?
402
+ public let articleUrl: Swift.String?
403
+ public let commentCount: Swift.Int?
404
+ public var fallbackUrl: Swift.String?
405
+ public static func == (a: ShortKitSDK.ContentItem, b: ShortKitSDK.ContentItem) -> Swift.Bool
406
+ public func encode(to encoder: any Swift.Encoder) throws
407
+ public init(from decoder: any Swift.Decoder) throws
408
+ }
409
+ public enum FeedInput : Swift.Sendable {
410
+ case video(playbackId: Swift.String, fallbackUrl: Swift.String? = nil)
411
+ case imageCarousel(ShortKitSDK.ImageCarouselItem)
412
+ }
413
+ public enum FeedItem : Swift.Sendable {
414
+ case content(ShortKitSDK.ContentItem)
415
+ case adSlot(ShortKitSDK.AdSlot)
416
+ case imageCarousel(ShortKitSDK.ImageCarouselItem)
417
+ case survey(ShortKitSDK.SurveyItem)
418
+ public var isContent: Swift.Bool {
419
+ get
420
+ }
421
+ public var isAdSlot: Swift.Bool {
422
+ get
423
+ }
424
+ public var isImageCarousel: Swift.Bool {
425
+ get
426
+ }
427
+ public var isSurvey: Swift.Bool {
428
+ get
429
+ }
430
+ public var isNonVideo: Swift.Bool {
431
+ get
432
+ }
433
+ public var contentItem: ShortKitSDK.ContentItem? {
434
+ get
435
+ }
436
+ public var adSlot: ShortKitSDK.AdSlot? {
437
+ get
438
+ }
439
+ public var imageCarouselItem: ShortKitSDK.ImageCarouselItem? {
440
+ get
441
+ }
442
+ public var surveyItem: ShortKitSDK.SurveyItem? {
443
+ get
444
+ }
445
+ public var id: Swift.String {
446
+ get
447
+ }
448
+ }
449
+ extension ShortKitSDK.FeedItem : Swift.Hashable {
450
+ public static func == (lhs: ShortKitSDK.FeedItem, rhs: ShortKitSDK.FeedItem) -> Swift.Bool
451
+ public func hash(into hasher: inout Swift.Hasher)
452
+ public var hashValue: Swift.Int {
453
+ get
454
+ }
455
+ }
456
+ extension ShortKitSDK.FeedItem : Swift.Codable {
457
+ public init(from decoder: any Swift.Decoder) throws
458
+ public func encode(to encoder: any Swift.Encoder) throws
459
+ }
460
+ public struct ImageCarouselItem : Swift.Codable, Swift.Equatable, Swift.Sendable {
461
+ public let id: Swift.String
462
+ public let images: [ShortKitSDK.CarouselImage]
463
+ public let caption: Swift.String?
464
+ public let title: Swift.String?
465
+ public let description: Swift.String?
466
+ public let author: Swift.String?
467
+ public let section: Swift.String?
468
+ public let articleUrl: Swift.String?
469
+ public init(id: Swift.String, images: [ShortKitSDK.CarouselImage], caption: Swift.String? = nil, title: Swift.String? = nil, description: Swift.String? = nil, author: Swift.String? = nil, section: Swift.String? = nil, articleUrl: Swift.String? = nil)
470
+ public static func == (a: ShortKitSDK.ImageCarouselItem, b: ShortKitSDK.ImageCarouselItem) -> Swift.Bool
471
+ public func encode(to encoder: any Swift.Encoder) throws
472
+ public init(from decoder: any Swift.Decoder) throws
473
+ }
474
+ public struct CarouselImage : Swift.Codable, Swift.Equatable, Swift.Sendable {
475
+ public let url: Swift.String
476
+ public let alt: Swift.String?
477
+ public init(url: Swift.String, alt: Swift.String? = nil)
478
+ public static func == (a: ShortKitSDK.CarouselImage, b: ShortKitSDK.CarouselImage) -> Swift.Bool
479
+ public func encode(to encoder: any Swift.Encoder) throws
480
+ public init(from decoder: any Swift.Decoder) throws
481
+ }
482
+ public enum JSONValue : Swift.Codable, Swift.Equatable, Swift.Sendable {
483
+ case string(Swift.String)
484
+ case number(Swift.Double)
485
+ case bool(Swift.Bool)
486
+ case object([Swift.String : ShortKitSDK.JSONValue])
487
+ case null
488
+ public init(from decoder: any Swift.Decoder) throws
489
+ public func encode(to encoder: any Swift.Encoder) throws
490
+ public static func == (a: ShortKitSDK.JSONValue, b: ShortKitSDK.JSONValue) -> Swift.Bool
491
+ }
492
+ public struct NativeAdContent {
493
+ public let videoUrl: Swift.String
494
+ public let headline: Swift.String?
495
+ public let body: Swift.String?
496
+ public let callToAction: Swift.String?
497
+ public let advertiser: Swift.String?
498
+ public let sponsorIcon: UIKit.UIImage?
499
+ public let adChoicesIcon: UIKit.UIImage?
500
+ public let adChoicesClickHandler: (() -> Swift.Void)?
501
+ public let ctaClickHandler: (() -> Swift.Void)?
502
+ public let recordImpression: (() -> Swift.Void)?
503
+ public let aspectRatio: CoreFoundation.CGFloat?
504
+ public init(videoUrl: Swift.String, headline: Swift.String? = nil, body: Swift.String? = nil, callToAction: Swift.String? = nil, advertiser: Swift.String? = nil, sponsorIcon: UIKit.UIImage? = nil, adChoicesIcon: UIKit.UIImage? = nil, adChoicesClickHandler: (() -> Swift.Void)? = nil, ctaClickHandler: (() -> Swift.Void)? = nil, recordImpression: (() -> Swift.Void)? = nil, aspectRatio: CoreFoundation.CGFloat? = nil)
505
+ }
506
+ final public class PreparedAd {
507
+ final public let slotId: Swift.String
508
+ final public let skipPolicy: ShortKitSDK.SkipPolicy
509
+ final public let providerData: Any
510
+ final public let nativeContent: ShortKitSDK.NativeAdContent?
511
+ final public var prebuiltView: UIKit.UIView?
512
+ public init(slotId: Swift.String, skipPolicy: ShortKitSDK.SkipPolicy, providerData: Any, nativeContent: ShortKitSDK.NativeAdContent? = nil)
513
+ @objc deinit
514
+ }
515
+ public enum ShortKitError : Swift.Error, Swift.Sendable {
516
+ case networkError(underlying: any Swift.Error)
517
+ case playbackError(code: Swift.String, message: Swift.String)
518
+ case authError
519
+ }
520
+ extension ShortKitSDK.ShortKitError : Swift.CustomStringConvertible {
521
+ public var description: Swift.String {
522
+ get
523
+ }
524
+ }
525
+ public struct SurveyItem : Swift.Codable, Swift.Equatable, Swift.Sendable {
526
+ public let id: Swift.String
527
+ public let question: Swift.String
528
+ public let options: [ShortKitSDK.SurveyOption]
529
+ public let autoAdvanceDelay: Swift.Double?
530
+ public static func == (a: ShortKitSDK.SurveyItem, b: ShortKitSDK.SurveyItem) -> Swift.Bool
531
+ public func encode(to encoder: any Swift.Encoder) throws
532
+ public init(from decoder: any Swift.Decoder) throws
533
+ }
534
+ public struct SurveyOption : Swift.Codable, Swift.Equatable, Swift.Sendable {
535
+ public let id: Swift.String
536
+ public let text: Swift.String
537
+ public static func == (a: ShortKitSDK.SurveyOption, b: ShortKitSDK.SurveyOption) -> Swift.Bool
538
+ public func encode(to encoder: any Swift.Encoder) throws
539
+ public init(from decoder: any Swift.Decoder) throws
540
+ }
541
+ public struct VTTCue : Swift.Equatable, Swift.Sendable {
542
+ public let startTime: Swift.Double
543
+ public let endTime: Swift.Double
544
+ public let text: Swift.String
545
+ public init(startTime: Swift.Double, endTime: Swift.Double, text: Swift.String)
546
+ public static func == (a: ShortKitSDK.VTTCue, b: ShortKitSDK.VTTCue) -> Swift.Bool
547
+ }
548
+ public protocol AdOverlay : AnyObject {
549
+ func configure(with content: ShortKitSDK.NativeAdContent)
550
+ func resetState()
551
+ }
552
+ public protocol CarouselOverlay : AnyObject {
553
+ var cachedImage: ((Swift.String) -> UIKit.UIImage?)? { get set }
554
+ func configure(with item: ShortKitSDK.ImageCarouselItem)
555
+ func resetState()
556
+ var wantsNativeImagePrefetch: Swift.Bool { get }
557
+ }
558
+ extension ShortKitSDK.CarouselOverlay {
559
+ public var cachedImage: ((Swift.String) -> UIKit.UIImage?)? {
560
+ get
561
+ set
562
+ }
563
+ public var wantsNativeImagePrefetch: Swift.Bool {
564
+ get
565
+ }
566
+ }
567
+ final public class CellContent : Combine.ObservableObject {
568
+ @Combine.Published @_projectedValueProperty($item) final public var item: ShortKitSDK.ContentItem? {
569
+ get
570
+ @available(iOS 13.0, tvOS 13.0, watchOS 6.0, macOS 10.15, *)
571
+ set
572
+ @available(iOS 13.0, tvOS 13.0, watchOS 6.0, macOS 10.15, *)
573
+ _modify
574
+ }
575
+ final public var $item: Combine.Published<ShortKitSDK.ContentItem?>.Publisher {
576
+ get
577
+ @available(iOS 14.0, tvOS 14.0, watchOS 7.0, macOS 11.0, *)
578
+ set
579
+ }
580
+ public init()
581
+ public typealias ObjectWillChangePublisher = Combine.ObservableObjectPublisher
582
+ @objc deinit
583
+ }
584
+ public protocol FeedOverlay : AnyObject {
585
+ func attach(player: ShortKitSDK.ShortKitPlayer)
586
+ func configure(with item: ShortKitSDK.ContentItem)
587
+ func activatePlayback()
588
+ }
589
+ public protocol SurveyOverlay : AnyObject {
590
+ var onSurveyResponse: ((Swift.String, ShortKitSDK.SurveyOption) -> Swift.Void)? { get set }
591
+ var onAutoAdvance: (() -> Swift.Void)? { get set }
592
+ func configure(with item: ShortKitSDK.SurveyItem)
593
+ func resetState()
594
+ }
595
+ public struct PlayerTime : Swift.Equatable, Swift.Sendable {
596
+ public let current: Swift.Double
597
+ public let duration: Swift.Double
598
+ public let buffered: Swift.Double
599
+ public static func == (a: ShortKitSDK.PlayerTime, b: ShortKitSDK.PlayerTime) -> Swift.Bool
600
+ }
601
+ public enum PlayerState : Swift.Equatable, Swift.Sendable {
602
+ case idle
603
+ case loading
604
+ case ready
605
+ case playing
606
+ case paused
607
+ case seeking
608
+ case buffering
609
+ case ended
610
+ case error(Swift.String)
611
+ public static func == (a: ShortKitSDK.PlayerState, b: ShortKitSDK.PlayerState) -> Swift.Bool
612
+ }
613
+ public struct LoopEvent : Swift.Equatable, Swift.Sendable {
614
+ public let contentId: Swift.String
615
+ public let loopCount: Swift.Int
616
+ public static func == (a: ShortKitSDK.LoopEvent, b: ShortKitSDK.LoopEvent) -> Swift.Bool
617
+ }
618
+ public struct FeedTransitionEvent : Swift.Equatable, Swift.Sendable {
619
+ public enum Phase : Swift.Sendable {
620
+ case began, ended
621
+ public static func == (a: ShortKitSDK.FeedTransitionEvent.Phase, b: ShortKitSDK.FeedTransitionEvent.Phase) -> Swift.Bool
622
+ public func hash(into hasher: inout Swift.Hasher)
623
+ public var hashValue: Swift.Int {
624
+ get
625
+ }
626
+ }
627
+ public enum Direction : Swift.Sendable {
628
+ case forward, backward
629
+ public static func == (a: ShortKitSDK.FeedTransitionEvent.Direction, b: ShortKitSDK.FeedTransitionEvent.Direction) -> Swift.Bool
630
+ public func hash(into hasher: inout Swift.Hasher)
631
+ public var hashValue: Swift.Int {
632
+ get
633
+ }
634
+ }
635
+ public let phase: ShortKitSDK.FeedTransitionEvent.Phase
636
+ public let from: ShortKitSDK.ContentItem?
637
+ public let to: ShortKitSDK.ContentItem?
638
+ public let direction: ShortKitSDK.FeedTransitionEvent.Direction
639
+ public static func == (a: ShortKitSDK.FeedTransitionEvent, b: ShortKitSDK.FeedTransitionEvent) -> Swift.Bool
640
+ }
641
+ public struct FormatChangeEvent : Swift.Equatable, Swift.Sendable {
642
+ public let contentId: Swift.String
643
+ public let fromBitrate: Swift.Int
644
+ public let toBitrate: Swift.Int
645
+ public let fromResolution: Swift.String
646
+ public let toResolution: Swift.String
647
+ public static func == (a: ShortKitSDK.FormatChangeEvent, b: ShortKitSDK.FormatChangeEvent) -> Swift.Bool
648
+ }
649
+ public enum FeedScrollPhase : Swift.Equatable, Swift.Sendable {
650
+ case dragging(from: Swift.String)
651
+ case settled
652
+ public static func == (a: ShortKitSDK.FeedScrollPhase, b: ShortKitSDK.FeedScrollPhase) -> Swift.Bool
653
+ }
654
+ public enum ContentSignal : Swift.Equatable, Swift.Sendable {
655
+ case positive
656
+ case negative
657
+ public static func == (a: ShortKitSDK.ContentSignal, b: ShortKitSDK.ContentSignal) -> Swift.Bool
658
+ public func hash(into hasher: inout Swift.Hasher)
659
+ public var hashValue: Swift.Int {
660
+ get
661
+ }
662
+ }
663
+ @_hasMissingDesignatedInitializers final public class ShortKitPlayer {
664
+ final public var time: Combine.AnyPublisher<ShortKitSDK.PlayerTime, Swift.Never> {
665
+ get
666
+ }
667
+ final public var playerState: Combine.AnyPublisher<ShortKitSDK.PlayerState, Swift.Never> {
668
+ get
669
+ }
670
+ final public var currentItem: Combine.AnyPublisher<ShortKitSDK.ContentItem?, Swift.Never> {
671
+ get
672
+ }
673
+ final public var didLoop: Combine.AnyPublisher<ShortKitSDK.LoopEvent, Swift.Never> {
674
+ get
675
+ }
676
+ final public var feedTransition: Combine.AnyPublisher<ShortKitSDK.FeedTransitionEvent, Swift.Never> {
677
+ get
678
+ }
679
+ final public var feedScrollPhase: Combine.AnyPublisher<ShortKitSDK.FeedScrollPhase, Swift.Never> {
680
+ get
681
+ }
682
+ final public var formatChange: Combine.AnyPublisher<ShortKitSDK.FormatChangeEvent, Swift.Never> {
683
+ get
684
+ }
685
+ final public var isMuted: Combine.AnyPublisher<Swift.Bool, Swift.Never> {
686
+ get
687
+ }
688
+ final public var playbackRate: Combine.AnyPublisher<Swift.Float, Swift.Never> {
689
+ get
690
+ }
691
+ final public var captionsEnabled: Combine.AnyPublisher<Swift.Bool, Swift.Never> {
692
+ get
693
+ }
694
+ final public var activeCaptionTrack: Combine.AnyPublisher<ShortKitSDK.CaptionTrack?, Swift.Never> {
695
+ get
696
+ }
697
+ final public var activeCue: Combine.AnyPublisher<ShortKitSDK.VTTCue?, Swift.Never> {
698
+ get
699
+ }
700
+ final public var prefetchedAheadCount: Combine.AnyPublisher<Swift.Int, Swift.Never> {
701
+ get
702
+ }
703
+ final public var remainingContentCount: Combine.AnyPublisher<Swift.Int, Swift.Never> {
704
+ get
705
+ }
706
+ final public var currentItemValue: ShortKitSDK.ContentItem? {
707
+ get
708
+ }
709
+ final public var playbackRateValue: Swift.Float {
710
+ get
711
+ }
712
+ final public func play()
713
+ final public func pause()
714
+ final public func seek(to seconds: Swift.Double)
715
+ final public func seekAndPlay(to seconds: Swift.Double)
716
+ final public func setMuted(_ muted: Swift.Bool)
717
+ final public func skipToNext()
718
+ final public func skipToPrevious()
719
+ final public func setPlaybackRate(_ rate: Swift.Float)
720
+ final public func sendContentSignal(_ signal: ShortKitSDK.ContentSignal)
721
+ final public func setMaxBitrate(_ bps: Swift.Int)
722
+ final public func setCaptionsEnabled(_ enabled: Swift.Bool)
723
+ final public func selectCaptionTrack(language: Swift.String)
724
+ final public func seekThumbnail(at time: Swift.Double) -> UIKit.UIImage?
725
+ @objc deinit
726
+ }
727
+ public struct StoryboardTile : Swift.Decodable {
728
+ public let start: Swift.Double
729
+ public let x: Swift.Int
730
+ public let y: Swift.Int
731
+ public init(from decoder: any Swift.Decoder) throws
732
+ }
733
+ public struct StoryboardMetadata : Swift.Decodable {
734
+ public let url: Swift.String
735
+ public let tileWidth: Swift.Int
736
+ public let tileHeight: Swift.Int
737
+ public let duration: Swift.Double
738
+ public let tiles: [ShortKitSDK.StoryboardTile]
739
+ public init(from decoder: any Swift.Decoder) throws
740
+ }
741
+ public struct CachedStoryboard {
742
+ public let metadata: ShortKitSDK.StoryboardMetadata
743
+ public let spriteSheet: UIKit.UIImage
744
+ }
745
+ @_hasMissingDesignatedInitializers final public class StoryboardProvider {
746
+ public static let shared: ShortKitSDK.StoryboardProvider
747
+ public static func extractPlaybackId(from thumbnailUrl: Swift.String) -> Swift.String?
748
+ final public func cached(for playbackId: Swift.String) -> ShortKitSDK.CachedStoryboard?
749
+ final public func fetch(playbackId: Swift.String) async -> ShortKitSDK.CachedStoryboard?
750
+ final public func tile(from storyboard: ShortKitSDK.CachedStoryboard, at seekTime: Swift.Double) -> UIKit.UIImage?
751
+ final public func clearCache()
752
+ @objc deinit
753
+ }
754
+ public enum VTTParser {
755
+ public static func parse(_ text: Swift.String) -> [ShortKitSDK.VTTCue]
756
+ public static func load(from url: Foundation.URL) async throws -> [ShortKitSDK.VTTCue]
757
+ public static func activeCue(in cues: [ShortKitSDK.VTTCue], at time: Swift.Double) -> ShortKitSDK.VTTCue?
758
+ }
759
+ public enum ShortKitVersion {
760
+ public static let current: Swift.String
761
+ }
762
+ final public class ShortKit {
763
+ final public let player: ShortKitSDK.ShortKitPlayer
764
+ weak final public var delegate: (any ShortKitSDK.ShortKitDelegate)?
765
+ final public var loadingViewProvider: (() -> UIKit.UIView)?
766
+ public init(apiKey: Swift.String, userId: Swift.String? = nil, adProvider: (any ShortKitSDK.ShortKitAdProvider)? = nil, clientAppName: Swift.String? = nil, clientAppVersion: Swift.String? = nil, customDimensions: [Swift.String : Swift.String]? = nil, loadingViewProvider: (() -> UIKit.UIView)? = nil)
767
+ final public func preloadFeed(filter: ShortKitSDK.FeedFilter? = nil, limit: Swift.Int = 10) -> ShortKitSDK.FeedPreload
768
+ final public func preloadFeed(items: [ShortKitSDK.FeedInput]) -> ShortKitSDK.FeedPreload
769
+ final public func fetchContent(limit: Swift.Int = 10, filter: ShortKitSDK.FeedFilter? = nil) async throws -> [ShortKitSDK.ContentItem]
770
+ final public func setUserId(_ id: Swift.String)
771
+ final public func clearUserId()
772
+ @_Concurrency.MainActor final public func setColdStartQueue(_ items: [ShortKitSDK.FeedInput])
773
+ final public func clearColdStartCache()
774
+ @objc deinit
775
+ }
776
+ public enum PlayerClickAction : Swift.Sendable {
777
+ case feed
778
+ case mute
779
+ case none
780
+ public static func == (a: ShortKitSDK.PlayerClickAction, b: ShortKitSDK.PlayerClickAction) -> Swift.Bool
781
+ public func hash(into hasher: inout Swift.Hasher)
782
+ public var hashValue: Swift.Int {
783
+ get
784
+ }
785
+ }
786
+ public struct PlayerConfig {
787
+ public var cornerRadius: CoreFoundation.CGFloat
788
+ public var clickAction: ShortKitSDK.PlayerClickAction
789
+ public var autoplay: Swift.Bool
790
+ public var loop: Swift.Bool
791
+ public var muteOnStart: Swift.Bool
792
+ public var videoOverlay: ShortKitSDK.VideoOverlayMode
793
+ public init(cornerRadius: CoreFoundation.CGFloat = 12, clickAction: ShortKitSDK.PlayerClickAction = .feed, autoplay: Swift.Bool = true, loop: Swift.Bool = true, muteOnStart: Swift.Bool = true, videoOverlay: ShortKitSDK.VideoOverlayMode = .none)
794
+ }
795
+ @_Concurrency.MainActor @preconcurrency public struct ShortKitPlayerView : SwiftUI.UIViewControllerRepresentable {
796
+ @_Concurrency.MainActor @preconcurrency public init(shortKit: ShortKitSDK.ShortKit, config: ShortKitSDK.PlayerConfig = PlayerConfig())
797
+ @_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: ShortKitSDK.ShortKitPlayerView.Context) -> ShortKitSDK.ShortKitPlayerViewController
798
+ @_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: ShortKitSDK.ShortKitPlayerViewController, context: ShortKitSDK.ShortKitPlayerView.Context)
799
+ public typealias Body = Swift.Never
800
+ public typealias Coordinator = Swift.Void
801
+ public typealias UIViewControllerType = ShortKitSDK.ShortKitPlayerViewController
802
+ }
803
+ @objc @_hasMissingDesignatedInitializers @_Concurrency.MainActor @preconcurrency final public class ShortKitPlayerViewController : UIKit.UIViewController {
804
+ @_Concurrency.MainActor @preconcurrency public init(shortKit: ShortKitSDK.ShortKit, config: ShortKitSDK.PlayerConfig)
805
+ @_Concurrency.MainActor @preconcurrency @objc override final public func viewDidLoad()
806
+ @_Concurrency.MainActor @preconcurrency @objc override final public func viewWillDisappear(_ animated: Swift.Bool)
807
+ @_Concurrency.MainActor @preconcurrency @objc override final public func viewDidLayoutSubviews()
808
+ @_Concurrency.MainActor @preconcurrency final public func configure(with contentItem: ShortKitSDK.ContentItem)
809
+ @_Concurrency.MainActor @preconcurrency final public func activate()
810
+ @_Concurrency.MainActor @preconcurrency final public func deactivate()
811
+ @objc deinit
812
+ }
813
+ extension ShortKitSDK.ShortKitPlayerViewController : UIKit.UIViewControllerTransitioningDelegate {
814
+ @_Concurrency.MainActor @preconcurrency @objc final public func animationController(forPresented presented: UIKit.UIViewController, presenting: UIKit.UIViewController, source: UIKit.UIViewController) -> (any UIKit.UIViewControllerAnimatedTransitioning)?
815
+ @_Concurrency.MainActor @preconcurrency @objc final public func animationController(forDismissed dismissed: UIKit.UIViewController) -> (any UIKit.UIViewControllerAnimatedTransitioning)?
816
+ }
817
+ @objc @_hasMissingDesignatedInitializers @_Concurrency.MainActor @preconcurrency final public class ShortKitWidgetViewController : UIKit.UIViewController {
818
+ @_Concurrency.MainActor @preconcurrency public init(shortKit: ShortKitSDK.ShortKit, config: ShortKitSDK.WidgetConfig)
819
+ @_Concurrency.MainActor @preconcurrency final public func configure(with items: [ShortKitSDK.ContentItem])
820
+ @_Concurrency.MainActor @preconcurrency @objc override final public func viewDidLoad()
821
+ @_Concurrency.MainActor @preconcurrency @objc override final public func viewDidAppear(_ animated: Swift.Bool)
822
+ @_Concurrency.MainActor @preconcurrency @objc override final public func viewWillDisappear(_ animated: Swift.Bool)
823
+ @objc deinit
824
+ }
825
+ extension ShortKitSDK.ShortKitWidgetViewController : UIKit.UICollectionViewDataSource {
826
+ @_Concurrency.MainActor @preconcurrency @objc final public func collectionView(_ collectionView: UIKit.UICollectionView, numberOfItemsInSection section: Swift.Int) -> Swift.Int
827
+ @_Concurrency.MainActor @preconcurrency @objc final public func collectionView(_ collectionView: UIKit.UICollectionView, cellForItemAt indexPath: Foundation.IndexPath) -> UIKit.UICollectionViewCell
828
+ }
829
+ extension ShortKitSDK.ShortKitWidgetViewController : UIKit.UICollectionViewDelegate {
830
+ @_Concurrency.MainActor @preconcurrency @objc final public func collectionView(_ collectionView: UIKit.UICollectionView, didSelectItemAt indexPath: Foundation.IndexPath)
831
+ }
832
+ extension ShortKitSDK.ShortKitWidgetViewController : UIKit.UIViewControllerTransitioningDelegate {
833
+ @_Concurrency.MainActor @preconcurrency @objc final public func animationController(forPresented presented: UIKit.UIViewController, presenting: UIKit.UIViewController, source: UIKit.UIViewController) -> (any UIKit.UIViewControllerAnimatedTransitioning)?
834
+ @_Concurrency.MainActor @preconcurrency @objc final public func animationController(forDismissed dismissed: UIKit.UIViewController) -> (any UIKit.UIViewControllerAnimatedTransitioning)?
835
+ }
836
+ public struct WidgetConfig {
837
+ public var cardCount: Swift.Int
838
+ public var cardSpacing: CoreFoundation.CGFloat
839
+ public var cornerRadius: CoreFoundation.CGFloat
840
+ public var autoplay: Swift.Bool
841
+ public var muteOnStart: Swift.Bool
842
+ public var loop: Swift.Bool
843
+ public var rotationInterval: Foundation.TimeInterval
844
+ public var clickAction: ShortKitSDK.PlayerClickAction
845
+ public var cardOverlay: ShortKitSDK.VideoOverlayMode
846
+ public init(cardCount: Swift.Int = 3, cardSpacing: CoreFoundation.CGFloat = 8, cornerRadius: CoreFoundation.CGFloat = 12, autoplay: Swift.Bool = true, muteOnStart: Swift.Bool = true, loop: Swift.Bool = true, rotationInterval: Foundation.TimeInterval = 10, clickAction: ShortKitSDK.PlayerClickAction = .feed, cardOverlay: ShortKitSDK.VideoOverlayMode = .none)
847
+ }
848
+ extension ShortKitSDK.AdQuartile : Swift.Equatable {}
849
+ extension ShortKitSDK.AdQuartile : Swift.Hashable {}
850
+ extension ShortKitSDK.ScrollAxis : Swift.Hashable {}
851
+ extension ShortKitSDK.ScrollAxis : Swift.RawRepresentable {}
852
+ extension ShortKitSDK.FeedSource : Swift.Hashable {}
853
+ extension ShortKitSDK.FeedSource : Swift.RawRepresentable {}
854
+ extension ShortKitSDK.ShortKitFeedView : Swift.Sendable {}
855
+ extension ShortKitSDK.CaptionSource : Swift.Equatable {}
856
+ extension ShortKitSDK.CaptionSource : Swift.Hashable {}
857
+ extension ShortKitSDK.CaptionSource : Swift.RawRepresentable {}
858
+ extension ShortKitSDK.FeedTransitionEvent.Phase : Swift.Equatable {}
859
+ extension ShortKitSDK.FeedTransitionEvent.Phase : Swift.Hashable {}
860
+ extension ShortKitSDK.FeedTransitionEvent.Direction : Swift.Equatable {}
861
+ extension ShortKitSDK.FeedTransitionEvent.Direction : Swift.Hashable {}
862
+ extension ShortKitSDK.ContentSignal : Swift.Hashable {}
863
+ extension ShortKitSDK.PlayerClickAction : Swift.Equatable {}
864
+ extension ShortKitSDK.PlayerClickAction : Swift.Hashable {}
865
+ extension ShortKitSDK.ShortKitPlayerView : Swift.Sendable {}