///
import AWS from "aws-sdk";
import fs from "fs";
export declare function sanitizeKey(input: any): any;
export declare function sanitizeBucket(input: any): any;
/**
* Gets a connection to the object store using the S3 SDK.
* @param {string} bucket the name of the bucket which blobs will be uploaded/retrieved from.
* @return {Object} an S3 object store object, check S3 Nodejs SDK for usage.
* @constructor
*/
export declare const ObjectStore: (bucket: any) => AWS.S3;
/**
* Given an object store and a bucket name this will make sure the bucket exists,
* if it does not exist then it will create it.
*/
export declare const makeSureBucketExists: (client: any, bucketName: any) => Promise;
/**
* Uploads the contents of a file given the required parameters, useful when
* temp files in use (for example file uploaded as an attachment).
*/
export declare const upload: ({ bucket: bucketName, filename, path, type, metadata, }: any) => Promise;
/**
* Similar to the upload function but can be used to send a file stream
* through to the object store.
*/
export declare const streamUpload: (bucketName: any, filename: any, stream: any, extra?: {}) => Promise;
/**
* retrieves the contents of a file from the object store, if it is a known content type it
* will be converted, otherwise it will be returned as a buffer stream.
*/
export declare const retrieve: (bucketName: any, filepath: any) => Promise;
/**
* Same as retrieval function but puts to a temporary file.
*/
export declare const retrieveToTmp: (bucketName: any, filepath: any) => Promise;
/**
* Delete a single file.
*/
export declare const deleteFile: (bucketName: any, filepath: any) => Promise>;
export declare const deleteFiles: (bucketName: any, filepaths: any) => Promise>;
/**
* Delete a path, including everything within.
*/
export declare const deleteFolder: (bucketName: any, folder: any) => Promise;
export declare const uploadDirectory: (bucketName: any, localPath: any, bucketPath: any) => Promise;
export declare const downloadTarball: (url: any, bucketName: any, path: any) => Promise;