//! # maxbot
//!
//! Библиотека для работы с API мессенджера MAX на языке Rust.
//!
//! Предоставляет клиент для отправки сообщений, получения обновлений,
//! работы с вложениями и inline‑клавиатурами, а также управления глобальными
//! настройками (базовый URL, ограничение частоты запросов).
//!
//! ## Пример использования
//!
//! ```no_run
//! use maxbot::{Attachment, MaxClient, SendMessageParamsBuilder};
//!
//! # async fn example() -> Result<(), Box<dyn std::error::Error>> {
//! let client = MaxClient::new("your_api_token");
//!
//! // Отправка изображения из локального файла
//! let builder = SendMessageParamsBuilder::new()
//!     .text("Вот изображение")
//!     .chat_id(123456789)
//!     .attachment(Attachment::image_local("cat.jpg"));
//!
//! let message_ids = client.send_message_builder(builder).await?;
//! println!("Сообщение отправлено, ID: {:?}", message_ids);
//! # Ok(())
//! # }
//! ```

mod api;
mod attachments;
mod client;
mod config;
mod dispatcher;
mod error;
mod rate_limiter;
mod simple;
mod types;
mod utils;

// Сквозной экспорт часто используемых типов и функций.
pub use api::{
    GetMessagesParams,
    EditMessageParams,
    GetUpdatesParams,
    SendMessageParams,
    SendMessageParamsBuilder,
};
pub use api::chats::ChatAdminRequest;
pub use api::videos::VideoInfo;
pub use attachments::*;
pub use client::MaxClient;
pub use config::{
    get_global_max_rps,
    set_global_base_url,
    set_global_max_rps,
};
pub use dispatcher::{Context, Dispatcher, Filter};
pub use error::{Error, Result};
pub use simple::MaxClientSimpleExt;
pub use types::*;
pub use utils::split_text;
