1#![recursion_limit = "256"]
17#![doc = include_str!("../README.md")]
18#![warn(missing_debug_implementations, missing_docs)]
19#![cfg_attr(target_family = "wasm", allow(clippy::arc_with_non_send_sync))]
20#![cfg_attr(docsrs, feature(doc_cfg))]
21
22pub use async_trait::async_trait;
23pub use bytes;
24pub use matrix_sdk_base::{
25 CallIntentConsensus, ComposerDraft, ComposerDraftType, DraftAttachment, DraftAttachmentContent,
26 DraftThumbnail, EncryptionState, PredecessorRoom, QueueWedgeError, Room as BaseRoom,
27 RoomCreateWithCreatorEventContent, RoomDisplayName, RoomHero, RoomInfo,
28 RoomMember as BaseRoomMember, RoomMemberships, RoomRecencyStamp, RoomState, SessionMeta,
29 StateChanges, StateStore, StoreError, SuccessorRoom, ThreadingSupport, deserialized_responses,
30 store::{self, DynStateStore, MemoryStore, StateStoreExt},
31};
32pub use matrix_sdk_common::*;
33pub use reqwest;
34
35mod account;
36pub mod attachment;
37pub mod authentication;
38mod client;
39pub mod config;
40mod deduplicating_handler;
41#[cfg(feature = "e2e-encryption")]
42pub mod encryption;
43mod error;
44pub mod event_cache;
45pub mod event_handler;
46mod http_client;
47pub mod latest_events;
48pub mod media;
49pub mod notification_settings;
50pub mod paginators;
51pub mod pusher;
52pub mod room;
53pub mod room_directory_search;
54pub mod room_preview;
55pub mod send_queue;
56pub mod utils;
57pub mod futures {
58 pub use super::client::futures::SendRequest;
61}
62pub mod sliding_sync;
63pub mod sync;
64#[cfg(feature = "experimental-widgets")]
65pub mod widget;
66
67#[cfg(feature = "experimental-search")]
68pub mod message_search;
69
70pub use account::Account;
71pub use authentication::{AuthApi, AuthSession, SessionTokens};
72pub use client::homeserver_capabilities::HomeserverCapabilities;
73#[cfg(feature = "experimental-search")]
74pub mod search_index;
75pub use client::{
76 Client, ClientBuildError, ClientBuilder, LoopCtrl, ServerVendorInfo, SessionChange, StoreSizes,
77 sanitize_server_name,
78};
79pub use error::{
80 BeaconError, Error, HttpError, HttpResult, NotificationSettingsError, RefreshTokenError,
81 Result, RumaApiError,
82};
83pub use http_client::TransmissionProgress;
84#[cfg(all(feature = "e2e-encryption", feature = "sqlite"))]
85pub use matrix_sdk_sqlite::SqliteCryptoStore;
86#[cfg(feature = "sqlite")]
87pub use matrix_sdk_sqlite::{
88 STATE_STORE_DATABASE_NAME, SqliteEventCacheStore, SqliteMediaStore, SqliteStateStore,
89 SqliteStoreConfig,
90};
91pub use media::Media;
92pub use pusher::Pusher;
93pub use room::Room;
94pub use ruma::{IdParseError, OwnedServerName, ServerName};
95pub use sliding_sync::{
96 SlidingSync, SlidingSyncBuilder, SlidingSyncList, SlidingSyncListBuilder,
97 SlidingSyncListLoadingState, SlidingSyncMode, UpdateSummary,
98};
99
100#[cfg(feature = "uniffi")]
101uniffi::setup_scaffolding!();
102
103pub mod live_locations_observer;
104#[cfg(any(test, feature = "testing"))]
105pub mod test_utils;
106
107#[cfg(test)]
108matrix_sdk_test_utils::init_tracing_for_tests!();