import getS3Client from './getS3Client';
import IConfig from './IConfig';
export declare function uploadFiles({ prefix, root, files, platform, ...dest }: uploadFiles.IOptions, { onListFiles, onFileUploaded, onFileUploadFailed, onUploaded, }?: Partial<uploadFiles.IHooks>): Promise<uploadFiles.IHooks.IFile[]>;
export declare namespace uploadFiles {
    type IOptions = getS3Client.IOptions & Omit<IConfig, 'credentials' | 'region'>;
    interface IHooks {
        onListFiles: (files: IHooks.IFile[]) => void;
        onFileUploaded: (file: IHooks.IFile, uploaded: IHooks.IFile[], files: IHooks.IFile[]) => void;
        onFileUploadFailed: (file: IHooks.IFile, err: Error, uploaded: IHooks.IFile[], files: IHooks.IFile[]) => void;
        onUploaded: (files: IHooks.IFile[]) => void;
    }
    namespace IHooks {
        interface IFile {
            path: string;
            relativePath: string;
            key: string;
        }
    }
}
export default uploadFiles;
