"""LLM 投资事件抽取模块 (M4)。

公共 API:
    - load_llm_config / make_sync_client / make_async_client
    - extract_event / extract_event_async
    - PromptTemplate / parse_event_json
    - EventExtraction / ExtractedEvent / Sentiment / EVENT_TYPES / LLMCallError
"""

from .client import (
    DEFAULT_TEMPERATURE,
    DEFAULT_TIMEOUT_SEC,
    LLMConfig,
    load_llm_config,
    make_async_client,
    make_sync_client,
)
from .extractor import (
    DEFAULT_MAX_ATTEMPTS,
    DEFAULT_PROMPT_PATH,
    MAX_CONTENT_CHARS,
    PromptTemplate,
    extract_event,
    extract_event_async,
    parse_event_json,
)
from .models import (
    EVENT_TYPES,
    MAX_IMPORTANCE,
    MIN_IMPORTANCE,
    EventExtraction,
    ExtractedEvent,
    LLMCallError,
    Sentiment,
)

__all__ = [
    "DEFAULT_MAX_ATTEMPTS",
    "DEFAULT_PROMPT_PATH",
    "DEFAULT_TEMPERATURE",
    "DEFAULT_TIMEOUT_SEC",
    "EVENT_TYPES",
    "MAX_CONTENT_CHARS",
    "MAX_IMPORTANCE",
    "MIN_IMPORTANCE",
    "EventExtraction",
    "ExtractedEvent",
    "LLMCallError",
    "LLMConfig",
    "PromptTemplate",
    "Sentiment",
    "extract_event",
    "extract_event_async",
    "load_llm_config",
    "make_async_client",
    "make_sync_client",
    "parse_event_json",
]
