import { Request } from 'express';
import { StorageEngine } from 'multer';
import AWS from 'aws-sdk';
import ImageConversionType from './interface.ImageConversionType';
import GetFilenameBase from './type.GetFilenameBase';
import Metadata from './type.Metadata';
import MulterS3SharpStorageOptions from './interface.MulterS3StorageOptions';
import DeletionResponseItem from './interface.DeletionResponseItem';
declare type AnyFunction = (...any: any[]) => any;
export default class MulterS3SharpStorage implements StorageEngine {
    imageFormats: Array<ImageConversionType>;
    uploadOriginalImage: boolean;
    keyBase: GetFilenameBase;
    s3: AWS.S3;
    bucket: string;
    metadata: Metadata;
    constructor(input: MulterS3SharpStorageOptions);
    _handleFile(req: Request, file: Express.Multer.File, cb: AnyFunction): Promise<void>;
    removeKey(key: string): Promise<DeletionResponseItem[]>;
    _removeFile(req: Request, file: Express.Multer.File, cb: (error: Error) => void): void;
}
export {};
