<?php
/**
 * AR Display AI Provider Interface
 */

if (!defined('ABSPATH')) {
    exit;
}

if (!interface_exists('Ardisplay_Ai_Provider_Interface')) {
    interface Ardisplay_Ai_Provider_Interface {
        /**
         * Human readable provider name
         */
        public function provider_name(): string;

        /**
         * Create a generation job
         *
         * @param array $images Array of image URLs
         * @param array $params Arbitrary params for provider
         * @param string $ai_credits_token AI credits token for authentication
         * @return array { job_id: string, status: string, raw?: mixed }
         */
        public function create_job(array $images, array $params = [], string $ai_credits_token = ''): array;

        /**
         * Get job status by id
         *
         * @param string $job_id
         * @param string $ai_credits_token AI credits token for authentication
         * @return array
         */
        public function get_job(string $job_id, string $ai_credits_token = ''): array;

        /**
         * Cancel an existing job
         *
         * @param string $job_id
         * @param string $ai_credits_token AI credits token for authentication
         * @return array
         */
        public function cancel_job(string $job_id, string $ai_credits_token = ''): array;
    }
}


