import React, { type ReactNode } from 'react';
import { ErrorBoundaryTypeError } from './enums';
export type State = {
    /**
     * Флаг наличия перехваченной ошибки
     */
    hasError: boolean;
    /**
     * Тип перехваченной ошибки
     */
    typeError: ErrorBoundaryTypeError;
};
type Props = {
    /**
     * Компонент, ошибки которого будут перехвачены
     */
    children: ReactNode;
};
/**
 * Компонент, который перехватывает ошибки в обернутых в него компонентах.
 * При перехвате ошибки осуществляется ее отправка в captureException
 * @example <ErrorBoundary><InsecureComponent/></ErrorBoundary>
 */
declare class ErrorBoundary extends React.Component<Props, State> {
    state: State;
    componentDidCatch(error: Error): void;
    render(): React.ReactNode;
    static getDerivedStateFromError(error: Error): {
        hasError: boolean;
        typeError: ErrorBoundaryTypeError;
    };
}
export { ErrorBoundary };
