import rules from './index';
type RuleClass = (typeof rules)[keyof typeof rules];
type RuleInstance = InstanceType<RuleClass>;
type RuleName = RuleInstance['name'];
type RuleType = 'warning' | 'error';
type RuleSeverity = 'info' | 'minor' | 'major' | 'critical';
type RuleCategory = 'style' | 'security' | 'best-practice' | 'performance';
interface Rule {
    name: RuleName;
    type: RuleType;
    meta: RuleMeta;
    category: RuleCategory;
    severity: RuleSeverity;
    fixable: boolean;
    options?: object;
    getMessage(details?: object): string;
    check(content: object, type?: RuleType): RuleMessage[];
    fix?(content: string): string;
}
interface RuleMeta {
    description: string;
    url: string;
}
interface RuleMessage {
    rule: RuleName;
    type: RuleType;
    severity: RuleSeverity;
    category: RuleCategory;
    message: string;
    line: number;
    column: number;
    endLine?: number;
    endColumn?: number;
    meta?: RuleMeta;
    fixable: boolean;
    data: object;
}
interface RuleDefinition {
    name: RuleName;
    type: RuleType;
    category: RuleCategory;
    severity: RuleSeverity;
    fixable: boolean;
    meta: RuleMeta;
    hasFixFunction: boolean;
    hasOptions: boolean;
}
export { Rule, RuleDefinition, RuleName, RuleSeverity, RuleCategory, RuleType, RuleMeta, RuleMessage };
