<?php

namespace WPUltimateSecurity\UltimateSecurity\Modules\Monitoring\VulnerabilityScanner;

/**
 * Interface for Vulnerability Database Providers
 *
 * Defines the contract that all vulnerability database providers must implement.
 */
interface VulnerabilityProviderInterface
{
    /**
     * Check a plugin for vulnerabilities
     *
     * @param string $slug Plugin slug
     * @param string $version Current plugin version
     * @return array|\WP_Error Array of vulnerabilities or WP_Error on failure
     */
    public function check_plugin(string $slug, string $version);

    /**
     * Check a theme for vulnerabilities
     *
     * @param string $slug Theme slug
     * @param string $version Current theme version
     * @return array|\WP_Error Array of vulnerabilities or WP_Error on failure
     */
    public function check_theme(string $slug, string $version);

    /**
     * Check WordPress core for vulnerabilities
     *
     * @param string $version WordPress version
     * @return array|\WP_Error Array of vulnerabilities or WP_Error on failure
     */
    public function check_wordpress(string $version);

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