/**
 * File Error Boundary Component
 *
 * Specialized error boundary for catching and handling file system errors.
 * Provides detailed error information, recovery actions for common file system issues,
 * and permission handling.
 */
import React, { Component, ErrorInfo, ReactNode } from 'react';
interface FileErrorBoundaryProps {
    children: ReactNode;
    filePath?: string;
    onRetry?: () => void;
    onCreateDirectory?: (dirPath: string) => void;
    onError?: (error: Error, errorInfo: ErrorInfo) => void;
    showDetails?: boolean;
    autoCreateDirectories?: boolean;
}
interface FileErrorBoundaryState {
    hasError: boolean;
    error: Error | null;
    errorInfo: ErrorInfo | null;
    fileErrorType: FileErrorType;
    suggestedAction: string | null;
    isRecovering: boolean;
}
/**
 * File system error types
 */
export declare enum FileErrorType {
    NOT_FOUND = "NOT_FOUND",
    PERMISSION_DENIED = "PERMISSION_DENIED",
    ALREADY_EXISTS = "ALREADY_EXISTS",
    IS_DIRECTORY = "IS_DIRECTORY",
    NOT_DIRECTORY = "NOT_DIRECTORY",
    DISK_FULL = "DISK_FULL",
    READ_ONLY = "READ_ONLY",
    INVALID_PATH = "INVALID_PATH",
    SYMLINK_LOOP = "SYMLINK_LOOP",
    TOO_MANY_OPEN = "TOO_MANY_OPEN",
    UNKNOWN = "UNKNOWN"
}
/**
 * File Error Boundary for handling file system errors
 */
export declare class FileErrorBoundary extends Component<FileErrorBoundaryProps, FileErrorBoundaryState> {
    constructor(props: FileErrorBoundaryProps);
    static getDerivedStateFromError(error: Error): Partial<FileErrorBoundaryState>;
    componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
    handleAutoCreateDirectory: (filePath: string) => Promise<void>;
    handleManualRecovery: () => void;
    getErrorMessage(): string;
    getErrorIcon(): string;
    canRecover(): boolean;
    render(): ReactNode;
}
/**
 * Hook to wrap components with File Error Boundary
 */
interface WithFileErrorBoundaryOptions {
    filePath?: string;
    onRetry?: () => void;
    onCreateDirectory?: (dirPath: string) => void;
    onError?: (error: Error, errorInfo: ErrorInfo) => void;
    showDetails?: boolean;
    autoCreateDirectories?: boolean;
}
export declare function withFileErrorBoundary<P extends object>(WrappedComponent: React.ComponentType<P>, options?: WithFileErrorBoundaryOptions): React.FC<P>;
export default FileErrorBoundary;
