import type { Token, ParseError } from '../types/core';
export interface ErrorContext {
    parsing: 'expression' | 'binary_op' | 'unary_op' | 'call' | 'member' | 'primary' | 'parentheses' | 'string' | 'command';
    expected?: string[];
    operators?: string[];
    lastValidToken?: Token;
}
export interface EnhancedParseError extends ParseError {
    context?: ErrorContext;
    suggestion?: string;
    recovery?: string;
}
export declare class ErrorHandler {
    private errors;
    private tokens;
    private position;
    constructor(tokens: Token[], position?: number);
    addError(message: string, context: ErrorContext, token?: Token): EnhancedParseError;
    getPrimaryError(): EnhancedParseError | undefined;
    getAllErrors(): EnhancedParseError[];
    private enhanceErrorMessage;
    private generateSuggestion;
    private generateRecoveryStrategy;
    private checkTypos;
    private isTypo;
    private levenshteinDistance;
    advance(): void;
    setPosition(position: number): void;
    getPosition(): number;
    private getCurrentToken;
    static detectErrorPatterns(tokens: Token[]): EnhancedParseError[];
}
export declare function createErrorHandler(tokens: Token[], position?: number): ErrorHandler;
//# sourceMappingURL=error-handler.d.ts.map