<?php
/**
 * Settings Tab Interface
 *
 * @package AmbassadorHub\Admin\Settings
 */

namespace AmbassadorHub\Admin\Settings;

/**
 * Base interface for settings tabs.
 *
 * Each tab represents a section in the tabbed settings page.
 */
interface Tab {
	/**
	 * Get the tab ID.
	 *
	 * @return string Unique tab identifier.
	 */
	public function get_id(): string;

	/**
	 * Get the tab label.
	 *
	 * @return string Human-readable tab name.
	 */
	public function get_label(): string;

	/**
	 * Get the tab priority.
	 *
	 * Lower numbers appear first.
	 *
	 * @return int Tab priority.
	 */
	public function get_priority(): int;

	/**
	 * Render the tab content.
	 *
	 * @return void
	 */
	public function render(): void;
}
