
# ruff: noqa: RUF012
# pyright: reportAssignmentType=false
# Imports
from typing import TYPE_CHECKING

from beet import Context
from beet.core.utils import JsonDict

if TYPE_CHECKING:
    from .cls.item import Item


# Shared variables among plugins
class Mem:
    ctx: Context = None
    """ Global context object that holds the beet project configuration.
    This is set during plugins.initialize and used throughout the codebase. """

    definitions: dict[str, JsonDict | Item] = {}
    """ JsonDict storing all item and block definitions for the project. """

    external_definitions: dict[str, JsonDict | Item] = {}
    """ Secondary JsonDict for storing external items or blocks most likely for recipes. """

