"""LLM providers for structured text generation.

Includes mock implementations for testing and production implementations.
"""

from core.interfaces import LLM
from .mock_llm import MockLLM

# Model constants (safe to import - no openai dependency)
GPT_4O_MINI = "gpt-4o-mini"
GPT_4O = "gpt-4o"

def get_openai_llm():
    """Lazy import OpenAILLM to avoid hard openai dependency."""
    from .openai_llm import OpenAILLM, CachedOpenAILLM
    return OpenAILLM, CachedOpenAILLM

__all__ = [
    "LLM",
    # Mock implementations
    "MockLLM",
    # Lazy loader for OpenAI
    "get_openai_llm",
    # Model constants
    "GPT_4O_MINI",
    "GPT_4O",
]