"""Elydora Python SDK — tamper-evident audit trail for AI agents."""

from .client import ElydoraClient
from .async_client import AsyncElydoraClient
from .errors import ElydoraError
from .crypto import (
    compute_chain_hash,
    compute_payload_hash,
    jcs_canonicalize,
    sha256_base64url,
    sign_ed25519,
    sign_eor,
    get_public_key_base64url,
)
from .utils import base64url_encode, base64url_decode, generate_nonce, generate_uuidv7
from .types import (
    EOR,
    EAR,
    Agent,
    AgentKey,
    Operation,
    Receipt,
    Epoch,
    Export,
    Organization,
    User,
    RegisterAgentRequest,
    RegisterAgentResponse,
    GetAgentResponse,
    ListAgentsResponse,
    DeleteAgentResponse,
    SubmitOperationResponse,
    GetOperationResponse,
    VerifyOperationResponse,
    AuditQueryResponse,
    GetEpochResponse,
    ListEpochsResponse,
    CreateExportResponse,
    GetExportResponse,
    ListExportsResponse,
    JWKSResponse,
    AuthRegisterResponse,
    AuthLoginResponse,
    GetMeResponse,
    IssueTokenResponse,
    HealthResponse,
)

__version__ = "1.0.0"

__all__ = [
    "ElydoraClient",
    "AsyncElydoraClient",
    "ElydoraError",
    "compute_chain_hash",
    "compute_payload_hash",
    "jcs_canonicalize",
    "sha256_base64url",
    "sign_ed25519",
    "sign_eor",
    "get_public_key_base64url",
    "base64url_encode",
    "base64url_decode",
    "generate_nonce",
    "generate_uuidv7",
    "EOR",
    "EAR",
    "Agent",
    "AgentKey",
    "Operation",
    "Receipt",
    "Epoch",
    "Export",
    "Organization",
    "User",
    "RegisterAgentRequest",
    "RegisterAgentResponse",
    "GetAgentResponse",
    "ListAgentsResponse",
    "DeleteAgentResponse",
    "SubmitOperationResponse",
    "GetOperationResponse",
    "VerifyOperationResponse",
    "AuditQueryResponse",
    "GetEpochResponse",
    "ListEpochsResponse",
    "CreateExportResponse",
    "GetExportResponse",
    "ListExportsResponse",
    "JWKSResponse",
    "AuthRegisterResponse",
    "AuthLoginResponse",
    "GetMeResponse",
    "IssueTokenResponse",
    "HealthResponse",
]
