"""
SentryAgent.ai AgentIdP Python SDK.

Provides synchronous and asynchronous clients for the AgentIdP API.

Example (sync)::

    from sentryagent_idp import AgentIdPClient

    client = AgentIdPClient(
        base_url="http://localhost:3000",
        client_id="your-agent-id",
        client_secret="your-client-secret",
    )
    result = client.agents.list_agents()

Example (async)::

    from sentryagent_idp import AsyncAgentIdPClient

    client = AsyncAgentIdPClient(
        base_url="http://localhost:3000",
        client_id="your-agent-id",
        client_secret="your-client-secret",
    )
    result = await client.agents.list_agents()
"""

from .client import AgentIdPClient, AsyncAgentIdPClient
from .errors import AgentIdPError
from .token_manager import TokenManager
from .async_token_manager import AsyncTokenManager
from .types import (
    Agent,
    AgentStatus,
    AgentType,
    AuditAction,
    AuditEvent,
    AuditOutcome,
    Credential,
    CredentialStatus,
    CredentialWithSecret,
    DeploymentEnv,
    IntrospectResponse,
    OAuthScope,
    PaginatedAgents,
    PaginatedAuditEvents,
    PaginatedCredentials,
    RegisterAgentRequest,
    TokenResponse,
    UpdateAgentRequest,
)

__all__ = [
    # Clients
    "AgentIdPClient",
    "AsyncAgentIdPClient",
    # Errors
    "AgentIdPError",
    # Token managers (for advanced use)
    "TokenManager",
    "AsyncTokenManager",
    # Types
    "Agent",
    "AgentStatus",
    "AgentType",
    "AuditAction",
    "AuditEvent",
    "AuditOutcome",
    "Credential",
    "CredentialStatus",
    "CredentialWithSecret",
    "DeploymentEnv",
    "IntrospectResponse",
    "OAuthScope",
    "PaginatedAgents",
    "PaginatedAuditEvents",
    "PaginatedCredentials",
    "RegisterAgentRequest",
    "TokenResponse",
    "UpdateAgentRequest",
]
