1<?php
2
3declare(strict_types=1);
4
5/*
6 * This file is part of the league/config package.
7 *
8 * (c) Colin O'Dell <colinodell@gmail.com>
9 *
10 * For the full copyright and license information, please view the LICENSE
11 * file that was distributed with this source code.
12 */
13
14namespace League\Config;
15
16use League\Config\Exception\UnknownOptionException;
17
18/**
19 * Interface for setting/merging user-defined configuration values into the configuration object
20 */
21interface MutableConfigurationInterface
22{
23    /**
24     * @param mixed $value
25     *
26     * @throws UnknownOptionException if $key contains a nested path which doesn't point to an array value
27     */
28    public function set(string $key, $value): void;
29
30    /**
31     * @param array<string, mixed> $config
32     */
33    public function merge(array $config = []): void;
34}
35