<?php
namespace nur\v\model;

interface IMenuManager {
  const MENU_SCHEMA = [
    "brand" => ["?content", null],
    "items" => ["?array[]", null],
  ];

  const ITEM_SCHEMA = [
    "text" => ["?content", null],
    "url" => ["?string", null],
    "prefix" => ["?content", null, "préfixe à ajouter avant text"],
    "suffix" => ["?content", null, "suffixe à ajouter après text"],
    "params" => ["?array", null],
    "show_active" => ["?bool", null, "faut-il afficher l'élément comme actif, même s'il n'est pas sélectionné?"],
    "items" => ["?array[]", null],
    "id" => ["?string", null],
    "brand" => ["?content", null],
    "accesskey" => ["?string", null],
    "target" => ["?string", null],
    "perm" => ["?array", null],
    "role" => ["?array", null],
  ];

  function init($menu, ?string $selectedId): void;

  const GET_RESULT_SCHEMA = [
    "brand" => ["?string", null],
    "navbar_items" => ["?array", null],
  ];

  function get(): array;
}