"""
HallucinationGuard-Env - Train and evaluate LLMs to avoid hallucinations.

Simple 5-line usage:
    from hallucination_guard_env import HallucinationEnv

    env = HallucinationEnv()
    obs = env.reset()
    action = env.step(answer=obs["question"], confidence=0.8)
    print(f"Reward: {action.reward}, Hallucinated: {action.is_hallucination}")
"""

from .environment import HallucinationEnvironment
from .models import HallucinationAction, HallucinationObservation, HallucinationState
from .grader import (
    calculate_reward,
    check_factual_accuracy_advanced as check_factual_accuracy,
    check_quote_in_context_advanced as check_quote_in_context,
    detect_hallucination_advanced as detect_hallucination,
)

# Convenient alias
HallucinationEnv = HallucinationEnvironment

__version__ = "4.1.0"
__all__ = [
    "HallucinationEnv",
    "HallucinationEnvironment",
    "HallucinationAction",
    "HallucinationObservation",
    "HallucinationState",
    "calculate_reward",
    "check_factual_accuracy",
    "check_quote_in_context",
    "detect_hallucination",
]
