import * as React from 'react';
export type ErrorBoundaryVariant = 'section' | 'inline';
export type ErrorBoundaryFallbackProps = {
    error: Error;
    errorInfo: React.ErrorInfo | null;
    reset: () => void;
};
export interface ErrorBoundaryProps {
    children: React.ReactNode;
    /** Custom fallback rendered when an error is caught. Receives the error and a reset callback. */
    fallback?: React.ReactNode | ((props: ErrorBoundaryFallbackProps) => React.ReactNode);
    /** Called when an error is caught. Useful for reporting to an error tracker. */
    onError?: (error: Error, errorInfo: React.ErrorInfo) => void;
    /**
     * When any value in this array changes between renders, the boundary resets.
     * Useful for clearing an error on route change: `resetKeys={[pathname]}`.
     */
    resetKeys?: ReadonlyArray<unknown>;
    /** Heading shown in the default fallback. */
    title?: string;
    /** Description shown in the default fallback. */
    description?: string;
    /**
     * Controls the default fallback's footprint:
     * - `'section'` (default): fills available height and centers content — use when the boundary wraps a page or region.
     * - `'inline'`: stays compact — use when scoping to a single widget so the rest of the UI is untouched.
     */
    variant?: ErrorBoundaryVariant;
    /** Additional classes applied to the default fallback's outer wrapper. */
    className?: string;
}
type ErrorBoundaryState = {
    error: Error | null;
    errorInfo: React.ErrorInfo | null;
};
export declare class ErrorBoundary extends React.Component<ErrorBoundaryProps, ErrorBoundaryState> {
    state: ErrorBoundaryState;
    static getDerivedStateFromError(error: Error): Partial<ErrorBoundaryState>;
    componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void;
    componentDidUpdate(prevProps: ErrorBoundaryProps): void;
    reset: () => void;
    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> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
}
export {};
