/** * Since the ecosystem hasn't fully migrated to ESLint's new FlatConfig system yet, * we "need" to type some of the plugins manually :( */ declare module "@eslint/js" { // Why the hell doesn't eslint themselves export their types? import type { Linter } from "eslint"; export const configs: { readonly recommended: { readonly rules: Readonly }; readonly all: { readonly rules: Readonly }; }; } declare module "eslint-plugin-import" { import type { Linter, Rule } from "eslint"; export const configs: { recommended: { rules: Linter.RulesRecord }; }; export const rules: Record; } declare module "eslint-plugin-react" { import type { Linter, Rule } from "eslint"; export const configs: { recommended: { rules: Linter.RulesRecord }; all: { rules: Linter.RulesRecord }; "jsx-runtime": { rules: Linter.RulesRecord }; }; export const rules: Record; } declare module "eslint-plugin-react-hooks" { import type { Linter, Rule } from "eslint"; export const configs: { recommended: { rules: { "rules-of-hooks": Linter.RuleEntry; "exhaustive-deps": Linter.RuleEntry; }; }; }; export const rules: Record; } declare module "@next/eslint-plugin-next" { import type { Linter, Rule } from "eslint"; export const configs: { recommended: { rules: Linter.RulesRecord }; "core-web-vitals": { rules: Linter.RulesRecord }; }; export const rules: Record; }