///
import { PassThrough, Readable } from 'stream';
import { AbortMultipartUploadCommandOutput, CompleteMultipartUploadCommandOutput, PutObjectCommandInput } from '@aws-sdk/client-s3';
export interface ObjectInput {
/**
* The S3 bucket to read from.
*/
readonly bucket: string;
/**
* The S3 object to read from.
*/
readonly key: string;
/**
* The content type of the object.
*/
readonly contentType?: string;
}
export declare class S3Stream {
/**
* The S3 client to use.
*/
private s3;
/**
* A helper class to read and write to S3 using
* streams.
* @param {*} region the AWS region to use.
*/
constructor(opts?: {
region: string | undefined;
});
/**
* @param input represents a bucket, key, and content type tuple.
* @returns a read stream to the given S3 object.
*/
createS3ReadStream(input: ObjectInput): Promise;
/**
* Creates a write stream to the given S3 object.
* @param input represents a bucket, key, and content type tuple.
* @returns an object containing the write stream and a promise
* which resolves when the write stream has finished.
*/
createS3WriteStream(input: ObjectInput, opts?: Partial): {
writeStream: PassThrough;
promise: Promise;
};
}