import { CopyObjectCommandOutput, DeleteObjectCommandOutput, GetObjectCommandOutput, HeadObjectCommandOutput, ListObjectsV2CommandOutput, S3Client } from '@aws-sdk/client-s3'; import { Upload } from '@aws-sdk/lib-storage'; import { Paginator } from '@smithy/types/dist-types/pagination'; import { AwsS3StorageInterface, AwsS3StorageOptionsType, CopyFileS3OptionsType, CopyOrMoveInputInterface, DeleteS3OptionsType, DoesFileExistOptionsType, GetFileStatsS3OptionsType, GetFileStreamS3OptionsType, GetFilesCursorS3OptionsInterface, MoveFileS3OptionsType, UploadS3FileOptionsInterface } from '../interface'; import { FileType } from '../type'; import { AbstractStorage } from './abstract.storage'; export declare class AwsS3Storage extends AbstractStorage { private readonly awsS3StorageOptions; private readonly s3Client; constructor(awsS3StorageOptions: AwsS3StorageInterface); get client(): S3Client; get options(): AwsS3StorageOptionsType; getFileStats(key: string, options?: GetFileStatsS3OptionsType): Promise; upload(file: FileType, options?: UploadS3FileOptionsInterface): Promise; uploadMany(files: FileType[], options?: UploadS3FileOptionsInterface): Promise[]>; private createUpload; delete(key: string, options?: DeleteS3OptionsType): Promise; deleteMany(keys: string[], options?: DeleteS3OptionsType): Promise[]>; doesFileExist(key: string, options?: DoesFileExistOptionsType): Promise; doesFileExistMany(keys: string[], options?: DoesFileExistOptionsType): Promise[]>; getFilesCursor(options?: GetFilesCursorS3OptionsInterface): Paginator; copy({ to, from }: CopyOrMoveInputInterface, options?: CopyFileS3OptionsType): Promise; copyMany(inputs: CopyOrMoveInputInterface[], options?: CopyFileS3OptionsType): Promise[]>; move(input: CopyOrMoveInputInterface, options?: MoveFileS3OptionsType): Promise; moveMany(inputs: CopyOrMoveInputInterface[], options?: MoveFileS3OptionsType): Promise[]>; getFile(key: string, options?: GetFileStreamS3OptionsType): Promise; }