/// /// import { FileStorageOption, FileStorageProviderEnum, UploadedFile } from '@metad/contracts'; import { StorageEngine } from 'multer'; import { Provider } from './provider'; export interface IS3Config { rootPath: string; aws_access_key_id: string; aws_secret_access_key: string; aws_default_region: string; aws_bucket: string; } export declare class S3Provider extends Provider { static instance: S3Provider; name: FileStorageProviderEnum; config: IS3Config; defaultConfig: IS3Config; fetchSetting: boolean; constructor(); getInstance(): S3Provider; url(key: string): string; setAwsDetails(): void; path(filePath: string): string; handler({ dest, filename, prefix }: FileStorageOption): StorageEngine; getFile(key: string): Promise; putFile(fileContent: string, key?: string): Promise; deleteFile(key: string): Promise; private getS3Instance; getS3Bucket(): string; mapUploadedFile(file: any): UploadedFile; }