#![warn(missing_docs)]
pub mod adapter;
pub mod base;
pub mod conversation_chain;
pub mod conversation_retrieval;
pub mod document_chains;
pub mod llm_chain;
pub mod retrieval_qa;
pub mod router_chain;
pub mod sequential_chain;
pub use adapter::ChainRunnable;
pub use base::{BaseChain, ChainError, ChainResult, ChainStream, StreamToken};
pub use conversation_chain::{ConversationChain, ConversationChainBuilder};
pub use conversation_retrieval::ConversationRetrievalChain;
pub use document_chains::{
MapReduceDocumentsChain, MapRerankDocumentsChain, RefineDocumentsChain, StuffDocumentsChain,
};
pub use llm_chain::{LLMChain, LLMChainBuilder};
pub use retrieval_qa::RetrievalQA;
pub use router_chain::{LLMRouterChain, RouteDestination, RouterChain};
pub use sequential_chain::SequentialChain;
use lc_core::BaseChatModel;
use lc_providers::ProviderError;
use std::sync::Arc;
pub(crate) type BoxedChatModel = Arc<dyn BaseChatModel<Error = ProviderError> + Send + Sync>;