import { default as React } from 'react'; /** * React environment status information. */ export interface ReactEnvironmentStatus { /** Whether React is available */ isReactAvailable: boolean; /** Whether ReactDOM is available */ isReactDOMAvailable: boolean; /** Detected React version */ reactVersion: string | null; /** Whether multiple React instances are detected */ hasMultipleInstances: boolean; /** Whether the React version is compatible */ isVersionCompatible: boolean; /** List of detected issues */ issues: ReactEnvironmentIssue[]; /** Timestamp of the check */ checkedAt: number; } /** * React environment issue details. */ export interface ReactEnvironmentIssue { /** Issue type */ type: 'multiple_instances' | 'version_mismatch' | 'missing_react' | 'missing_react_dom' | 'hooks_error' | 'jsx_runtime_error'; /** Severity level */ severity: 'error' | 'warning' | 'info'; /** Human-readable message */ message: string; /** Suggested resolution */ resolution?: string; } /** * Configuration for React environment checks. */ export interface ReactEnvironmentConfig { /** Minimum supported React version */ minVersion?: string; /** Maximum supported React version */ maxVersion?: string; /** Whether to throw on critical issues */ throwOnCritical?: boolean; /** Whether to log warnings to console */ logWarnings?: boolean; /** Callback when issues are detected */ onIssuesDetected?: (issues: ReactEnvironmentIssue[]) => void; } /** * Parses a semantic version string into components. */ declare function parseVersion(version: string): { major: number; minor: number; patch: number; } | null; /** * Compares two version strings. * Returns -1 if a < b, 0 if a === b, 1 if a > b. */ declare function compareVersions(a: string, b: string): number; /** * Checks if a version is within a supported range. */ declare function isVersionInRange(version: string, min: string, max: string): boolean; /** * Detects the current React version. */ export declare function detectReactVersion(): string | null; /** * Detects if multiple React instances are present. * This is a common cause of blank pages and hook errors. */ export declare function detectMultipleReactInstances(): boolean; /** * Checks if React hooks are working correctly. * Multiple React instances often break hooks. */ export declare function validateReactHooks(): boolean; /** * Checks if JSX runtime is available. */ export declare function validateJSXRuntime(): boolean; /** * Checks if ReactDOM is available. */ export declare function validateReactDOM(): boolean; /** * Performs a comprehensive React environment check. */ export declare function checkReactEnvironment(config?: ReactEnvironmentConfig): ReactEnvironmentStatus; /** * Gets the cached React environment status. */ export declare function getCachedEnvironmentStatus(): ReactEnvironmentStatus | null; /** * Checks if the React environment is healthy. */ export declare function isReactEnvironmentHealthy(): boolean; /** * Safely creates a React portal, returning null if ReactDOM is unavailable. */ export declare function safeCreatePortal(children: React.ReactNode, container: Element | DocumentFragment): React.ReactPortal | null; /** * Wraps a component with React environment validation. * Renders a fallback if the environment is unhealthy. */ export declare function withReactEnvironmentGuard
(Component: React.ComponentType
, fallback?: React.ReactNode): React.FC
; export { parseVersion, compareVersions, isVersionInRange }; export { ReactEnvironmentProvider, useReactEnvironment, withReactEnvironmentCheck, type ReactEnvironmentContextValue, type ReactEnvironmentProviderProps, } from './ReactEnvironmentProvider';