export interface S3UploadResult { key: string; url: string; bucket: string; } export interface S3UploadOptions { contentType: string; metadata?: Record; acl?: "private" | "public-read" | "public-read-write"; } export interface S3DownloadOptions { expiresIn?: number; responseContentType?: string; responseContentDisposition?: string; } export interface S3FileInfo { key: string; bucket: string; size: number; lastModified: Date; contentType: string; etag: string; } export interface S3DeleteResult { deleted: boolean; key: string; } export interface S3ListResult { files: S3FileInfo[]; continuationToken?: string; isTruncated: boolean; }