import stream, { Readable } from 'stream'; import { BlobClient } from '../types/blob-client.type'; import { UploadFileType } from '../types/upload-file.type'; import { BlobStorageProperties } from '../types/blob-storage-properties.type'; import { BlobUploadHeaders } from '../types/blob-upload-headers.type'; export interface StorageAdapter { getFileNameToUpload(file: Express.Multer.File): string; streamToBuffer(readableStream: NodeJS.ReadableStream | undefined): Promise; retrieveFileName(blobName: string): string; uploadStream(stream: Readable, fileName: string): Promise; copyFileFromUrl(url: string, blobName: string, isPublic?: boolean): any; uploadFile(data: UploadFileType): Promise; deleteIfExists(blobName: string): Promise; generatePresignedUrl(blobName: string, expiresOn?: any, options?: any): string | Promise; uploadBlobreadable(readable: stream.Readable, blobName: string, httpHeaders?: BlobUploadHeaders): any; createBufferFromBlob(blobName: string): Promise; getFileStream(blobName: string): Promise; getFileBuffer(blobName: string): Promise; getProperties(blobName: string): Promise; deleteFile(blobName: string): Promise; getPublicUrl(blobName: string): string; }