Main coves client
1/// Session management layer for atproto OAuth.
2///
3/// This module provides session storage, retrieval, and lifecycle management
4/// for OAuth sessions. It includes:
5///
6/// - [StateStore] - Stores ephemeral OAuth state during authorization
7/// - [SessionStore] - Stores persistent session data
8/// - [Session] - Represents an authenticated session with tokens
9/// - [TokenSet] - Contains OAuth tokens and metadata
10/// - [OAuthSession] - High-level API for authenticated requests
11/// - [SessionGetter] - Manages session caching and token refresh
12///
13/// Example:
14/// ```dart
15/// // Create a session store implementation
16/// final sessionStore = MySessionStore();
17///
18/// // Create a session getter
19/// final sessionGetter = SessionGetter(
20/// sessionStore: sessionStore,
21/// serverFactory: serverFactory,
22/// runtime: runtime,
23/// );
24///
25/// // Get a session (automatically refreshes if needed)
26/// final session = await sessionGetter.getSession('did:plc:abc123');
27///
28/// // Create an OAuthSession for making requests
29/// final oauthSession = OAuthSession(
30/// server: server,
31/// sub: 'did:plc:abc123',
32/// sessionGetter: sessionGetter,
33/// );
34///
35/// // Make authenticated requests
36/// final response = await oauthSession.fetchHandler('/api/posts');
37/// ```
38library;
39
40export 'state_store.dart';
41export 'oauth_session.dart';
42export 'session_getter.dart';