import { NorminetteError } from "../../../types.js";
import { Token } from "../../../lexer/token.js";
export interface TokenFormatterRule {
    name: string;
    errorCodes: string[];
    priority: number;
    canFix(tokens: Token[], error: NorminetteError): boolean;
    apply(tokens: Token[], error: NorminetteError): Token[];
}
export declare class NorminetteFormatter {
    private rules;
    constructor();
    addRule(rule: TokenFormatterRule): void;
    format(content: string, errors: NorminetteError[]): string;
    private reconstructSource;
    getAvailableRules(): string[];
    getRulesByErrorCode(errorCode: string): TokenFormatterRule[];
    findTokenAtPosition(tokens: Token[], line: number, column: number): Token | null;
    getTokensOnLine(tokens: Token[], line: number): Token[];
}
