<?php

namespace Lc\CaracoleBundle\Definition;

use Lc\SovBundle\Definition\AbstractSettingDefinition;

interface MerchantSettingDefinitionInterface
{
    public function addSettingText(array $params);

    public function addSettingTextarea(array $params);

    public function addSettingTextareaAdvanced(array $params);

    public function addSettingDate(array $params);

    public function addSettingTime(array $params);

    public function addSettingFile(array $params);

    public function addSettingImage(array $params);

    public function addSettingSelect(array $params);

    public function addSettingRadio(array $params);

    public function addSetting($params);

    public function getSettings(): array;

    public function getSettingsByCategory($category);

    public function getSettingByName($name): ?array;

    public function getSettingType($name): ?string;

    public function getCategories();
}