1 // Copyright 2016-present 650 Industries. All rights reserved.
2 
3 #import <Foundation/Foundation.h>
4 
5 typedef NS_OPTIONS(unsigned int, EXFileSystemPermissionFlags) {
6   EXFileSystemPermissionNone = 0,
7   EXFileSystemPermissionRead = 1 << 1,
8   EXFileSystemPermissionWrite = 1 << 2,
9 };
10 
11 // TODO: Maybe get rid of this interface in favor of EXFileSystemManager and private utilities classes
12 @protocol EXFileSystemInterface
13 
14 @property (nonatomic, readonly) NSString *documentDirectory;
15 @property (nonatomic, readonly) NSString *cachesDirectory;
16 @property (nonatomic, readonly) NSString *bundleDirectory;
17 
18 // TODO: Move permissionsForURI to EXFileSystemManagerInterface
19 - (EXFileSystemPermissionFlags)permissionsForURI:(NSURL *)uri;
20 - (nonnull NSString *)generatePathInDirectory:(NSString *)directory withExtension:(NSString *)extension;
21 - (BOOL)ensureDirExistsWithPath:(NSString *)path;
22 
23 @end
24