import { FlatConfigComposer } from 'eslint-flat-config-utils';
import { Linter } from 'eslint';
import { EnableOption } from './utils/types';
import { ReactVersion } from './utils/internal';

export type EslintConfigOptions = {
    ignores?: Linter.Config['ignores'];
    react?: EnableOption<{
        version?: ReactVersion;
        compiler?: boolean;
    }>;
    ts?: EnableOption<{
        parseOptions?: Linter.ParserOptions;
    }>;
    prettier?: EnableOption;
    unicorn?: EnableOption;
    vitestGlobals?: EnableOption;
    jsxA11y?: EnableOption;
    vue?: EnableOption<{
        version?: 2 | 3;
    }>;
    js?: EnableOption;
    import?: EnableOption;
};
type MaybePromise<T> = T | Promise<T>;
export default function eslintConfig(options?: EslintConfigOptions, ...configs: MaybePromise<Linter.Config | FlatConfigComposer<any, any>>[]): Promise<Linter.Config<Linter.RulesRecord>[]>;
export {};
