import { IStorageAdapter, UploadOptions, DownloadOptions, ListOptions, StorageObject, DeleteOptions, PresignedUrlOptions } from '../storage.interface'; import { Readable } from 'stream'; export interface S3Config { endpoint?: string; region?: string; bucket: string; accessKeyId: string; secretAccessKey: string; forcePathStyle?: boolean; } export declare class S3StorageAdapter implements IStorageAdapter { private readonly logger; private readonly client; private readonly bucket; constructor(config: S3Config); uploadStream(stream: Readable, options: UploadOptions): Promise<{ key: string; etag?: string; }>; downloadStream(options: DownloadOptions): Promise; listObjects(options?: ListOptions): Promise; deleteObject(options: DeleteOptions): Promise; generatePresignedUrl(options: PresignedUrlOptions): Promise; objectExists(key: string): Promise; private getFriendlyError; }