import React, { ErrorInfo, ReactNode } from 'react';
interface EntityErrorBoundaryState {
    hasError: boolean;
    error?: Error;
    errorInfo?: ErrorInfo;
    errorId?: string;
}
interface EntityErrorBoundaryProps {
    children: ReactNode;
    entityType?: string;
    fallback?: ReactNode;
    onError?: (error: Error, errorInfo: ErrorInfo) => void;
    showDetails?: boolean;
}
/**
 * Error Boundary específico para entidades
 * Proporciona recuperación de errores y debugging para el sistema de entidades dinámicas
 */
export declare class EntityErrorBoundary extends React.Component<EntityErrorBoundaryProps, EntityErrorBoundaryState> {
    private retryCount;
    private readonly maxRetries;
    constructor(props: EntityErrorBoundaryProps);
    static getDerivedStateFromError(error: Error): Partial<EntityErrorBoundaryState>;
    componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
    private reportError;
    private handleRetry;
    private handleReset;
    private handleReload;
    private handleGoHome;
    private getErrorType;
    private getErrorMessage;
    render(): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode>> | import("react/jsx-runtime").JSX.Element;
}
/**
 * Hook para usar el Error Boundary de forma funcional
 */
export declare function useEntityErrorHandler(entityType?: string): {
    handleError: (error: Error, errorInfo: ErrorInfo) => void;
};
/**
 * Componente HOC para envolver automáticamente componentes de entidades
 */
export declare function withEntityErrorBoundary<P extends object>(Component: React.ComponentType<P>, entityType?: string): {
    (props: P): import("react/jsx-runtime").JSX.Element;
    displayName: string;
};
export {};
//# sourceMappingURL=ErrorBoundary.d.ts.map