/** * @fileoverview Configuration management module exports. * * This module provides comprehensive configuration management: * - Multi-source configuration loading * - Schema-based validation * - Environment-specific overrides * - Runtime configuration updates * - React integration with hooks and providers * * @module config * * @example * ```tsx * import { * ConfigProvider, * useConfig, * useConfigValue, * createSchema, * } from '@/lib/config'; * * // Define configuration schema * const schema = createSchema() * .string('apiUrl', { required: true }) * .number('timeout', { default: 10000, min: 1000 }) * .boolean('debug', { default: false }) * .build(); * * // Provide configuration * function App() { * return ( * * * * ); * } * * // Use configuration * function MyComponent() { * const apiUrl = useConfigValue('apiUrl'); * const timeout = useConfigValue('timeout', 10000); * return
API: {apiUrl}, Timeout: {timeout}
; * } * ``` */ export type { ConfigPrimitive, ConfigValue, ConfigRecord, DeepPartial, ValidationRuleType, ValidationRule, ConfigFieldSchema, ConfigSchema, ValidationError, ValidationResult, ConfigSourceType, ConfigSource, Environment, EnvironmentConfig, ConfigChange, ConfigEventType, ConfigEvent, ConfigEventListener, ConfigLoaderOptions, RemoteConfigOptions, MergeStrategy, MergeOptions, AppConfig, ConfigContextValue, } from './types'; export { ConfigValidator, SchemaBuilder, createSchema, validateConfig, CommonSchemas, } from './config-validator'; export type { CustomValidator, ValidatorOptions } from './config-validator'; export { ConfigMerger, deepMerge, shallowMerge, replaceMerge, getValueAtPath, setValueAtPath, deleteValueAtPath, hasPath, getAllPaths, diffConfigs, flattenConfig, unflattenConfig, } from './config-merger'; export type { ConfigDiff } from './config-merger'; export { ConfigLoader, createConfigLoader, loadConfig } from './config-loader'; export { detectEnvironment, isDevelopment, isProduction, isStaging, isTest, isBrowser, isServer, EnvironmentConfigManager, getEnvironmentDefaults, environmentDefaults, getEnvVar, requireEnvVar, getEnvVarAsNumber, getEnvVarAsBoolean, getEnvVarAsJson, getEnvVarAsArray, getEnvironmentConfig, resetEnvironmentConfig, } from './environment-config'; export { RuntimeConfig, createRuntimeConfig, getRuntimeConfig, initRuntimeConfig, resetRuntimeConfig, } from './runtime-config'; export type { RuntimeConfigOptions } from './runtime-config'; export { ConfigProvider, ConfigContext, useConfigContext, useOptionalConfigContext, withConfig, } from './ConfigProvider'; export type { ConfigProviderProps } from './ConfigProvider'; export { useConfig, useConfigValue, useHasConfig, useConfigLoading, useConfigError, useSetConfig, useResetConfig, useReloadConfig, useConfigState, useConfigChange, useWatchConfig, useFeatureConfig, useFeatureSettings, useEnvironment, useIsDevelopment, useIsProduction, useConfigSelector, useConfigDerived, createTypedConfigHook, createTypedValueHook, useConfigPaths, useConfigStats, } from './useConfig';