1 // Copyright 2016-present 650 Industries. All rights reserved.
2 
3 #import <Foundation/Foundation.h>
4 #import <ABI47_0_0ExpoModulesCore/ABI47_0_0EXExportedModule.h>
5 #import <ABI47_0_0ExpoModulesCore/ABI47_0_0EXModuleRegistryConsumer.h>
6 #import <ABI47_0_0ExpoModulesCore/ABI47_0_0EXEventEmitter.h>
7 #import <ABI47_0_0ExpoModulesCore/ABI47_0_0EXFileSystemInterface.h>
8 
9 @interface ABI47_0_0EXFileSystem : ABI47_0_0EXExportedModule <ABI47_0_0EXEventEmitter, ABI47_0_0EXModuleRegistryConsumer, ABI47_0_0EXFileSystemInterface>
10 
11 @property (nonatomic, readonly) NSString *documentDirectory;
12 @property (nonatomic, readonly) NSString *cachesDirectory;
13 @property (nonatomic, readonly) NSString *bundleDirectory;
14 
15 - (instancetype)initWithDocumentDirectory:(NSString *)documentDirectory cachesDirectory:(NSString *)cachesDirectory bundleDirectory:(NSString *)bundleDirectory;
16 
17 - (ABI47_0_0EXFileSystemPermissionFlags)permissionsForURI:(NSURL *)uri;
18 
19 - (BOOL)ensureDirExistsWithPath:(NSString *)path;
20 
21 - (NSString *)generatePathInDirectory:(NSString *)directory withExtension:(NSString *)extension;
22 
23 @end
24 
25 @protocol ABI47_0_0EXFileSystemHandler
26 
27 + (void)getInfoForFile:(NSURL *)fileUri
28            withOptions:(NSDictionary *)optionxs
29               resolver:(ABI47_0_0EXPromiseResolveBlock)resolve
30               rejecter:(ABI47_0_0EXPromiseRejectBlock)reject;
31 
32 + (void)copyFrom:(NSURL *)from
33               to:(NSURL *)to
34         resolver:(ABI47_0_0EXPromiseResolveBlock)resolve
35         rejecter:(ABI47_0_0EXPromiseRejectBlock)reject;
36 
37 @end
38 
39 @interface NSData (ABI47_0_0EXFileSystem)
40 
41 - (NSString *)md5String;
42 
43 @end
44