/** * @file Route Guards Module Exports * @description Unified exports for the route guards system including authentication, * authorization, feature flags, and composite guards. * * @module @/lib/routing/guards * * This module provides enterprise-grade route protection patterns inspired by: * - Angular Route Guards (canActivate, canDeactivate) * - Next.js Middleware * - Vue Router Navigation Guards * * @example * ```typescript * import { * createAuthGuard, * createRoleGuard, * createPermissionGuard, * createFeatureGuard, * allGuards, * GuardResolver, * } from '@/lib/routing/guards'; * * // Create individual guards * const authGuard = createAuthGuard({ loginPath: '/login' }); * const adminGuard = createRoleGuard({ requiredRoles: ['admin'] }); * * // Combine guards * const adminAreaGuard = allGuards([authGuard, adminGuard]); * * // Use resolver for navigation * const resolver = new GuardResolver(); * resolver.register(adminAreaGuard, { routes: ['/admin/**'] }); * ``` */ export { BaseRouteGuard, GuardResult, createGuard, createGuardContext, mergeGuardResults, allResultsAllow, getFirstRedirect, getDenialReasons, isGuardResult, isRouteGuard, isGuardContext, type GuardTiming, type GuardResultType, type GuardResultObject, type RedirectOptions, type GuardContext, type GuardUser, type GuardFunction, type GuardConfig, type RouteGuard, type GuardExecutionResult, } from './route-guard'; export { AuthGuard, createAuthGuard, createSimpleAuthGuard, createTokenAuthGuard, buildReturnUrl, parseReturnUrl, pathRequiresAuth, isAuthGuard, isAuthState, DEFAULT_AUTH_CONFIG, type AuthGuardConfig, type AuthState, } from './auth-guard'; export { RoleGuard, createRoleGuard, requireRole, requireAnyRole, requireAllRoles, excludeRoles, createAdminGuard, hasRole, hasAnyRole, hasAllRoles, getMissingRoles, isRoleGuard, isRoleCheckResult, DEFAULT_ROLE_CONFIG, type RoleMatchStrategy, type RoleGuardConfig, type RoleCheckResult, } from './role-guard'; export { PermissionGuard, createPermissionGuard, requirePermission, requireAnyPermission, requireAllPermissions, requireResourcePermission, parsePermission, buildPermission, hasPermission, hasAnyPermission, hasAllPermissions, getMissingPermissions, isPermissionGuard, isPermissionCheckResult, isStructuredPermission, DEFAULT_PERMISSION_CONFIG, PermissionActions, type PermissionMatchStrategy, type Permission, type StructuredPermission, type PermissionGuardConfig, type PermissionCheckResult, } from './permission-guard'; export { FeatureGuard, createFeatureGuard, requireFeature, requireAnyFeature, requireAllFeatures, deprecatedFeature, betaFeature, createStaticFlagProvider, createLocalStorageFlagProvider, createUrlFlagProvider, combineFlagProviders, isFeatureGuard, isFeatureFlagCheckResult, DEFAULT_FEATURE_CONFIG, type FeatureFlagMatchStrategy, type FeatureFlagState, type FeatureFlagProvider, type FeatureGuardConfig, type FeatureFlagCheckResult, } from './feature-guard'; export { CompositeGuard, createCompositeGuard, allGuards, anyGuard, sequentialGuards, parallelGuards, combineGuards, isCompositeGuard, isCompositeExecutionResult, DEFAULT_COMPOSITE_CONFIG, type CompositeStrategy, type CompositeGuardConfig, type CompositeExecutionResult, } from './composite-guard'; export { GuardResolver, createGuardResolver, getGuardResolver, initGuardResolver, resetGuardResolver, isGuardResolutionResult, isNavigationIntent, DEFAULT_RESOLVER_CONFIG, type GuardResolverConfig, type GuardRegistrationOptions, type GuardResolutionResult, type RegisteredGuard, type NavigationIntent, type GuardResolverState, } from './guard-resolver';