import { Component, type ReactNode } from 'react'; interface Props { children: ReactNode; /** Short label for the fallback line, e.g. the entry id or kind. */ label?: string | undefined; /** When this value changes, any caught error is cleared so the boundary * retries rendering. Essential for streaming entries whose partial state * may throw transiently (incomplete markdown/table) but render fine once * content completes. */ resetKey?: string | number | undefined; } interface State { error: Error | null; } /** * Isolates a render throw to a single history row. * * History entries render arbitrary model/tool output through markdown, table, * and diff renderers. Without a boundary, one malformed entry's throw unmounts * the ENTIRE Ink tree: the process-level crash shield keeps the process alive * but the UI goes permanently dead — and it recurs on resume because the entry * is persisted. Wrapping each entry degrades that to a single "⚠ render error" * line while the rest of the transcript keeps working. * * Note: React error boundaries catch throws during render/lifecycle of their * children only — not event handlers or async work. That is exactly the class * of failure this guards against. */ export declare class EntryErrorBoundary extends Component { state: State; static getDerivedStateFromError(error: Error): State; componentDidCatch(error: Error): void; componentDidUpdate(prevProps: Readonly): void; render(): ReactNode; } export {}; //# sourceMappingURL=entry-error-boundary.d.ts.map