// SPDX-License-Identifier: Apache-2.0
// Copyright 2024-2026 Vorion LLC
/**
 * MFA (Multi-Factor Authentication) Module
 *
 * Provides comprehensive MFA functionality including:
 * - TOTP (Time-based One-Time Password) authentication
 * - Backup codes for account recovery
 * - Challenge-based verification flow
 * - Fastify middleware for route protection
 *
 * @packageDocumentation
 * @module security/mfa
 */
// =============================================================================
// Types
// =============================================================================
export { 
// Enums and constants
MfaMethod, MfaStatus, MFA_DEFAULTS, 
// Zod schemas
mfaMethodSchema, mfaStatusSchema, createUserMfaInputSchema, createChallengeInputSchema, mfaEnrollmentResponseSchema, mfaEnrollmentCompleteResponseSchema, mfaStatusResponseSchema, mfaChallengeResponseSchema, mfaVerifyResponseSchema, mfaBackupCodesResponseSchema, mfaEnrollVerifyRequestSchema, mfaChallengeVerifyRequestSchema, mfaServiceConfigSchema, mfaMiddlewareOptionsSchema, } from './types.js';
// =============================================================================
// Store
// =============================================================================
export { MfaStore, getMfaStore, resetMfaStore, createMfaStore, 
// Drizzle schema exports
userMfa, mfaBackupCodes, mfaChallenges, mfaMethodEnum, mfaStatusEnum, } from './mfa-store.js';
// =============================================================================
// Service
// =============================================================================
export { MfaService, getMfaService, resetMfaService, createMfaService, 
// Error classes
MfaError, EnrollmentExpiredError, ChallengeExpiredError, TooManyAttemptsError, } from './mfa-service.js';
// =============================================================================
// Middleware
// =============================================================================
export { requireMfa, mfaContextMiddleware, requireMfaEnabled, } from './mfa-middleware.js';
//# sourceMappingURL=index.js.map