import type { RuleClass, LintResult } from "./types.js";
import type { DocumentNode } from "@herb-tools/core";
export declare class Linter {
    private rules;
    private offenses;
    /**
     * Creates a new Linter instance.
     * @param rules - Array of rule classes (not instances) to use. If not provided, uses default rules.
     */
    constructor(rules?: RuleClass[]);
    /**
     * Returns the default set of rule classes used by the linter.
     * @returns Array of rule classes
     */
    private getDefaultRules;
    getRuleCount(): number;
    lint(document: DocumentNode): LintResult;
}
