from typing import Protocol

from gateway_core.domain.Reboot import RebootDto
from gateway_core.domain.SoftwareUpgrade import SoftwareUpgradeDto
from gateway_core.domain.node.NodeInfo import NodeInfo


class NodeAgentPort(Protocol):
    async def startUpgrade(self, *, nodeInfo: NodeInfo, dto: SoftwareUpgradeDto) -> None: ...
    async def triggerReboot(self, *, nodeInfo: NodeInfo, dto: RebootDto) -> None: ...
