<?php
/**
 * Footer layout contract.
 *
 * @package Kutby
 * @since   2.7.0
 */

declare(strict_types=1);

namespace Kutby\Footer\Contracts;

use Kutby\Footer\Support\FooterContext;

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

/**
 * Interface FooterLayoutInterface
 */
interface FooterLayoutInterface {

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

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

	/**
	 * Theme Options keys this layout uses (excluding always-on: layout).
	 *
	 * @return array<int, string>
	 */
	public function option_keys(): array;

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