import * as _aws_sdk_client_s3 from '@aws-sdk/client-s3'; import { S3Client } from '@aws-sdk/client-s3'; import { Readable, PassThrough } from 'stream'; interface AwsCredentials { accessKeyId: string; secretAccessKey: string; region?: string; } interface UploadParams { data: Buffer | Uint8Array | string | Readable; bucket: string; key: string; contentType?: string; acl?: string; metadata?: Record; cacheControl?: string; expires?: Date; contentDisposition?: string; } declare class AwsBucket { private s3Client; constructor(credentials: AwsCredentials); private createS3Params; upload(params: UploadParams): Promise<_aws_sdk_client_s3.PutObjectCommandOutput>; getObjectWebStream(params: { bucket: string; key: string; }): Promise | undefined>; uploadStream(params: Omit): { writeStream: PassThrough; uploadPromise: Promise; }; getS3Client(): S3Client; } declare const createAwsBucket: (credentials: AwsCredentials) => AwsBucket; export { AwsBucket, type AwsCredentials, type UploadParams, createAwsBucket };