import type { Target } from '@markuplint/file-resolver';
import type { Config, RuleConfigValue, Rule, RegexSelector } from '@markuplint/ml-config';
import type { AnyMLRule, RuleSeed } from '@markuplint/ml-core';
export declare function mlTest(sourceCode: string, config: Config, rules?: AnyMLRule[], locale?: string, fix?: boolean): Promise<{
    violations: import("@markuplint/ml-config").Violation[];
    fixedCode: string;
}>;
export declare function mlRuleTest<T extends RuleConfigValue, O = null>(rule: RuleSeed<T, O>, sourceCode: string, config?: Omit<Config, 'rules' | 'nodeRules' | 'childNodeRules'> & {
    rule?: Rule<T, Partial<O>>;
    nodeRule?: NodeRule<T, Partial<O>>[];
    childNodeRule?: ChildNodeRule<T, Partial<O>>[];
}, fix?: boolean, locale?: string): Promise<{
    violations: import("@markuplint/ml-config").Violation[];
    fixedCode: string;
}>;
export declare function mlTestFile(target: Target, config?: Config, rules?: AnyMLRule[], locale?: string, fix?: boolean): Promise<{
    violations: import("@markuplint/ml-config").Violation[];
    fixedCode: string;
}>;
export interface NodeRule<T extends RuleConfigValue, O = void> {
    selector?: string;
    regexSelector?: RegexSelector;
    categories?: string[];
    roles?: string[];
    obsolete?: boolean;
    rule?: Rule<T, O>;
}
export interface ChildNodeRule<T extends RuleConfigValue, O = void> {
    selector?: string;
    regexSelector?: RegexSelector;
    inheritance?: boolean;
    rule?: Rule<T, O>;
}
