<?php

declare(strict_types=1);

namespace Drupal\ai\Entity;

use Drupal\ai\Plugin\AiPlatform\AiPlatformInterface;
use Drupal\Core\Config\Entity\ConfigEntityInterface;

/**
 * Provides an interface for defining AI Platform configuration entities.
 */
interface AiPlatformConfigInterface extends ConfigEntityInterface {

  /**
   * Gets the AiPlatform plugin instance.
   *
   * @return \Drupal\ai\Plugin\AiPlatform\AiPlatformInterface|null
   *   The plugin instance or null if it could not be initialized.
   */
  public function getPlatformInstance(): ?AiPlatformInterface;

  /**
   * Gets the platform name.
   *
   * @return string|\Stringable
   *   The name of the platform.
   */
  public function getPlatformName(): string|\Stringable;

  /**
   * Gets the platform ID.
   *
   * @return string
   *   The ID of the platform plugin.
   */
  public function getPlatformId(): string;

}
