///
export type StorageType = StorageTypeFilesystem | StorageTypeAmazon | StorageTypeGoogle;
export type StorageTypeFilesystem = 'filesystem';
export type StorageTypeAmazon = 'amazon';
export type StorageTypeGoogle = 'google';
export interface StorageTypeData {
filesystem: StorageTypeFilesystem;
amazon: StorageTypeAmazon;
google: StorageTypeGoogle;
}
export interface Storage {
download: StorageDownload;
downloadAll: StorageDownloadAll;
upload: StorageUpload;
obliterate: StorageObliterate;
obliterateAll: StorageObliterateAll;
generateLocations: StorageGenerateLocations;
readDirectory: StorageReadDirectory;
}
export type StorageDownload = (filename: string) => Promise;
export type StorageDownloadAll = (directory: string) => Promise;
export type StorageUpload = (filename: string, data: Buffer, kind?: StorageUploadKind) => Promise;
export type StorageObliterate = (filename: string) => Promise;
export type StorageObliterateAll = (path: string) => Promise;
export type StorageGenerateLocations = () => Promise;
export type StorageReadDirectory = (path: string) => Promise;
export type StorageUploadKind = 'write' | 'append';