"""ERC-8004 Agent Registry Extension for the t402 protocol.

Provides agent identity verification, reputation scoring,
validation, and extension helpers for ERC-8004 registries.
"""

from t402.extensions.erc8004.types import (
    Address,
    AgentIdentity,
    AgentRegistry,
    AgentRegistryId,
    Bytes32,
    ERC8004Config,
    ERC8004Extension,
    ERC8004PayloadExtension,
    ERC8004ReadClient,
    ERC8004WriteClient,
    FeedbackFile,
    FeedbackParams,
    FeedbackRecord,
    FeedbackSubmissionConfig,
    Hex,
    MetadataEntry,
    ProofOfPayment,
    RegistrationEntry,
    RegistrationFile,
    ReputationCheckConfig,
    ReputationSummary,
    ResolvedAgent,
    ServiceEntry,
    ValidationRequestParams,
    ValidationStatus,
    ValidationSummary,
)
from t402.extensions.erc8004.constants import (
    ERC8004_EXTENSION_KEY,
    FEEDBACK_TAGS,
    IDENTITY_REGISTRIES,
    IDENTITY_REGISTRY_ABI,
    IDENTITY_REGISTRY_DOMAIN,
    REPUTATION_REGISTRIES,
    REPUTATION_REGISTRY_ABI,
    SET_AGENT_WALLET_TYPES,
    VALIDATION_REGISTRIES,
    VALIDATION_REGISTRY_ABI,
)
from t402.extensions.erc8004.erc8004 import (
    build_feedback_file,
    create_erc8004_payload_extension,
    declare_erc8004_extension,
    fetch_registration_file,
    get_agent_identity,
    get_erc8004_extension,
    get_reputation_summary,
    get_validation_status,
    get_validation_summary,
    parse_agent_registry,
    resolve_agent,
    submit_feedback,
    submit_validation_request,
    verify_agent_identity,
    verify_pay_to_matches_agent,
)

__all__ = [
    # Types
    "Address",
    "AgentIdentity",
    "AgentRegistry",
    "AgentRegistryId",
    "Bytes32",
    "ERC8004Config",
    "ERC8004Extension",
    "ERC8004PayloadExtension",
    "ERC8004ReadClient",
    "ERC8004WriteClient",
    "FeedbackFile",
    "FeedbackParams",
    "FeedbackRecord",
    "FeedbackSubmissionConfig",
    "Hex",
    "MetadataEntry",
    "ProofOfPayment",
    "RegistrationEntry",
    "RegistrationFile",
    "ReputationCheckConfig",
    "ReputationSummary",
    "ResolvedAgent",
    "ServiceEntry",
    "ValidationRequestParams",
    "ValidationStatus",
    "ValidationSummary",
    # Constants
    "ERC8004_EXTENSION_KEY",
    "FEEDBACK_TAGS",
    "IDENTITY_REGISTRIES",
    "IDENTITY_REGISTRY_ABI",
    "IDENTITY_REGISTRY_DOMAIN",
    "REPUTATION_REGISTRIES",
    "REPUTATION_REGISTRY_ABI",
    "SET_AGENT_WALLET_TYPES",
    "VALIDATION_REGISTRIES",
    "VALIDATION_REGISTRY_ABI",
    # Functions
    "build_feedback_file",
    "create_erc8004_payload_extension",
    "declare_erc8004_extension",
    "fetch_registration_file",
    "get_agent_identity",
    "get_erc8004_extension",
    "get_reputation_summary",
    "get_validation_status",
    "get_validation_summary",
    "parse_agent_registry",
    "resolve_agent",
    "submit_feedback",
    "submit_validation_request",
    "verify_agent_identity",
    "verify_pay_to_matches_agent",
]
