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