import type { ErrorInfo } from 'react';
import React from 'react';
interface ISpinErrorBoundaryState {
    error?: Error;
    retrying: boolean;
}
interface ISpinErrorBoundaryProps {
    children: React.ReactNode;
    category: string;
}
/** Given a React Component, returns a React Component wrapped in an ErrorBoundary */
export declare function withErrorBoundary<T>(Component: React.ComponentType<T>, category: string): React.ComponentType<T>;
export declare class SpinErrorBoundary extends React.Component<ISpinErrorBoundaryProps, ISpinErrorBoundaryState> {
    constructor(props: ISpinErrorBoundaryProps);
    static getDerivedStateFromError(error: Error): {
        error: Error;
    };
    componentDidCatch(error: Error, _errorInfo: ErrorInfo): void;
    retry(): void;
    render(): React.ReactNode;
}
export declare const UI_ROUTER_REACT_ERROR_BOUNDARY = "ui.router.react.error.boundary";
export {};
