//! League Client API (LQP) module.
//!
//! This module handles communication with the League of Legends client
//! via WebSocket and REST API for game event detection and capture.

mod auth;
mod client;
mod endpoints;
mod events;
mod state;
mod tls;
mod websocket;

pub use auth::{LockfileCredentials, LockfileWatcher};
pub use client::LqpClient;
pub use endpoints::{
    ALL_RUNE_PAGES, CHAMPION_SELECT, CHAMPION_SELECT_LOCAL_PLAYER, CHAMPION_SUMMARY,
    GAMEFLOW_PHASE, GAME_STATS, LIVE_CLIENT_DATA, LIVE_CLIENT_DATA_ACTIVE_PLAYER,
    LIVE_CLIENT_DATA_BASE_URL, LIVE_CLIENT_DATA_EVENTS, LIVE_CLIENT_DATA_PLAYER_LIST,
    MATCH_HISTORY, RUNE_PAGES, SESSION, SUBSCRIBE_ENDPOINTS, SUMMONER,
};
pub use events::{
    describe_event, GameflowSession, ItemBuild, ItemInfo, PlayerChampionSelection,
    PlayerGameMetadata, PlayerIdentity, QueueInfo, RunePage, RuneSlot, SummonerSpells, TeamMember,
    EVENT_TYPE_CHAMPION_PICK, EVENT_TYPE_CHAMP_SELECT_START, EVENT_TYPE_DEATH, EVENT_TYPE_GAME_END,
    EVENT_TYPE_GAME_START, EVENT_TYPE_KILL, EVENT_TYPE_LP_CHANGE, EVENT_TYPE_MATCH_FOUND,
    EVENT_TYPE_OBJECTIVE, EVENT_TYPE_PHASE_CHANGE, EVENT_TYPE_STATS_UPDATE, EVENT_TYPE_UNKNOWN,
};
pub use state::{ClientState, GameflowPhase};
pub use websocket::{
    classify_event_from_uri, parse_live_client_event, parse_websocket_message, ParsedEvent,
};
