from __future__ import annotations

from typing import Protocol, Sequence

from gateway_core.domain.node.NodeInfo import NodeInfo
from gateway_core.domain.node.NodeSelector import NodeSelector


class NodesPort(Protocol):
    def listNodes(self, selector: NodeSelector) -> Sequence[NodeInfo]:
        ...

    def getNodeById(self, nodeId: str) -> NodeInfo:
        ...

    def findNodesByTag(self, tag: str) -> Sequence[NodeInfo]:
        ...
