. */ declare(strict_types=1); namespace Fisharebest\Webtrees\Module; use Fisharebest\Webtrees\Individual; use Fisharebest\Webtrees\Menu; /** * Interface ModuleChartInterface - Classes and libraries for module system */ interface ModuleChartInterface { /** * A menu item for this chart for an individual box in a chart. * * @param Individual $individual * * @return Menu|null */ public function chartBoxMenu(Individual $individual): ?Menu; /** * A main menu item for this chart. * * @param Individual $individual * * @return Menu */ public function chartMenu(Individual $individual): Menu; /** * CSS class for the menu. * * @return string */ public function chartMenuClass(): string; /** * The title for a specific instance of this chart. * * @param Individual $individual * * @return string */ public function chartTitle(Individual $individual): string; /** * The URL for a page showing chart options. * * @param Individual $individual * @param string[] $parameters * * @return string */ public function chartUrl(Individual $individual, array $parameters = []): string; /** * Attributes for the URL. * * @return string[] */ public function chartUrlAttributes(): array; }