import { ESLint, type Linter } from 'eslint';
import type { LogLevelDesc as LogLevel } from 'loglevel';
import type { Options as PrettierOptions } from 'prettier';
export type { LogLevel };
export type { PrettierOptions };
export interface FormatOptions {
    eslintConfig?: ESLintConfig;
    eslintPath?: string;
    fallbackPrettierOptions?: PrettierOptions;
    filePath?: string;
    logLevel?: LogLevel;
    prettierOptions?: PrettierOptions;
    prettierPath?: string;
    prettierLast?: boolean;
    text?: string;
}
export interface PrettifyInput {
    output: string;
    messages: Linter.LintMessage[];
}
export type StringLiteral<T> = T | (string & {
    _?: never;
});
export interface OptionGetter {
    ruleValue: (rules?: Partial<Linter.RulesRecord>) => StringLiteral<Linter.RuleEntry> | undefined;
    ruleValueToPrettierOption: (...args: any[]) => unknown;
}
export type ESLintOptions = Omit<ESLint.Options, 'plugins' | 'reportUnusedDisableDirectives'>;
export type ValueOf<T> = T[keyof T];
export type ESLintConfigLanguageOptions = NonNullable<Linter.Config['languageOptions']>;
export interface ESLintConfig extends Linter.Config, ESLintOptions {
}
