<?php

declare(strict_types=1);

namespace Drupal\ffmpeg_media_whisper\Service;

/**
 * Provides supported Whisper configuration options.
 *
 * @internal
 */
interface WhisperOptionsProviderInterface {

  /**
   * Returns supported Whisper model options.
   *
   * @return array<string, \Drupal\Core\StringTranslation\TranslatableMarkup>
   *   Model options keyed by model name.
   */
  public function getAvailableModels(): array;

  /**
   * Returns supported subtitle output formats.
   *
   * @return array<string, \Drupal\Core\StringTranslation\TranslatableMarkup>
   *   Format options keyed by output format.
   */
  public function getAvailableFormats(): array;

  /**
   * Returns whether a model identifier is supported.
   */
  public function isValidModel(string $model): bool;

  /**
   * Returns whether an output format is supported.
   */
  public function isValidFormat(string $format): bool;

}
