import { default as React, Component, ErrorInfo, ReactNode } from 'react'; export interface ErrorBoundaryProps { /** Custom fallback UI or render function */ fallback?: ReactNode | ((error: Error, retry: () => void) => ReactNode); /** Callback when error is caught */ onError?: (error: Error, errorInfo: ErrorInfo) => void; /** Children to render */ children: ReactNode; /** Component name for error context */ componentName?: string; } interface ErrorBoundaryState { hasError: boolean; error: Error | null; } /** * ErrorBoundary - Catches and handles component errors gracefully * * @example * ```tsx * } * onError={(error) => logError(error)} * > * * * ``` * * @example * ```tsx * ( * * Error: {error.message} * Retry * * )} * > * * * ``` */ export declare class ErrorBoundary extends Component { constructor(props: ErrorBoundaryProps); static getDerivedStateFromError(error: Error): ErrorBoundaryState; componentDidCatch(error: Error, errorInfo: ErrorInfo): void; handleRetry: () => void; render(): ReactNode; } /** * Wraps a component with an ErrorBoundary * * @example * ```tsx * const SafeSpacecraftCard = withErrorBoundary(SpacecraftCard, { * componentName: 'SpacecraftCard', * onError: (error) => logError(error), * }); * ``` */ export declare function withErrorBoundary(Component: React.ComponentType, options?: Omit): React.FC; export {};
Error: {error.message}
(Component: React.ComponentType
, options?: Omit): React.FC; export {};
; export {};