"""
Retrieval module for AI Service.
[AC-AISVC-16] Provides retriever implementations with plugin architecture.
RAG Optimization: Two-stage retrieval, RRF hybrid ranking, metadata filtering.
[AC-AISVC-RES-01~15] Strategy routing and mode routing for retrieval pipeline.
"""

from app.services.retrieval.base import (
    BaseRetriever,
    RetrievalContext,
    RetrievalHit,
    RetrievalResult,
)
from app.services.retrieval.indexer import (
    IndexingProgress,
    IndexingResult,
    KnowledgeIndexer,
    get_knowledge_indexer,
)
from app.services.retrieval.metadata import (
    ChunkMetadata,
    ChunkMetadataModel,
    KnowledgeChunk,
    MetadataFilter,
    RetrievalStrategy,
    RetrieveRequest,
    RetrieveResult,
)
from app.services.retrieval.optimized_retriever import (
    OptimizedRetriever,
    RRFCombiner,
    TwoStageResult,
    get_optimized_retriever,
)
from app.services.retrieval.vector_retriever import VectorRetriever, get_vector_retriever
from app.services.retrieval.routing_config import (
    RagRuntimeMode,
    RoutingConfig,
    StrategyContext,
    StrategyType,
    StrategyResult,
)
from app.services.retrieval.strategy_router import (
    RollbackRecord,
    StrategyRouter,
    get_strategy_router,
)
from app.services.retrieval.mode_router import (
    ComplexityAnalyzer,
    ModeRouter,
    ModeRouteResult,
    get_mode_router,
)
from app.services.retrieval.strategy_integration import (
    RetrievalStrategyIntegration,
    RetrievalStrategyResult,
    get_retrieval_strategy_integration,
)

__all__ = [
    "BaseRetriever",
    "RetrievalContext",
    "RetrievalHit",
    "RetrievalResult",
    "VectorRetriever",
    "get_vector_retriever",
    "ChunkMetadata",
    "ChunkMetadataModel",
    "MetadataFilter",
    "KnowledgeChunk",
    "RetrieveRequest",
    "RetrieveResult",
    "RetrievalStrategy",
    "OptimizedRetriever",
    "get_optimized_retriever",
    "TwoStageResult",
    "RRFCombiner",
    "KnowledgeIndexer",
    "get_knowledge_indexer",
    "IndexingProgress",
    "IndexingResult",
    "RagRuntimeMode",
    "RoutingConfig",
    "StrategyContext",
    "StrategyType",
    "StrategyResult",
    "RollbackRecord",
    "StrategyRouter",
    "get_strategy_router",
    "ComplexityAnalyzer",
    "ModeRouter",
    "ModeRouteResult",
    "get_mode_router",
    "RetrievalStrategyIntegration",
    "RetrievalStrategyResult",
    "get_retrieval_strategy_integration",
]
