"""Inference gateway: shared client and routing layer.

Exports:
    InferenceGateway - Gateway facade for all LLM consumers
    InferenceTarget - Resolved target configuration
    StructuredGenerationRequest - Structured generation request
    InferenceResult - Inference response with lineage
    ModelLineage - Lineage record for persistence
    build_lineage_from_result - Extract lineage from a result
"""
from services.shared.inference.gateway import InferenceGateway
from services.shared.inference.lineage import build_lineage_from_result
from services.shared.inference.models import (
    ChatMessage,
    InferenceResult,
    InferenceTarget,
    ModelLineage,
    ProviderCapabilities,
    StructuredGenerationRequest,
    TokenUsage,
)

__all__ = [
    "InferenceGateway",
    "InferenceTarget",
    "StructuredGenerationRequest",
    "InferenceResult",
    "ChatMessage",
    "ModelLineage",
    "ProviderCapabilities",
    "TokenUsage",
    "build_lineage_from_result",
]
