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';