"""IdentityProvider - Local/OIDC/DID abstraction."""
from __future__ import annotations

from typing import Any, Protocol, runtime_checkable


@runtime_checkable
class IdentityProvider(Protocol):
    """Provider pro identitu uzivatele nebo agenta."""

    @property
    def provider_name(self) -> str:
        ...

    async def authenticate(self, credentials: dict[str, Any]) -> dict[str, Any]:
        ...

    async def get_identity(self, token: str) -> dict[str, Any] | None:
        ...
