/**
* @file Virtual Modular DOM System
* @module vdom
* @description Complete Virtual Modular DOM system for Harbor React Framework.
* Provides module boundary management, memory-efficient VDOM pooling,
* security sandboxing, and cross-module communication.
*
* @author Agent 5 - PhD Virtual DOM Expert
* @version 1.0.0
*
* @example
* ```tsx
* import {
* ModuleProvider,
* ModuleBoundary,
* ModuleSlot,
* useModule,
* useModuleState,
* } from '@/lib/vdom';
*
* function App() {
* return (
*
*
*
*
*
* );
* }
*
* function Dashboard() {
* const { moduleId, emit } = useModule();
* const { state, setState } = useModuleState('counter', { initialValue: 0 });
*
* return (
*
* Count: {state}
*
*
* );
* }
* ```
*/
export type { ModuleId, VNodeId, SecurityNonce, ModuleEventName, DeepReadonly, Optional, VNodeProps, VirtualNode, VNodeCreateOptions, ModuleLifecycleHooks, HydrationConfig, HydrationData, ModuleDependency, ModuleSlotDefinition, ModuleBoundaryConfig, ModuleBoundaryState, VirtualModule, CSPDirectives, ModuleSecurityConfig, SecurityContext, SecurityViolation, ModuleEventMessage, EventSubscriptionOptions, EventHandler, EventSubscription, VDOMPoolConfig, VDOMPoolStats, ModuleRegistryEntry, ModuleQueryOptions, ModuleLoadOptions, ModuleLoadingState, ModulePerformanceMetrics, PerformanceBudget, ModuleContextValue, ModuleAction, ModuleProviderConfig, UseModuleReturn, UseModuleStateReturn, UseModuleBoundaryReturn, UseModuleHydrationReturn, UseSecureModuleReturn, } from './types';
export { VNodeType, ModuleLifecycleState, ModuleLifecycleEvent, HydrationState, HydrationPriority, HydrationTrigger, EventPriority, LoadingPriority, createModuleId, createVNodeId, createSecurityNonce, isModuleId, isVNodeId, DEFAULT_HYDRATION_CONFIG, DEFAULT_POOL_CONFIG, DEFAULT_SECURITY_CONFIG, } from './types';
export { VirtualModuleManager, createVirtualModule, createValidatedModuleId, createMinimalConfig, } from './virtual-module';
export { VDOMPool, getDefaultPool, setDefaultPool, resetDefaultPool, createVDOMPool, acquireNode, releaseNode, } from './vdom-pool';
export { ModuleRegistry, getDefaultRegistry, setDefaultRegistry, resetDefaultRegistry, registerModule, getModuleComponent, createModuleRegistration, } from './module-registry';
export type { HMRUpdateHandler, ModuleRegistrationOptions, DependencyResolutionResult, } from './module-registry';
export { ModuleLoader, getDefaultLoader, setDefaultLoader, resetDefaultLoader, loadModule, prefetchModule, createLazyLoader, } from './module-loader';
export type { PrefetchHint, LoadingMetrics } from './module-loader';
export { SecuritySandbox, ContentSanitizer, CSPManager, EventValidator, createSecuritySandbox, createStrictSecurityConfig, createRelaxedSecurityConfig, } from './security-sandbox';
export { ModuleEventBus, getDefaultEventBus, setDefaultEventBus, resetDefaultEventBus, subscribe, publish, } from './event-bus';
export type { EventBusStats, EventBusConfig } from './event-bus';
export { ModuleProvider } from './ModuleProvider';
export { useModuleSystem, useModuleHierarchy, ModuleHierarchyProvider, useVDOMPool, useModuleRegistry, useModuleLoader, useEventBus, useDevMode, } from './ModuleProviderExports';
export type { ModuleSystemContextValue, ModuleProviderProps } from './ModuleProviderContext';
export { ModuleBoundary, useModuleContext, useOptionalModuleContext } from './ModuleBoundary';
export type { ModuleBoundaryProps } from './ModuleBoundary';
export { ModuleSlot, DynamicModuleSlot, LazyModuleSlot, ModuleOutlet, ConditionalModuleSlot, ModulePortalSlot, } from './ModuleSlot';
export { useFillSlot, useSlotContent, useIsSlotFilled } from './ModuleSlotExports';
export type { ModuleSlotProps, DynamicModuleSlotProps, ModuleOutletProps, LazyModuleSlotProps, ConditionalModuleSlotProps, ModulePortalSlotProps, } from './ModuleSlot';
export { useModule, useModuleId, useModuleConfig, useIsModuleMounted, useModuleMetrics, useModuleEmit, useModuleSubscribe, useModuleState, useSimpleModuleState, useBooleanModuleState, useArrayModuleState, useRecordModuleState, useModuleBoundary, useBoundaryDimensions, useBoundaryVisibility, useModuleDepth, useModulePath, useIsNestedModule, useParentModuleId, useSlot, useSlots, useModuleHydration, useIsHydrated, useHydrateTrigger, useHydrationProgress, useOnHydrated, useOnHydrationError, useHydrationGuard, useHydrationTiming, useSecureModule, useSecurityNonce, useIsSecure, useSanitizer, useContentValidator, useSecurityViolations, useSafeHtml, useSecureUrl, useSecureStyleProps, useSecureScriptProps, useIsEventAllowed, useSecureMessaging, } from './hooks';
export type { UseModuleStateOptions } from './hooks';
/**
* Initialize the Virtual Modular DOM system with default configuration.
* Call this once at application startup.
*
* @param config - Optional provider configuration
*
* @example
* ```tsx
* import { initializeVDOM } from '@/lib/vdom';
*
* // Initialize with defaults
* initializeVDOM();
*
* // Or with custom configuration
* initializeVDOM({
* devMode: true,
* enableTelemetry: true,
* });
* ```
*/
export declare function initializeVDOM(config?: Partial): void;
/**
* Clean up the Virtual Modular DOM system.
* Call this when shutting down the application.
*/
export declare function cleanupVDOM(): void;
export { ModuleCircuitBreaker, ModuleCircuitOpenError, getModuleCircuitBreaker, resetModuleCircuitBreaker, setModuleCircuitBreaker, withModuleCircuitBreaker, withModuleCircuitBreakerFallback, canLoadModules, getModuleCircuitState, type ModuleCircuitBreakerConfig, type ModuleLoadingMetrics as ModuleCircuitBreakerMetrics, } from './module-circuit-breaker';