<?php
/**
 * Module Interface
 *
 * Defines the minimal contract that all plugin modules must implement.
 * For full introspection capabilities, modules should extend AbstractModule
 * which implements IntrospectableModuleInterface.
 *
 * @package     WPUltimateSecurity\UltimateSecurity\Contracts
 * @since       1.0.0
 */

declare(strict_types=1);

namespace WPUltimateSecurity\UltimateSecurity\Contracts;

/**
 * Minimal interface for plugin modules.
 *
 * Legacy modules implement this directly. New modules should extend
 * AbstractModule instead, which provides the full feature set.
 *
 * @since 1.0.0
 */
interface ModuleInterface
{
    /**
     * Register the module with WordPress.
     *
     * @return void
     */
    public static function register(): void;

    /**
     * Check if this module is enabled.
     *
     * @return bool
     */
    public static function isEnabled(): bool;

    /**
     * Get unique module identifier.
     *
     * @return string
     */
    public static function getIdentifier(): string;
}
