from typing import Any

from .base import ConfigurationManagerBase
from models.config import SystemConfig


class ConfigurationManager(ConfigurationManagerBase):
    async def load_config(self, path: str) -> SystemConfig:
        raise NotImplementedError

    async def save_config(self, config: SystemConfig, path: str) -> bool:
        raise NotImplementedError

    def get_config(self) -> SystemConfig:
        raise NotImplementedError

    def get_value(self, key: str, default: Any = None) -> Any:
        raise NotImplementedError

    async def update_value(self, key: str, value: Any) -> bool:
        raise NotImplementedError

    async def validate_config(self, config: SystemConfig) -> list[str]:
        raise NotImplementedError

    async def reload_config(self) -> bool:
        raise NotImplementedError

