<?php
declare(strict_types=1);


/**
 * Module Interface
 *
 * @package ProRank\Contracts
 */

namespace ProRank\SEO\Contracts;

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


/**
 * Interface for all ProRank modules
 */


interface ModuleInterface {
    
    /**
     * Get module ID
     *
     * @return string
     */
    public function id(): string;
    
    /**
     * Get required tier
     *
     * @return string
     */
    public function tier_required(): string;
    
    /**
     * Get settings group
     *
     * @return string
     */
    public function settings_group(): string;
    
    /**
     * Initialize module hooks
     *
     * @return void
     */
    public function init_hooks(): void;

    /**
     * Get module display name.
     *
     * @return string
     */
    public function get_name(): string;

    /**
     * Get module description.
     *
     * @return string
     */
    public function get_description(): string;

    /**
     * Get feature tier required by this module.
     *
     * @return string
     */
    public function get_feature_tier(): string;

    /**
     * Get optional parent module slug.
     *
     * @return string|null
     */
    public function get_parent_slug(): ?string;

    /**
     * Check whether the module is currently enabled.
     *
     * @return bool
     */
    public function is_enabled(): bool;
}
