import type { FlatESLintConfig } from '@aet/eslint-define-config'; import type { Linter } from 'eslint'; type MiddlewareResult = Linter.Config | Linter.Config[]; export type Middleware = | (() => Promise) | (() => Promise<{ default: MiddlewareResult }>); export type Environment = | 'jsdoc' | 'lingui' | 'react' | 'reactQuery' | 'reactRefresh' | 'storybook' | 'tailwind' | 'testingLibrary' | 'vitest'; export interface NormalizedExtendConfigOptions { auto?: boolean; middlewares?: Middleware[]; configs: FlatESLintConfig[]; /** * Use `.gitignore` file to exclude files from ESLint. */ gitignore?: boolean; env?: { [key in Environment]?: boolean; }; } export type ExtendConfigOptions = | FlatESLintConfig | FlatESLintConfig[] | NormalizedExtendConfigOptions; /** * Returns a ESLint config object. * * By default, it includes `["@typescript-eslint", "import-x", "prettier", "unicorn"]` configs. * Additional bundled plugins include: * * 1. [`react`](https://github.com/jsx-eslint/eslint-plugin-react#list-of-supported-rules) * (automatically enables * [`react-hooks`](https://github.com/facebook/react/tree/main/packages/eslint-plugin-react-hooks)) * 2. [`react-refresh`](https://github.com/ArnaudBarre/eslint-plugin-react-refresh) * 3. [`jsx-a11y`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y#supported-rules) * 4. [`unicorn`](https://github.com/sindresorhus/eslint-plugin-unicorn#rules) * 5. [`n`](https://github.com/eslint-community/eslint-plugin-n#-rules) (Node.js specific, * requires `minimatch`) * 6. [`jsdoc`](https://github.com/gajus/eslint-plugin-jsdoc#rules) * * Non bundled: * 1. [`graphql`](https://the-guild.dev/graphql/eslint/rules) * * @returns ESLint configuration object. */ export function extendConfig(options?: ExtendConfigOptions): Promise; export const error = 'error'; export const warn = 'warn'; export const off = 'off';