export interface S3FileSystemConfig {
  /**
   * The S3 bucket name
   */
  bucket: string;

  /**
   * AWS region
   */
  region: string;

  /**
   * Optional prefix to namespace all operations
   * @default "/"
   */
  prefix?: string;

  /**
   * AWS credentials
   * If not provided, will use default AWS credential chain:
   * - Environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
   * - Shared credentials file (~/.aws/credentials)
   * - IAM roles (for EC2, Lambda, etc)
   */
  credentials?: {
    accessKeyId: string;
    secretAccessKey: string;
  };

  /**
   * Optional S3 client configuration
   */
  clientOptions?: {
    endpoint?: string; // For S3-compatible services like MinIO
    forcePathStyle?: boolean;
  };

  /**
   * Compatibility mode
   * - "strict": Requires directory markers and metadata (default for new systems)
   * - "lenient": Works with any existing S3 structure
   * @default "strict"
   */
  mode?: "strict" | "lenient";
}
