import { Component, ErrorInfo, ReactNode } from 'react'; interface Props { /** Named in the console message, so a page carrying several forms says which. */ formId: string; children: ReactNode; } interface State { failed: boolean; } /** * The last thing standing between one malformed item and a blank space where * the form was. * * A form is JSON a host assembles, and the renderer draws whatever arrives. * React's answer to a throw during render is to unmount the tree it happened * in — so a single field with a shape nobody anticipated used to take the whole * card down, silently, leaving a page that looks like the embed never ran. The * builder fares worse still: its canvas shares this renderer with the live form, * but not its own root, so the same throw emptied the entire editor. * * There is nothing useful to show a visitor in place of a form that can't be * drawn, so the fallback is nothing. What changes is the console: the form's id * and the actual error, in place of React's bare unmount. */ export declare class FormBoundary extends Component { state: State; static getDerivedStateFromError(): State; componentDidCatch(error: Error, info: ErrorInfo): void; render(): ReactNode; } export {};