/**
 * @author Maxim-M <maximco36895@yandex.ru>
 *
 * **umbot** — кроссплатформенный TypeScript-фреймворк для разработки голосовых навыков и чат-ботов. Он даёт единую бизнес-логику для всех платформ — но одинаково эффективен, даже если вы работаете только с одной.
 * Поддерживаются: `Яндекс.Алиса`, `Маруся`, `Сбер Салют`, а также `Telegram`, `VK`, `MAX` и `Viber` из коробки.
 *
 * ## 🚀 Основные возможности
 * - Создание голосовых навыков для Алисы, Маруси и Сбер Салют (SmartApp)
 * - Разработка чат-ботов для Telegram, Viber, VK и MAX
 * - Создание навыка/бота для любой платформы
 * - Единая логика для голосовых и текстовых интерфейсов (навыки/чат-боты)
 * - Гибкая система команд, интентов и многошаговых диалогов
 * - Встроенная работа с состоянием (локальное хранилище, БД Mongo из коробки)
 * - UI-компоненты: кнопки, карточки, звуки, TTS
 * - Middleware, плагины, метрики и логирование
 * - Расширяемость: легко добавить новую платформу через адаптер
 *
 * Основная работа приложения основана на использовании {@link Bot}, который отвечает за всё взаимодействие с платформами и обработку запросов.
 *
 * Подробнее о каждом компоненте читайте в соответствующих разделах документации.
 *
 * @example
 * ```ts
 * // Минимальный пример работы
 * import { Bot, FALLBACK_COMMAND, HELP_INTENT_NAME, WELCOME_INTENT_NAME } from 'umbot';
 * import { fullPlatforms } from 'umbot/plugins';
 *
 * const bot = new Bot()
 *     .use(fullPlatforms) // Подключаем все доступные платформы
 *     .setAppConfig({ json: './data', isLocalStorage: true }) // Директория для данных и локальное хранилище
 *     .addCommand(WELCOME_INTENT_NAME, ['привет'], (_: string, bc: BotController) => {
 *         bc.text = 'Привет! Я новый навык.';
 *         bc.buttons.addBtn('Помощь');
 *     })
 *     .addCommand(HELP_INTENT_NAME, ['помощь'], (_: string, bc: BotController) => {
 *         bc.text = 'Я умею отвечать на команды и показывать кнопки';
 *     })
 *     .addCommand(FALLBACK_COMMAND, [], (_: string, bc: BotController) => {
 *         bc.text = bc.userCommand || 'Вы ничего не сказали';
 *     }) // Если команда не найдена
 *     .start('localhost', 3000);
 * ```
 *
 * @packageDocumentation
 * @module index
 */
/**
 * Основные компоненты ядра фреймворка
 *
 * Включает:
 * - Базовые классы и интерфейсы
 * - Систему обработки команд
 * - Управление состоянием
 * - Обработку ошибок
 */
export * from './core';
/**
 * Модули для работы с внешними API
 *
 * Предоставляет:
 * - Интерфейсы для API
 * - Классы для HTTP-запросов
 * - Интеграции с сервисами
 * - Обработку ответов
 */
export * from './api';
/**
 * Вспомогательные компоненты
 *
 * Включает:
 * - Кнопки и клавиатуры
 * - Карточки и изображения
 * - Звуки и аудио
 * - UI элементы
 */
export * from './components';
/**
 * Контроллеры приложения
 *
 * Предоставляет:
 * - Базовый класс BotController
 * - Методы для обработки команд
 * - Управление состоянием
 * - Шаблоны ответов
 */
export * from './controller';
/**
 * Модели данных
 *
 * Содержит:
 * - Классы для работы с БД
 * - Интерфейсы моделей
 * - Миграции
 * - Запросы
 */
export * from './models';
/**
 * Вспомогательные утилиты
 *
 * Включает:
 * - Работа с текстом
 * - Форматирование данных
 * - Валидация
 * - Хелперы
 */
export * from './utils';
