import * as React from 'react';
import { Component, ErrorInfo, ReactNode } from 'react';
/**
 * Props for the ErrorBoundary component
 */
interface ErrorBoundaryProps {
    children: ReactNode;
    fallback?: ReactNode;
    onError?: (error: Error, errorInfo: ErrorInfo) => void;
}
/**
 * State for the ErrorBoundary component
 */
interface ErrorBoundaryState {
    hasError: boolean;
    error: Error | null;
    errorInfo: ErrorInfo | null;
    redirectTimer: number;
}
/**
 * ErrorBoundary component that catches JavaScript errors anywhere in the child component tree,
 * logs those errors, and displays a fallback UI instead of the component tree that crashed.
 *
 * Features:
 * - Graceful error handling with user-friendly messages
 * - Production vs development error display
 * - Automatic redirect to homepage after timeout
 * - Integration with logging system
 * - Manual error recovery option
 */
export declare class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {
    private redirectInterval?;
    private readonly REDIRECT_TIMEOUT;
    private readonly isProduction;
    constructor(props: ErrorBoundaryProps);
    /**
     * Static method called when an error is thrown in a child component.
     * Updates state to trigger error UI rendering.
     */
    static getDerivedStateFromError(error: Error): Partial<ErrorBoundaryState>;
    /**
     * Lifecycle method called after an error has been thrown by a descendant component.
     * Used for logging error information.
     */
    componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
    /**
     * Starts the countdown timer for automatic redirect to homepage
     */
    private startRedirectCountdown;
    /**
     * Clears the redirect interval timer
     */
    private clearRedirectInterval;
    /**
     * Redirects to the homepage
     */
    private redirectToHome;
    /**
     * Attempts to recover from the error by resetting state
     */
    private handleReset;
    /**
     * Cleanup on component unmount
     */
    componentWillUnmount(): void;
    render(): ReactNode;
}
/**
 * Legacy functional component for 404 errors (kept for backward compatibility)
 * This is used specifically for route not found errors.
 */
export declare function ErrorBoundaryNotFound(): React.JSX.Element;
export {};
