# Copyright 2026 ACP Project
# Licensed under the Apache License, Version 2.0
# See LICENSE file for details.

from .agent import Agent, ProcessingError
from .amqp_transport import (
    AMQPTransport,
    AMQPTransportError,
    build_amqp_service_hint,
    queue_name_for_agent,
    routing_key_for_agent,
)
from .mqtt_transport import (
    DEFAULT_MQTT_QOS,
    DEFAULT_MQTT_TOPIC_PREFIX,
    MQTTTransport,
    MQTTTransportError,
    build_mqtt_service_hint,
    topic_for_agent,
)
from .overlay import (
    OverlayAdapterError,
    OverlayInboundAdapter,
    OverlayOutboundAdapter,
    OverlayTarget,
    is_acp_http_message,
)
from .overlay_framework import (
    WELL_KNOWN_CACHE_CONTROL,
    OverlayClient,
    OverlayFrameworkError,
    OverlayFrameworkRuntime,
    OverlayHttpResponse,
    acp_overlay_inbound,
    register_fastapi_overlay_routes,
    register_flask_overlay_routes,
)
from .well_known import (
    DEFAULT_IDENTITY_DOCUMENT_PATH,
    WELL_KNOWN_PATH,
    build_well_known_document,
    well_known_url_from_base,
)
from .capabilities import AgentCapabilities, CapabilityMatch, choose_compatible
from .key_provider import IdentityKeyMaterial, KeyProviderError, LocalKeyProvider, TlsMaterial, VaultKeyProvider
from .messages import (
    ACPMessage,
    CompensateInstruction,
    DeliveryOutcome,
    DeliveryState,
    Envelope,
    FailReason,
    MessageClass,
    ProtectedPayload,
    SendResult,
    WrappedContentKey,
)

__all__ = [
    "ACPMessage",
    "AMQPTransport",
    "AMQPTransportError",
    "Agent",
    "AgentCapabilities",
    "CapabilityMatch",
    "CompensateInstruction",
    "DeliveryOutcome",
    "DeliveryState",
    "Envelope",
    "FailReason",
    "MessageClass",
    "MQTTTransport",
    "MQTTTransportError",
    "OverlayAdapterError",
    "OverlayClient",
    "OverlayInboundAdapter",
    "OverlayOutboundAdapter",
    "OverlayTarget",
    "OverlayFrameworkError",
    "OverlayFrameworkRuntime",
    "OverlayHttpResponse",
    "acp_overlay_inbound",
    "WELL_KNOWN_CACHE_CONTROL",
    "LocalKeyProvider",
    "VaultKeyProvider",
    "IdentityKeyMaterial",
    "TlsMaterial",
    "KeyProviderError",
    "ProcessingError",
    "ProtectedPayload",
    "SendResult",
    "WrappedContentKey",
    "build_amqp_service_hint",
    "build_mqtt_service_hint",
    "DEFAULT_MQTT_QOS",
    "DEFAULT_MQTT_TOPIC_PREFIX",
    "DEFAULT_IDENTITY_DOCUMENT_PATH",
    "WELL_KNOWN_PATH",
    "build_well_known_document",
    "is_acp_http_message",
    "register_fastapi_overlay_routes",
    "register_flask_overlay_routes",
    "queue_name_for_agent",
    "routing_key_for_agent",
    "topic_for_agent",
    "well_known_url_from_base",
    "choose_compatible",
]
