import { Linter } from './Linter';
import { RuleListener, RuleMetaData, RuleModule } from './Rule';
declare class CLIEngineBase {
    /**
     * Creates a new instance of the core CLI engine.
     * @param providedOptions The options for this instance.
     */
    constructor(options: CLIEngine.Options);
    /**
     * Add a plugin by passing its configuration
     * @param name Name of the plugin.
     * @param pluginObject Plugin configuration object.
     */
    addPlugin(name: string, pluginObject: Linter.Plugin): void;
    /**
     * Executes the current configuration on an array of file and directory names.
     * @param patterns An array of file and directory names.
     * @returns The results for all files that were linted.
     */
    executeOnFiles(patterns: string[]): CLIEngine.LintReport;
    /**
     * Executes the current configuration on text.
     * @param text A string of JavaScript code to lint.
     * @param filename An optional string representing the texts filename.
     * @param warnIgnored Always warn when a file is ignored
     * @returns The results for the linting.
     */
    executeOnText(text: string, filename?: string, warnIgnored?: boolean): CLIEngine.LintReport;
    /**
     * Returns a configuration object for the given file based on the CLI options.
     * This is the same logic used by the ESLint CLI executable to determine configuration for each file it processes.
     * @param filePath The path of the file to retrieve a config object for.
     * @returns A configuration object for the file.
     */
    getConfigForFile(filePath: string): Linter.Config;
    /**
     * Returns the formatter representing the given format.
     * @param format The name of the format to load or the path to a custom formatter.
     * @returns The formatter function.
     */
    getFormatter(format?: string): CLIEngine.Formatter;
    /**
     * Checks if a given path is ignored by ESLint.
     * @param filePath The path of the file to check.
     * @returns Whether or not the given path is ignored.
     */
    isPathIgnored(filePath: string): boolean;
    /**
     * Resolves the patterns passed into `executeOnFiles()` into glob-based patterns for easier handling.
     * @param patterns The file patterns passed on the command line.
     * @returns The equivalent glob patterns.
     */
    resolveFileGlobPatterns(patterns: string[]): string[];
    getRules<TMessageIds extends string = string, TOptions extends readonly unknown[] = unknown[], TRuleListener extends RuleListener = RuleListener>(): Map<string, RuleModule<TMessageIds, TOptions, TRuleListener>>;
    /**
     * Returns results that only contains errors.
     * @param results The results to filter.
     * @returns The filtered results.
     */
    static getErrorResults(results: CLIEngine.LintResult[]): CLIEngine.LintResult[];
    /**
     * Returns the formatter representing the given format or null if the `format` is not a string.
     * @param format The name of the format to load or the path to a custom formatter.
     * @returns The formatter function.
     */
    static getFormatter(format?: string): CLIEngine.Formatter;
    /**
     * Outputs fixes from the given results to files.
     * @param report The report object created by CLIEngine.
     */
    static outputFixes(report: CLIEngine.LintReport): void;
    static version: string;
}
declare namespace CLIEngine {
    interface Options {
        allowInlineConfig?: boolean;
        baseConfig?: false | {
            [name: string]: unknown;
        };
        cache?: boolean;
        cacheFile?: string;
        cacheLocation?: string;
        configFile?: string;
        cwd?: string;
        envs?: string[];
        errorOnUnmatchedPattern?: boolean;
        extensions?: string[];
        fix?: boolean;
        globals?: string[];
        ignore?: boolean;
        ignorePath?: string;
        ignorePattern?: string | string[];
        useEslintrc?: boolean;
        parser?: string;
        parserOptions?: Linter.ParserOptions;
        plugins?: string[];
        resolvePluginsRelativeTo?: string;
        rules?: {
            [name: string]: Linter.RuleLevel | Linter.RuleLevelAndOptions;
        };
        rulePaths?: string[];
        reportUnusedDisableDirectives?: boolean;
    }
    interface LintResult {
        filePath: string;
        messages: Linter.LintMessage[];
        errorCount: number;
        warningCount: number;
        fixableErrorCount: number;
        fixableWarningCount: number;
        output?: string;
        source?: string;
    }
    interface LintReport {
        results: LintResult[];
        errorCount: number;
        warningCount: number;
        fixableErrorCount: number;
        fixableWarningCount: number;
        usedDeprecatedRules: DeprecatedRuleUse[];
    }
    interface DeprecatedRuleUse {
        ruleId: string;
        replacedBy: string[];
    }
    interface LintResultData<TMessageIds extends string> {
        rulesMeta: {
            [ruleId: string]: RuleMetaData<TMessageIds>;
        };
    }
    type Formatter = <TMessageIds extends string>(results: LintResult[], data?: LintResultData<TMessageIds>) => string;
}
declare const CLIEngine_base: typeof CLIEngineBase;
/**
 * The underlying utility that runs the ESLint command line interface. This object will read the filesystem for
 * configuration and file information but will not output any results. Instead, it allows you direct access to the
 * important information so you can deal with the output yourself.
 * @deprecated use the ESLint class instead
 */
declare class CLIEngine extends CLIEngine_base {
}
export { CLIEngine };
//# sourceMappingURL=CLIEngine.d.ts.map
