<?php

declare(strict_types=1);

namespace Drupal\ffmpeg_media\Service;

/**
 * Validates output configurations for conversion profiles.
 *
 * Returns human-readable validation messages for codec/container
 * compatibility, audio codec compatibility, and two-pass encoding support.
 *
 * @internal
 */
interface ProfileOutputValidatorServiceInterface {

  /**
   * Validates a list of output configurations and returns warning messages.
   *
   * Checks each output for:
   * - Codec/container compatibility
   * - Audio codec/container compatibility
   * - Two-pass encoding support for the selected codec
   * - Experimental codec warnings (e.g. VVC)
   *
   * @param array<int, array<string, mixed>> $outputs
   *   Output configurations, each with keys: codec, container, options.
   *
   * @return array<int, string>
   *   Validation warning messages (translatable strings cast to string).
   */
  #[\NoDiscard]
  public function validateOutputs(array $outputs): array;

}
