import type { LineAndColumnData, ReportDescriptor, RuleContext } from "../../../types";
import type { StyleContext } from "../style";
export declare class CommentDirectives {
    private _disableLines;
    private _disableBlocks;
    constructor(styles: StyleContext[]);
    disableLineAll(loc: LineAndColumnData): void;
    disableLineRules(loc: LineAndColumnData, rules: string[]): void;
    disableAll(loc: LineAndColumnData): void;
    disableRules(loc: LineAndColumnData, rules: string[]): void;
    enableAll(loc: LineAndColumnData): void;
    enableRules(loc: LineAndColumnData, rules: string[]): void;
    clear(loc: LineAndColumnData): void;
    isEnabled(rule: string, descriptor: ReportDescriptor): boolean;
}
export declare class CommentDirectivesReporter {
    private readonly context;
    private readonly commentDirectives;
    constructor(context: RuleContext, commentDirectives: CommentDirectives);
    report(descriptor: ReportDescriptor): void;
}
export declare function createCommentDirectives(styleContexts: StyleContext[]): CommentDirectives;
export declare function createCommentDirectivesReporter(context: RuleContext, commentDirectives: CommentDirectives): CommentDirectivesReporter;
