// Generated by dts-bundle-generator v9.4.0 import { ESLintConfig, KnownExtends, Rules, Settings } from '@aet/eslint-define-config'; import { ESLintUtils } from '@typescript-eslint/utils'; import { Rule } from 'eslint'; import { Merge, SetRequired } from 'type-fest'; export type OptionalObjectKey = Exclude<{ [Key in keyof T]: undefined | any[] extends T[Key] ? Key : undefined | Record extends T[Key] ? Key : never; }[keyof T], undefined>; export type MiddlewareConfig = Merge>, { extends: KnownExtends[]; }>; export interface MiddlewareFunctions { addRules(rules: Partial): void; addSettings(settings: Partial): void; } export type Middleware = (config: MiddlewareConfig, helpers: MiddlewareFunctions) => void; export declare const error = "error"; export declare const warn = "warn"; export declare const off = "off"; export declare const graphql: Middleware; export declare const jsdoc: Middleware; export declare const storybook: Middleware; export declare const react: Middleware; export declare const reactRefresh: Middleware; export declare const tailwind: Middleware; export type RuleLevel = "error" | "warn" | "off" | 0 | 1 | 2; export type RuleEntry = RuleLevel | [ RuleLevel, Partial ]; export interface LocalRuleOptions { /** Bans import from the specifier '.' and '..' and replaces it with '.+/index' */ "rules/no-import-dot": RuleEntry; /** * Enforce template literal expressions to be of `string` type * @see [restrict-template-expressions](https://typescript-eslint.io/rules/restrict-template-expressions) */ "rules/restrict-template-expressions": RuleEntry<{ allow: string[]; }>; /** Ban assignment of empty object literals `{}` and replace them with `Object.create(null)` */ "rules/no-empty-object-literal": RuleEntry; } export type RuleOptions = Rules & Partial; export interface CustomRule { rule: () => Promise<{ default: Rule.RuleModule | ESLintUtils.RuleModule; }>; options?: RuleLevel; } /** * ESLint Configuration. * @see [ESLint Configuration](https://eslint.org/docs/latest/user-guide/configuring/) */ export type InputConfig = Omit & { /** * Rules. * @see [Rules](https://eslint.org/docs/latest/user-guide/configuring/rules) */ rules?: Partial; /** * Glob pattern to find paths to custom rule files in JavaScript or TypeScript. * Note this must be a string literal or an array of string literals since * this is statically analyzed. */ customRuleFiles?: string | string[]; /** * Automatically detect project types, dependencies and deduct the plugins. * @default true */ auto?: boolean; }; /** * 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) */ export declare function extendConfig(of?: InputConfig & { middlewares?: Middleware[]; }): ESLintConfig; export {};