import { Logger } from './logger';
export declare enum ErrorSeverity {
    LOW = "low",
    MEDIUM = "medium",
    HIGH = "high",
    CRITICAL = "critical"
}
export declare enum ErrorCategory {
    PARSING = "parsing",
    TOKENIZATION = "tokenization",
    REGEX = "regex",
    STRING_HANDLING = "string_handling",
    TEMPLATE_LITERAL = "template_literal",
    COMMENT_DETECTION = "comment_detection",
    PRESERVATION = "preservation",
    FILE_PROCESSING = "file_processing"
}
export interface ParseError {
    category: ErrorCategory;
    severity: ErrorSeverity;
    message: string;
    position?: number;
    line?: number;
    column?: number;
    context?: string;
    recoveryAction?: string;
    originalError?: Error;
}
export interface ErrorRecoveryResult {
    recovered: boolean;
    fallbackUsed: boolean;
    errors: ParseError[];
    warnings: string[];
}
export declare class ErrorHandler {
    private errors;
    private warnings;
    private logger;
    private enableRecovery;
    constructor(logger?: Logger, enableRecovery?: boolean);
    recordError(error: Partial<ParseError> & {
        category: ErrorCategory;
        message: string;
    }): void;
    recordWarning(message: string): void;
    attemptRecovery(error: ParseError, content: string, position: number): ErrorRecoveryResult;
    private recoverFromStringError;
    private recoverFromTemplateError;
    private recoverFromRegexError;
    private recoverFromCommentError;
    private recoverFromTokenizationError;
    private recoverFromGenericError;
    private detectQuoteType;
    private findNextQuote;
    calculateLineColumn(content: string, position: number): {
        line: number;
        column: number;
    };
    getContext(content: string, position: number, contextSize?: number): string;
    validateParsingCompletion(originalLength: number, processedLength: number, tokensProcessed: number): boolean;
    getErrors(): ParseError[];
    getWarnings(): string[];
    hasCriticalErrors(): boolean;
    getErrorSummary(): {
        total: number;
        bySeverity: Record<ErrorSeverity, number>;
        byCategory: Record<ErrorCategory, number>;
    };
    clear(): void;
}
//# sourceMappingURL=error-handler.d.ts.map