import type { StorageProvider } from './provider.js'

// S3 provider — requires @aws-sdk/client-s3 (install when needed)
// This is a placeholder that documents the interface. Install the SDK
// and uncomment when deploying with S3.

export class S3StorageProvider implements StorageProvider {
  private bucket: string
  private region: string
  private endpoint?: string

  constructor(config: {
    bucket: string
    region: string
    endpoint?: string
    accessKey: string
    secretKey: string
  }) {
    this.bucket = config.bucket
    this.region = config.region
    this.endpoint = config.endpoint
    // TODO: initialize S3Client from @aws-sdk/client-s3
    throw new Error(
      'S3 provider not yet implemented. Install @aws-sdk/client-s3 and implement.',
    )
  }

  async put(_path: string, _data: Buffer, _contentType: string): Promise<void> {
    throw new Error('Not implemented')
  }

  async get(_path: string): Promise<Buffer> {
    throw new Error('Not implemented')
  }

  async delete(_path: string): Promise<void> {
    throw new Error('Not implemented')
  }

  async exists(_path: string): Promise<boolean> {
    throw new Error('Not implemented')
  }

  async getUrl(_path: string, _expiresIn?: number): Promise<string> {
    throw new Error('Not implemented')
  }
}
