import { Component, type ErrorInfo, type ReactNode } from "react";
export interface AppShellErrorBoundaryProps {
    children: ReactNode;
    /**
     * Invoked every time the boundary catches an error. Fires again on each
     * subsequent crash if `reset()` is called and the underlying issue persists.
     * When provided, the boundary will not log to `console.error` itself —
     * forward to your reporter (e.g. Sentry) inside this callback.
     *
     * @example
     * ```tsx
     * <AppShellErrorBoundary onError={(err, info) => Sentry.captureException(err, { extra: info })}>
     * ```
     */
    onError?: (error: Error, info: ErrorInfo) => void;
    /** Override the default fallback UI. Receives a reset callback. */
    fallback?: (props: {
        error: Error;
        reset: () => void;
    }) => ReactNode;
}
interface State {
    error: Error | null;
}
export declare class AppShellErrorBoundary extends Component<AppShellErrorBoundaryProps, State> {
    state: State;
    static getDerivedStateFromError(error: Error): State;
    componentDidCatch(error: Error, info: ErrorInfo): void;
    reset: () => void;
    render(): ReactNode;
}
export {};
//# sourceMappingURL=AppShellErrorBoundary.d.ts.map