"""Domain-specific plugin interface for system monitoring"""

# AUTOGENERATED! DO NOT EDIT! File to edit: ../nbs/plugin_interface.ipynb.

# %% auto 0
__all__ = ['MonitorPlugin']

# %% ../nbs/plugin_interface.ipynb 3
from abc import abstractmethod
from typing import Dict, Any

from cjm_plugin_system.core.interface import PluginInterface

from .core import SystemStats

# %% ../nbs/plugin_interface.ipynb 5
class MonitorPlugin(PluginInterface):
    """Abstract base class for hardware monitoring plugins."""
    
    entry_point_group = "infra.plugins"  # Entry point for discovery

    @abstractmethod
    def execute(
        self,
        command: str = "get_system_status",  # Command to execute
        **kwargs
    ) -> Dict[str, Any]:  # SystemStats as dictionary
        """Gather current system statistics and return as dictionary."""
        ...
