<?php

declare(strict_types=1);

namespace Drupal\flowdrop_chat\Service;

/**
 * Interface for the chat LLM client.
 *
 * Wraps the FlowDrop AI provider to provide a testable
 * abstraction for chat LLM operations.
 */
interface ChatLlmClientInterface {

  /**
   * Send a chat message to the configured LLM provider.
   *
   * @param string $systemPrompt
   *   The system prompt.
   * @param string $userPrompt
   *   The user prompt.
   * @param string[] $tags
   *   Tags for the LLM request.
   *
   * @return string
   *   The LLM response text.
   *
   * @throws \RuntimeException
   *   If no AI provider is configured or the request fails.
   */
  public function chat(string $systemPrompt, string $userPrompt, array $tags = []): string;

}
