/** * @fileoverview Feature flag system exports. * * This module provides a comprehensive feature flag system including: * - Basic flag evaluation with React integration * - Advanced targeting rules and rollout strategies * - Multiple provider implementations (local, remote, cached, etc.) * - Analytics, exposure tracking, and impact analysis * - Library integration for flag-aware configuration across all modules * - Configurable features with dynamic toggles * - Flag-driven module loading and code splitting * - Domain-specific flags for API, routing, UI, and performance * * @module flags * * @example * ```tsx * // Basic usage * import { * FeatureFlagProvider, * useFeatureFlag, * FlagGate, * } from '@/lib/flags'; * * function App() { * return ( * * * * * * ); * } * * // Advanced usage with providers and analytics * import { * FlagEngine, * createProviderChain, * createAnalyticsSuite, * } from '@/lib/flags'; * * const provider = createProviderChain({ * remote: { endpoint: '/api/flags' }, * local: { flags: defaultFlags }, * cache: { ttl: 60000 }, * }); * * const analytics = createAnalyticsSuite({ * analytics: { endpoint: '/api/analytics' }, * }); * * // Library integration usage * import { * FlagConfigurable, * useFeatureFlaggedModule, * apiFlags, * uiFlags, * } from '@/lib/flags'; * * function Dashboard() { * const { module: Chart } = useFeatureFlaggedModule({ * flagKey: 'new-charts', * enabledModule: () => import('./NewChart'), * fallbackModule: () => import('./OldChart'), * }); * * return ( * * {({ isEnabled }) => } * * ); * } * ``` */ export { FeatureFlagProvider, useFeatureFlagContext } from './FeatureFlagProvider'; export { flagKeys, flagCategories, type FlagKey, type FlagCategory } from './flag-keys'; export { useFeatureFlag, useFeatureFlags, useFeatureFlagsStatus } from './useFeatureFlag'; export { withFeatureFlag, withoutFeatureFlag } from './withFeatureFlag'; export { FlagGate, FlagGateAll, FlagGateAny } from './FlagGate'; export { isDebugModeEnabled, isFlagEnabled, isDevelopmentEnv } from './debug-mode'; export * from './advanced'; export * from './providers'; export type { FlagChangeEvent } from './advanced'; export * from './analytics'; export type { VariantComparison } from './analytics'; export * from './integration'; export type { FlagEvaluationEvent, FlagExposureEvent } from './advanced';