<?php
/**
 * BookiFlex Core
 *
 * @package    BookiFlex
 * @subpackage Core
 * @author     BookiFlex
 * @copyright  Copyright (c) 2025 BookiFlex
 * @license    GPL-2.0-or-later
 *
 * @link       https://bookiflex.com
 */

declare(strict_types=1);

namespace BookiFlex\Core\Contract;

defined( 'ABSPATH' ) || exit;

/**
 * Extension interface
 */
interface ExtensionInterface
{
    /**
     * Initialize the extension
     */
    public function init(PluginInterface $plugin): void;

    /**
     * Get extension name
     */
    public function getName(): string;

    /**
     * Get extension version
     */
    public function getVersion(): string;

    /**
     * Check if extension is compatible with plugin version
     */
    public function isCompatible(string $pluginVersion): bool;
}
