"""
DSS Project Management Module

Handles project lifecycle: initialization, configuration, syncing, and building.

DSS "eats its own dog food" - the shadcn/ui Figma (team 857274453634536756)
is the canonical base layer. All skins and projects inherit from it.
"""

from dss.project.models import (
    DSSProject,
    ProjectConfig,
    FigmaSource,
    FigmaFile,
    OutputConfig,
    ProjectStatus,
)

from dss.project.manager import (
    ProjectManager,
    ProjectRegistry,
)

from dss.project.figma import (
    FigmaProjectSync,
    FigmaRateLimitError,
    RateLimitConfig,
    RateLimitState,
)

from dss.project.core import (
    DSS_FIGMA_REFERENCE,
    DSSFigmaReference,
    DSS_CORE_TOKEN_CATEGORIES,
    DSS_CORE_COMPONENTS,
    DSS_CORE_THEMES,
    get_dss_figma_reference,
    ensure_dss_directories,
    is_dss_core_component,
    get_component_variants,
)

from dss.project.sync import (
    DSSCoreSync,
    sync_dss_core,
    get_dss_core_status,
    get_dss_core_tokens,
    get_dss_core_themes,
)

__all__ = [
    # Models
    "DSSProject",
    "ProjectConfig",
    "FigmaSource",
    "FigmaFile",
    "OutputConfig",
    "ProjectStatus",
    # Manager
    "ProjectManager",
    "ProjectRegistry",
    # Figma
    "FigmaProjectSync",
    "FigmaRateLimitError",
    "RateLimitConfig",
    "RateLimitState",
    # Core
    "DSS_FIGMA_REFERENCE",
    "DSSFigmaReference",
    "DSS_CORE_TOKEN_CATEGORIES",
    "DSS_CORE_COMPONENTS",
    "DSS_CORE_THEMES",
    "get_dss_figma_reference",
    "ensure_dss_directories",
    "is_dss_core_component",
    "get_component_variants",
    # Sync
    "DSSCoreSync",
    "sync_dss_core",
    "get_dss_core_status",
    "get_dss_core_tokens",
    "get_dss_core_themes",
]
