> For the complete documentation index, see [llms.txt](https://prethink.gitbook.io/prtelegrambot/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://prethink.gitbook.io/prtelegrambot/ru/api/interfeisy/ibotconfigprovider.md).

# IBotConfigProvider

Интерфейс провайдера конфигурации бота. Используется для выгрузки информации из конфигурационных файлов. Внутри библиотеки есть реализация для работы с json [BotConfigJsonProvider](/prtelegrambot/ru/api/utils/botconfigjsonprovider.md)

```csharp
namespace PRTelegramBot.Interfaces
{
    /// <summary>
    /// Интерфейс провайдера конфигурации бота.
    /// </summary>
    public interface IBotConfigProvider
    {
        /// <summary>
        /// Установить путь до конфигурационного файла.
        /// </summary>
        /// <param name="configPath">Путь до файла.</param>
        public void SetConfigPath(string configPath);

        /// <summary>
        /// Получить параметры из конфигурационного файла.
        /// </summary>
        /// <typeparam name="TOptions">Класс параметров.</typeparam>
        /// <returns>Параметры.</returns>
        public TOptions GetOptions<TOptions>() where TOptions : class;

        /// <summary>
        /// Получить значение из параметра.
        /// </summary>
        /// <typeparam name="TReturn">Тип возращаемого значения.</typeparam>
        /// <param name="optionName">Название параметра.</param>
        /// <returns>Значение параметра.</returns>
        public TReturn GetValue<TReturn>(string optionName);

        /// <summary>
        /// Получить словарь ключ-значение из конфигурационного файла.
        /// </summary>
        /// <returns>Словарь ключ-значение.</returns>
        public Dictionary<string, string> GetKeysAndValues();

        /// <summary>
        /// Получить коллекцию ключ-значение из параметров конфигурационного файла.
        /// </summary>
        /// <typeparam name="TOptions">Класс параметров.</typeparam>
        /// <returns>Словарь ключ-значение.</returns>
        public Dictionary<string, string> GetKeysAndValuesByOptions<TOptions>() where TOptions : class;
    }
}

```
