import * as React from "react";
export interface ChartErrorBoundaryProps {
    children: React.ReactNode;
    /** Custom fallback to show on error. Can be a ReactNode or render function. */
    fallback?: React.ReactNode | ((error: Error) => React.ReactNode);
    /** Callback when an error is caught */
    onError?: (error: Error, errorInfo: React.ErrorInfo) => void;
}
interface ChartErrorBoundaryState {
    error: Error | null;
}
/**
 * Error boundary for Semiotic charts.
 * Catches render errors and shows a friendly fallback instead of crashing the app.
 *
 * @example
 * ```tsx
 * <ChartErrorBoundary>
 *   <LineChart data={data} xAccessor="x" yAccessor="y" />
 * </ChartErrorBoundary>
 *
 * // With custom fallback:
 * <ChartErrorBoundary fallback={<div>Chart failed to render</div>}>
 *   <BarChart data={data} categoryAccessor="cat" valueAccessor="val" />
 * </ChartErrorBoundary>
 *
 * // With error callback:
 * <ChartErrorBoundary onError={(err) => logError(err)}>
 *   <Scatterplot data={data} xAccessor="x" yAccessor="y" />
 * </ChartErrorBoundary>
 * ```
 */
export declare class ChartErrorBoundary extends React.Component<ChartErrorBoundaryProps, ChartErrorBoundaryState> {
    constructor(props: ChartErrorBoundaryProps);
    static getDerivedStateFromError(error: Error): ChartErrorBoundaryState;
    componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void;
    render(): React.ReactNode;
}
export {};
