/** * @file Feature Module Index * @description Central export point for feature factory functionality * * This module provides a complete plug-and-play feature system including: * - Feature registration and registry management * - Auto-discovery via import.meta.glob * - Feature flag integration * - Dependency injection between features * - Code splitting and preloading * - Shared reusable components * - Testing utilities */ export { type FeatureMetadata, type FeatureAccess, type FeatureTab, type FeatureConfig, type FeatureViewModel, type FeaturePageProps, type FeatureViewProps, type CreateFeatureOptions, type FeatureRegistryEntry, type FeatureRegistry, hasFeatureAccess, } from './types'; export { createFeaturePage, createLazyFeaturePage } from './createFeaturePage'; export { registerFeature, unregisterFeature, getFeature, getAllFeatures, getFeatureIds, isFeatureRegistered, getFeatureRoutes, getFeatureNavItems, initializeFeatures, clearFeatureRegistry, getFeatureCount, } from './registry'; export { type FeatureModule, type FeatureDiscoveryResult, autoRegisterFeatures, registerFeaturesSync, getFeatureRegistrySnapshot, getFeaturesByCategory, initializeFeatureRegistry, isFeatureRegistryInitialized, resetFeatureRegistry, waitForFeatureRegistry, } from './auto-registry'; export { type FeatureVisibility, type TabVisibility, type FeatureFlagManifestEntry, extractFeatureFlags, generateFeatureFlagManifest, generateFeatureFlagKeys, useFeatureVisibility, useAccessibleFeatures, useVisibleFeatures, useIsFeatureAccessible, useIsTabAccessible, useAccessibleTabs, useFeatureAccessChecker, useDisabledFeatures, } from './feature-flag-integration'; export { type ServiceContract, type ServiceRegistrationOptions, FeatureDIContainer, getContainer, registerService, createServiceContract, FeatureDIProvider, useDIContainer, useService, useTryService, useHasService, useServicesByTag, type AnalyticsService, AnalyticsContract, type NotificationService, NotificationContract, type NavigationService, NavigationContract, type StorageService, StorageContract, type FeatureEventBus, FeatureEventBusContract, SimpleFeatureEventBus, useFeatureEventBus, useFeatureEvent, } from './featureDI'; export { type PreloadPriority, type PreloadTrigger, type PreloadConfig, type FeatureChunkInfo, type PreloadableLazyComponent, type FeatureRoute, createLazyFeatureComponent, createResilientLazyComponent, FeatureChunkManager, featureChunkManager, useFeaturePreload, useFeatureChunkStatus, usePreloadOnVisible, withFeatureSuspense, generateSplitRoutes, initializeFeaturePreloading, } from './codeSplitting'; export { type ListItemBase, type GenericListProps, type GenericDetailProps, type StatsCardProps, type ActionConfig, type ActionToolbarProps, type FilterPanelProps, type PaginationProps, type SearchInputProps, GenericList, GenericDetail, StatsCard, ActionToolbar, FilterPanel, Pagination, SearchInput, } from './sharedComponents'; export { createTestQueryClient, FeatureTestWrapper, type FeatureTestWrapperProps, createFeatureRenderer, createMockFeature, createMockFeatures, type MockFeatureOptions, createMockEntity, createMockEntities, type MockEntityBase, createMockApiResponse, createMockService, createMockQueryData, createMockMutationResult, type MockApiResponse, createFeatureTestFixture, seedQueryCache, assertQueryCache, clearQueryCache, waitForQueries, type FeatureTestFixture, createFeatureSnapshot, compareSnapshots, waitFor, delay, generateId, generateDate, testData, } from './testing';