<?php
/**
 * Hero layout contract.
 *
 * @package Kutby
 * @since   2.8.0
 */

declare(strict_types=1);

namespace Kutby\Hero\Contracts;

use Kutby\Hero\Support\HeroContext;

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

/**
 * Interface HeroLayoutInterface
 */
interface HeroLayoutInterface {

	/** @return string */
	public function id(): string;

	/** @return string Arabic Admin label. */
	public function label(): string;

	/**
	 * @return array<int, string>
	 */
	public function option_keys(): array;

	/**
	 * @param HeroContext $ctx Context.
	 * @return void
	 */
	public function render( HeroContext $ctx ): void;
}
