"""
ReviewIQ Pipeline - LLM-powered review classification and analysis.

This package provides a complete pipeline for processing customer reviews:
- Stage 1: Normalization (text cleaning, language detection, deduplication)
- Stage 2: LLM Classification (span extraction with URT codes)
- Stage 3: Issue Routing (route negative spans to issues)
- Stage 4: Fact Aggregation (pre-aggregate metrics for dashboards)

Implements the BasePipeline interface from pipeline-core for the extensible
multi-pipeline system with dynamic dashboards.
"""

from reviewiq_pipeline.config import Config
from reviewiq_pipeline.contracts import (
    ClassifiedReview,
    ExtractedSpan,
    FactRecord,
    NormalizedReview,
    RawReview,
    RoutedSpan,
    ScraperOutput,
    Stage1Input,
    Stage1Output,
    Stage2Input,
    Stage2Output,
    Stage3Input,
    Stage3Output,
    Stage4Input,
    Stage4Output,
    ValidationError,
    ValidationResult,
)
from reviewiq_pipeline.pipeline import Pipeline, PipelineResult, ReviewIQPipeline

__version__ = "0.1.0"
__all__ = [
    # Main API
    "Pipeline",
    "ReviewIQPipeline",
    "PipelineResult",
    "Config",
    # Contracts
    "ScraperOutput",
    "RawReview",
    "Stage1Input",
    "Stage1Output",
    "NormalizedReview",
    "Stage2Input",
    "Stage2Output",
    "ClassifiedReview",
    "ExtractedSpan",
    "Stage3Input",
    "Stage3Output",
    "RoutedSpan",
    "Stage4Input",
    "Stage4Output",
    "FactRecord",
    "ValidationResult",
    "ValidationError",
]
