import { Linter, SDK, Rule as RuleTypes } from '@rsdoctor/types'; import { LinterType } from './linter'; type DefaultRuleConfig = Linter.DefaultRuleConfig; export declare class Rule implements Linter.RuleMeta { static from(data: Linter.ExtendRuleData): Rule; readonly meta: Linter.RuleMeta; private check; /** * execute when check end */ private onCheckEnd; private _severity; private _config?; constructor(data: Linter.RuleData); get code(): RuleTypes.RuleMessageCode; get title(): string; get severity(): Linter.Severity; get config(): Config | undefined; get category(): "compile" | "bundle" | RuleTypes.RuleMessageCategory | "emo"; setOption(opt: Linter.RuleConfigItem): void; match(level: Linter.Severity): boolean; validate(context: SDK.RuntimeContext): Promise; afterValidate({ hooks, validateResult, data, }: LinterType.InternalRuleCheckerContextForCheckEnd): Promise; } export declare function defineRule(ruleCreator: Linter.ExtendRuleConstructor<Title, T>): Linter.ExtendRuleData<T, Title>; export declare function defineRule<Title extends Linter.DefaultRuleTitle, T = Linter.DefaultRuleConfig>(ruleCreator: Linter.RuleConstructor<Title, T>): Linter.RuleData<T, Title>; export {};