1pub mod auth;
2pub mod config;
3pub mod token_cache;
4pub mod errors;
32pub mod logging;
33pub mod utils;
34
35pub mod calendar_api;
37pub mod gmail_api;
38pub mod people_api;
39
40pub mod cli;
42pub mod oauth;
43pub mod prompts;
44pub mod server;
45
46pub use crate::errors::{
50 error_codes, CalendarApiError, CalendarResult, ConfigError, GmailApiError, GmailResult,
51 PeopleApiError, PeopleResult,
52};
53
54pub use crate::config::{get_token_expiry_seconds, Config, GMAIL_API_BASE_URL, OAUTH_TOKEN_URL};
56
57pub use crate::logging::setup_logging;
59
60pub use crate::auth::TokenManager;
62pub use crate::token_cache::{TokenCache, TokenCacheConfig, CachedToken};
63
64pub use crate::gmail_api::{DraftEmail, EmailMessage, GmailService};
66
67pub use crate::people_api::{
69 Contact, ContactList, EmailAddress, Organization, PeopleClient, PersonName, PhoneNumber, Photo,
70};
71
72pub use crate::calendar_api::{
74 Attendee, CalendarClient, CalendarEvent, CalendarInfo, CalendarList, ConferenceData,
75 ConferenceSolution, EntryPoint, EventOrganizer,
76};
77
78pub use crate::prompts::*;
80pub use crate::utils::{
81 decode_base64, encode_base64_url_safe, error_codes as utils_error_codes, map_gmail_error,
82 parse_max_results, to_mcp_error,
83};
84
85pub use crate::server::GmailServer;