"""
NAVIG Bot Module - Telegram bot utilities and handlers.
"""

from navig.bot.help_system import (
    CATEGORIES,
    CommandInfo,
    format_category_help,
    format_command_help,
    format_main_help,
    get_all_commands,
    get_command,
    get_commands_by_category,
    search_commands,
)
from navig.bot.start_menu import (
    ACTION_COMMANDS,
    build_main_menu,
    build_section,
    get_action_info,
)
from navig.bot.stats_store import (
    BotStatsStore,
    CommandStat,
    Reminder,
    get_bot_store,
)

# NLP Intent Parser - optional, imported on demand
try:
    from navig.bot.command_tools import (
        COMMAND_HANDLER_MAP,
        COMMAND_TOOLS,
        get_command_string,
    )
    from navig.bot.intent_parser import (
        ConfirmationHandler,
        IntentParser,
        IntentParseResult,
    )
    NLP_AVAILABLE = True
except ImportError:
    NLP_AVAILABLE = False
    IntentParser = None
    IntentParseResult = None
    ConfirmationHandler = None
    COMMAND_TOOLS = []
    COMMAND_HANDLER_MAP = {}
    get_command_string = None

__all__ = [
    'CATEGORIES',
    'get_all_commands',
    'get_commands_by_category',
    'get_command',
    'search_commands',
    'format_command_help',
    'format_category_help',
    'format_main_help',
    'CommandInfo',
    'BotStatsStore',
    'get_bot_store',
    'Reminder',
    'CommandStat',
    # Start Menu
    'build_main_menu',
    'build_section',
    'get_action_info',
    'ACTION_COMMANDS',
    # NLP
    'NLP_AVAILABLE',
    'IntentParser',
    'IntentParseResult',
    'ConfirmationHandler',
    'COMMAND_TOOLS',
    'COMMAND_HANDLER_MAP',
    'get_command_string',
]
