<?php

declare(strict_types=1);

namespace Drupal\ffmpeg_media\Service;

/**
 * Inspects FFmpeg version and available capabilities.
 *
 * @internal
 */
interface FFmpegCapabilityInspectorInterface {

  /**
   * Gets the FFmpeg version.
   *
   * @return string|null
   *   Version string or NULL if not available.
   */
  #[\NoDiscard]
  public function getVersion(): ?string;

  /**
   * Checks if a specific encoder is available.
   *
   * @param string $encoder
   *   Encoder name (e.g., 'libx264', 'libsvtav1').
   *
   * @return bool
   *   TRUE if encoder is available.
   */
  #[\NoDiscard]
  public function hasEncoder(string $encoder): bool;

  /**
   * Checks if a specific filter is available.
   *
   * @param string $filter
   *   Filter name (e.g., 'scale', 'thumbnail').
   *
   * @return bool
   *   TRUE if filter is available.
   */
  #[\NoDiscard]
  public function hasFilter(string $filter): bool;

}
