import { ComponentCompiler } from './compiler';
import { ComponentRegistry } from './registry';
import { ComponentResolver } from './registry';
import { ComponentManager } from './component-manager';
export * from './types';
export { ComponentCompiler } from './compiler';
export { DEFAULT_PRESETS, DEFAULT_PLUGINS, PRODUCTION_CONFIG, DEVELOPMENT_CONFIG, getBabelConfig, validateBabelPresets, getJSXConfig } from './compiler';
export { ComponentRegistry } from './registry';
export { ComponentResolver, ComponentSpec, ComponentRegistryService } from './registry';
export { ComponentManager } from './component-manager';
export { createErrorBoundary, withErrorBoundary, formatComponentError, createErrorLogger } from './runtime';
export { buildComponentProps, normalizeCallbacks, normalizeStyles, validateComponentProps, mergeProps, createPropsTransformer, wrapCallbacksWithLogging, extractPropPaths } from './runtime';
export { ComponentHierarchyRegistrar, registerComponentHierarchy, validateComponentSpec, flattenComponentHierarchy, countComponentsInHierarchy } from './runtime';
export { ReactRootManager, reactRootManager } from './runtime';
export { SetupStyles, createDefaultComponentStyles } from './utilities/component-styles';
export { StandardLibraryManager, createStandardLibraries } from './utilities/standard-libraries';
export { LibraryLoader } from './utilities/library-loader';
export { getCoreRuntimeLibraries, isCoreRuntimeLibrary } from './utilities/core-libraries';
export { LibraryRegistry } from './utilities/library-registry';
export { ComponentErrorAnalyzer } from './utilities/component-error-analyzer';
export { ResourceManager, resourceManager } from './utilities/resource-manager';
export { CacheManager } from './utilities/cache-manager';
export { unwrapLibraryComponent, unwrapLibraryComponents, unwrapAllLibraryComponents, unwrapComponent, unwrapComponents, unwrapAllComponents } from './utilities/component-unwrapper';
export const VERSION = '2.69.1';
export const DEFAULT_CONFIGS = {
    compiler: {
        babel: {
            presets: ['react'],
            plugins: []
        },
        minify: false,
        sourceMaps: false,
        cache: true,
        maxCacheSize: 100
    },
    registry: {
        maxComponents: 1000,
        cleanupInterval: 60000,
        useLRU: true,
        enableNamespaces: true
    }
};
export function createReactRuntime(babelInstance, config, runtimeContext, debug = false) {
    const compilerConfig = {
        ...config?.compiler,
        debug: config?.compiler?.debug ?? debug
    };
    const registryConfig = {
        ...config?.registry,
        debug: config?.registry?.debug ?? debug
    };
    const managerConfig = {
        ...config?.manager,
        debug: config?.manager?.debug ?? debug
    };
    const compiler = new ComponentCompiler(compilerConfig);
    compiler.setBabelInstance(babelInstance);
    const registry = new ComponentRegistry(registryConfig);
    const resolver = new ComponentResolver(registry, compiler, runtimeContext);
    const manager = new ComponentManager(compiler, registry, runtimeContext || { React: null, ReactDOM: null }, managerConfig);
    return {
        compiler,
        registry,
        resolver,
        manager,
        version: VERSION,
        debug
    };
}
//# sourceMappingURL=index.js.map