/**
 * NeuroLink Authentication Module
 *
 * Exports the full multi-provider authentication system including:
 * - Anthropic OAuth 2.0 flow (PKCE, token storage, callback server)
 * - Multi-provider auth (Auth0, Clerk, Firebase, Supabase, Cognito,
 *   Keycloak, Better Auth, WorkOS, JWT, OAuth2, Custom)
 * - AuthProviderFactory / AuthProviderRegistry for lazy-loaded provider creation
 * - Auth middleware (token extraction, RBAC, rate limiting)
 * - Session management (memory, Redis)
 * - Auth context (AsyncLocalStorage-based request scoping)
 */
export { ANTHROPIC_OAUTH_BASE_URL, DEFAULT_SCOPES, DEFAULT_REDIRECT_URI, DEFAULT_CALLBACK_PORT, } from "./anthropicOAuth.js";
export { AnthropicOAuth } from "./anthropicOAuth.js";
export { OAuthError, OAuthConfigurationError, OAuthTokenExchangeError, OAuthTokenRefreshError, OAuthTokenValidationError, OAuthTokenRevocationError, OAuthCallbackServerError, } from "../types/index.js";
export { createAnthropicOAuth, createAnthropicOAuthConfig, hasAnthropicOAuthCredentials, startCallbackServer, stopCallbackServer, performOAuthFlow, } from "./anthropicOAuth.js";
export { TokenStore, tokenStore, defaultTokenStore } from "./tokenStore.js";
export { TokenStoreError } from "../types/index.js";
export { AccountPool } from "./accountPool.js";
export { AuthProviderFactory, createAuthProvider, } from "./AuthProviderFactory.js";
export { AuthProviderRegistry } from "./AuthProviderRegistry.js";
export { AuthError, AuthErrorCodes } from "./errors.js";
export { AuthProviderError, BaseAuthProvider, InMemorySessionStorage, } from "./providers/BaseAuthProvider.js";
export { AuthMiddlewareError, AuthMiddlewareErrorCodes, createAuthMiddleware, createExpressAuthMiddleware, createProtectedMiddleware, createRBACMiddleware, createRequestContext, extractToken, } from "./middleware/AuthMiddleware.js";
export { createAuthenticatedRateLimitMiddleware, createRateLimitByUserMiddleware, createRateLimitStorage, MemoryRateLimitStorage, RedisRateLimitStorage, UserRateLimiter, } from "./middleware/rateLimitByUser.js";
export { createSessionStorage, MemorySessionStorage, RedisSessionStorage, SessionManager, } from "./sessionManager.js";
export { AuthContextHolder, createAuthenticatedContext, getAuthContext, getCurrentSession, getCurrentUser, globalAuthContext, hasAllPermissions, hasAnyRole, hasPermission, hasRole, isAuthenticated, requireAuth, requirePermission, requireRole, requireUser, runWithAuthContext, } from "./authContext.js";
export { RequestContext, NEUROLINK_RESOURCE_ID_KEY, NEUROLINK_THREAD_ID_KEY, } from "./RequestContext.js";
export { createAuthValidatorFromProvider } from "./serverBridge.js";
export { Auth0Provider } from "./providers/auth0.js";
export { BetterAuthProvider } from "./providers/betterAuth.js";
export { ClerkProvider } from "./providers/clerk.js";
export { CognitoProvider } from "./providers/CognitoProvider.js";
export { CustomAuthProvider } from "./providers/custom.js";
export { FirebaseAuthProvider } from "./providers/firebase.js";
export { JWTProvider } from "./providers/jwt.js";
export { KeycloakProvider } from "./providers/KeycloakProvider.js";
export { OAuth2Provider } from "./providers/oauth2.js";
export { SupabaseAuthProvider } from "./providers/supabase.js";
export { WorkOSProvider } from "./providers/workos.js";
