/**
* @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';