1export declare type DownloadOptions = {
2    md5?: boolean;
3    cache?: boolean;
4    headers?: {
5        [name: string]: string;
6    };
7};
8export declare type DownloadResult = {
9    uri: string;
10    status: number;
11    headers: {
12        [name: string]: string;
13    };
14    md5?: string;
15};
16export declare type DownloadProgressCallback = (data: DownloadProgressData) => void;
17export declare type DownloadProgressData = {
18    totalBytesWritten: number;
19    totalBytesExpectedToWrite: number;
20};
21export declare type DownloadPauseState = {
22    url: string;
23    fileUri: string;
24    options: DownloadOptions;
25    resumeData?: string;
26};
27export declare type FileInfo = {
28    exists: true;
29    uri: string;
30    size: number;
31    isDirectory: boolean;
32    modificationTime: number;
33    md5?: string;
34} | {
35    exists: false;
36    uri: string;
37    size: undefined;
38    isDirectory: false;
39    modificationTime: undefined;
40    md5: undefined;
41};
42export declare enum EncodingType {
43    UTF8 = "utf8",
44    Base64 = "base64"
45}
46export declare type ReadingOptions = {
47    encoding?: EncodingType | 'utf8' | 'base64';
48    position?: number;
49    length?: number;
50};
51export declare type WritingOptions = {
52    encoding?: EncodingType | 'utf8' | 'base64';
53};
54export declare type ProgressEvent = {
55    uuid: string;
56    data: {
57        totalBytesWritten: number;
58        totalBytesExpectedToWrite: number;
59    };
60};
61declare type PlatformMethod = (...args: any[]) => Promise<any>;
62export interface ExponentFileSystemModule {
63    readonly name: 'ExponentFileSystem';
64    readonly documentDirectory: string | null;
65    readonly cacheDirectory: string | null;
66    readonly bundledAssets: string | null;
67    readonly bundleDirectory: string | null;
68    readonly getInfoAsync?: PlatformMethod;
69    readonly readAsStringAsync?: PlatformMethod;
70    readonly writeAsStringAsync?: PlatformMethod;
71    readonly deleteAsync?: PlatformMethod;
72    readonly moveAsync?: PlatformMethod;
73    readonly copyAsync?: PlatformMethod;
74    readonly makeDirectoryAsync?: PlatformMethod;
75    readonly readDirectoryAsync?: PlatformMethod;
76    readonly downloadAsync?: PlatformMethod;
77    readonly downloadResumableStartAsync?: PlatformMethod;
78    readonly downloadResumablePauseAsync?: PlatformMethod;
79    readonly getContentUriAsync?: PlatformMethod;
80    readonly getFreeDiskStorageAsync?: PlatformMethod;
81    readonly getTotalDiskCapacityAsync?: PlatformMethod;
82    startObserving?: () => void;
83    stopObserving?: () => void;
84    addListener: (eventName: string) => void;
85    removeListeners: (count: number) => void;
86}
87export {};
88