import React, { Component, ErrorInfo, ReactNode } from 'react';
import { ClientErrorHandler } from '../client/error-handler';
interface Props {
    children: ReactNode;
    errorHandler: ClientErrorHandler;
    fallback?: ReactNode | ((error: Error, errorInfo: ErrorInfo) => ReactNode);
    onError?: (error: Error, errorInfo: ErrorInfo) => void;
}
interface State {
    hasError: boolean;
    error?: Error;
    errorInfo?: ErrorInfo;
}
/**
 * React Error Boundary that integrates with IndexTicketing
 */
export declare class IndexTicketingErrorBoundary extends Component<Props, State> {
    constructor(props: Props);
    static getDerivedStateFromError(error: Error): State;
    componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
    render(): React.ReactNode;
}
/**
 * Higher-order component that wraps a component with error boundary
 */
export declare function withIndexTicketingErrorBoundary<P extends object>(WrappedComponent: React.ComponentType<P>, errorHandler: ClientErrorHandler, fallback?: ReactNode | ((error: Error, errorInfo: ErrorInfo) => ReactNode)): {
    (props: P): React.DetailedReactHTMLElement<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>;
    displayName: string;
};
/**
 * React hook for manual error reporting
 */
export declare function useIndexTicketing(errorHandler: ClientErrorHandler): {
    captureError: (error: Error, extra?: Record<string, any>) => void;
    addBreadcrumb: (message: string, category?: string, level?: "info" | "warning" | "error" | "debug", data?: Record<string, any>) => void;
    setUser: (user: {
        id?: string;
        email?: string;
        name?: string;
    }) => void;
    setTags: (tags: Record<string, string>) => void;
};
export {};
//# sourceMappingURL=react.d.ts.map