import { ICopyFileOptions, IFile, IFilePath, IHeaders, IMoveFileOptions, IStorageUnit } from './types'; export default interface IFileSystem { listStorageUnits(): Promise; onStorageUnitsChanged(listener: () => void): void; removeStorageUnitsChangedListener(listener: () => void): void; removeAllListeners(): void; listFiles(directoryPath: IFilePath): Promise; exists(filePath: IFilePath): Promise; getFile(filePath: IFilePath): Promise; writeFile(filePath: IFilePath, contents: string): Promise; appendFile(filePath: IFilePath, contents: string): Promise; readFile(filePath: IFilePath): Promise; copyFile(sourceFilePath: IFilePath, destinationFilePath: IFilePath, options?: ICopyFileOptions): Promise; moveFile(sourceFilePath: IFilePath, destinationFilePath: IFilePath, options?: IMoveFileOptions): Promise; deleteFile(filePath: IFilePath, recursive: boolean): Promise; downloadFile(filePath: IFilePath, sourceUri: string, headers?: IHeaders): Promise; extractFile(archiveFilePath: IFilePath, destinationDirectoryPath: IFilePath, method: string): Promise; createArchive(archiveFilePath: IFilePath, archiveEntries: IFilePath[]): Promise; getFileChecksum(filePath: IFilePath, hashType: string): Promise; createDirectory(directoryPath: IFilePath): Promise; isDirectory(filePath: IFilePath): Promise; link(sourceFilePath: IFilePath, destinationFilePath: IFilePath): Promise; wipeout(): Promise; }