<?php

namespace AutoAdmin\Bundle\BrickBuilder\Brick;

use AutoAdmin\Bundle\BrickBuilder\Brick\Handler\BrickHandlerInterface;
use AutoAdmin\Bundle\BrickBuilder\Model\BrickInterface;

interface BrickHandlerManagerInterface
{
    public function getHandler(BrickInterface $brick): ?BrickHandlerInterface;

    public function getHandlers();

    public function getHandlerTypes(): array;

    public function getBrickCategories(bool $excludeEmpty = false): array;

    public function getBrickTypes(bool $excludeEmpty = false): array;

    public function getHierarchyConstraints(): array;

    public function buildSettings(BrickInterface $brick): BrickInterface;
}