<?php

/**
 * Image Provider Interface
 *
 * Defines the contract for AI image generation providers
 *
 * @link       https://insya.com/ai-magic
 * @since      1.0.8
 *
 * @package    Ai_Magic
 * @subpackage Ai_Magic/includes
 */

/**
 * Interface for image generation providers
 *
 * @since      1.0.8
 * @package    Ai_Magic
 * @subpackage Ai_Magic/includes
 */
interface AI_Magic_Image_Provider_Interface
{
    /**
     * Generate an image from a prompt
     *
     * @param string $prompt   The image description/prompt
     * @param array  $options  Generation options (size, quality, style, etc.)
     * @return array Response with 'type' (success/error), 'url' or 'message'
     */
    public function generateImage($prompt, $options = array());

    /**
     * Get available models for image generation
     *
     * @return array List of available models
     */
    public function getAvailableModels();

    /**
     * Get available image sizes
     *
     * @return array List of available sizes
     */
    public function getAvailableSizes();

    /**
     * Validate the API key
     *
     * @return bool|WP_Error True if valid, WP_Error if invalid
     */
    public function validateApiKey();
}
