///
///
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;
}