1 // Copyright 2016-present 650 Industries. All rights reserved.
2 
3 #import <Foundation/Foundation.h>
4 #import <ABI49_0_0ExpoModulesCore/ABI49_0_0EXExportedModule.h>
5 #import <ABI49_0_0ExpoModulesCore/ABI49_0_0EXModuleRegistryConsumer.h>
6 #import <ABI49_0_0ExpoModulesCore/ABI49_0_0EXEventEmitter.h>
7 #import <ABI49_0_0ExpoModulesCore/ABI49_0_0EXFileSystemInterface.h>
8 
9 @interface ABI49_0_0EXFileSystem : ABI49_0_0EXExportedModule <ABI49_0_0EXEventEmitter, ABI49_0_0EXModuleRegistryConsumer, ABI49_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 - (ABI49_0_0EXFileSystemPermissionFlags)permissionsForURI:(NSURL *)uri;
18 
19 - (nullable NSURL *)percentEncodedURLFromURIString:(nonnull NSString *)uri;
20 
21 - (BOOL)ensureDirExistsWithPath:(NSString *)path;
22 
23 - (NSString *)generatePathInDirectory:(NSString *)directory withExtension:(NSString *)extension;
24 
25 @end
26 
27 @protocol ABI49_0_0EXFileSystemHandler
28 
29 + (void)getInfoForFile:(NSURL *)fileUri
30            withOptions:(NSDictionary *)optionxs
31               resolver:(ABI49_0_0EXPromiseResolveBlock)resolve
32               rejecter:(ABI49_0_0EXPromiseRejectBlock)reject;
33 
34 + (void)copyFrom:(NSURL *)from
35               to:(NSURL *)to
36         resolver:(ABI49_0_0EXPromiseResolveBlock)resolve
37         rejecter:(ABI49_0_0EXPromiseRejectBlock)reject;
38 
39 @end
40