#import #import #import #import #import typedef NS_ENUM(NSUInteger, RCTVideoCacheStatus) { RCTVideoCacheStatusMissingFileExtension, RCTVideoCacheStatusUnsupportedFileExtension, RCTVideoCacheStatusNotAvailable, RCTVideoCacheStatusAvailable }; @class SPTPersistentCache; @class SPTPersistentCacheOptions; @interface RCTVideoCache : NSObject { SPTPersistentCache* videoCache; NSString* _Nullable cachePath; NSString* temporaryCachePath; NSString* _Nullable cacheIdentifier; } @property(nonatomic, strong) SPTPersistentCache* _Nullable videoCache; @property(nonatomic, strong) NSString* cachePath; @property(nonatomic, strong) NSString* cacheIdentifier; @property(nonatomic, strong) NSString* temporaryCachePath; + (RCTVideoCache*)sharedInstance; - (void)storeItem:(NSData*)data forUri:(NSString*)uri withCallback:(void (^)(BOOL))handler; - (void)getItemForUri:(NSString*)url withCallback:(void (^)(RCTVideoCacheStatus, AVAsset* _Nullable))handler; - (NSURL*)createUniqueTemporaryFileUrl:(NSString* _Nonnull)url withExtension:(NSString* _Nonnull)extension; - (AVURLAsset*)getItemFromTemporaryStorage:(NSString*)key; - (BOOL)saveDataToTemporaryStorage:(NSData*)data key:(NSString*)key; - (void)createTemporaryPath; @end