import React from 'react';
import type { DispatchAnalyticsEvent, ErrorEventPayload } from '../../analytics';
import { ACTION } from '../../analytics';
type ErrorCrashPayload = Extract<ErrorEventPayload, {
    action: ACTION.EDITOR_CRASHED;
}>;
interface ErrorBoundaryProps {
    children?: React.ReactNode;
    component: ErrorCrashPayload['actionSubject'];
    componentId?: ErrorCrashPayload['actionSubjectId'];
    dispatchAnalyticsEvent?: DispatchAnalyticsEvent;
    fallbackComponent?: React.ReactNode;
}
interface ErrorBoundaryState {
    errorCaptured: boolean;
}
export declare class ErrorBoundary extends React.Component<ErrorBoundaryProps, ErrorBoundaryState> {
    state: {
        errorCaptured: boolean;
    };
    hasFallback(): boolean;
    shouldRecover(): boolean;
    componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void;
    render(): React.ReactNode;
}
export {};
