import { Diagnostic, Connection } from "vscode-languageserver/node";
import { TextDocument } from "vscode-languageserver-textdocument";
import { Settings } from "./settings";
import { Project } from "./project";
export interface LintServiceResult {
    diagnostics: Diagnostic[];
}
export declare class LinterService {
    private readonly connection;
    private readonly settings;
    private readonly project;
    private readonly source;
    private linter?;
    private allRules;
    private customRulesLoaded;
    private failedCustomRules;
    private hasShownCustomRuleWarning;
    private customRulePaths;
    constructor(connection: Connection, settings: Settings, project: Project);
    /**
     * Rebuild the linter when config changes
     * This ensures the linter uses the latest rule configuration
     */
    rebuildLinter(): void;
    /**
     * Load custom rules from the project and merge with built-in rules
     */
    private loadCustomRules;
    /**
     * Show warning message to user about failed custom rules
     */
    private showCustomRuleWarnings;
    lintDocument(textDocument: TextDocument): Promise<LintServiceResult>;
}
