| import * as estree from 'estree'; |
| import { Rule, Linter } from 'eslint'; |
|
|
| type ReactHooksFlatConfig = { |
| plugins: { |
| react: any; |
| }; |
| rules: Linter.RulesRecord; |
| }; |
| declare const plugin: { |
| meta: { |
| name: string; |
| version: string; |
| }; |
| rules: { |
| 'component-hook-factories': Rule.RuleModule; |
| 'exhaustive-deps': { |
| meta: { |
| type: "suggestion"; |
| docs: { |
| description: string; |
| recommended: true; |
| url: string; |
| }; |
| fixable: "code"; |
| hasSuggestions: true; |
| schema: { |
| type: "object"; |
| additionalProperties: false; |
| enableDangerousAutofixThisMayCauseInfiniteLoops: boolean; |
| properties: { |
| additionalHooks: { |
| type: "string"; |
| }; |
| enableDangerousAutofixThisMayCauseInfiniteLoops: { |
| type: "boolean"; |
| }; |
| experimental_autoDependenciesHooks: { |
| type: "array"; |
| items: { |
| type: "string"; |
| }; |
| }; |
| requireExplicitEffectDeps: { |
| type: "boolean"; |
| }; |
| }; |
| }[]; |
| }; |
| create(context: Rule.RuleContext): { |
| CallExpression: (node: estree.CallExpression) => void; |
| }; |
| }; |
| 'rules-of-hooks': { |
| meta: { |
| type: "problem"; |
| docs: { |
| description: string; |
| recommended: true; |
| url: string; |
| }; |
| schema: { |
| type: "object"; |
| additionalProperties: false; |
| properties: { |
| additionalHooks: { |
| type: "string"; |
| }; |
| }; |
| }[]; |
| }; |
| create(context: Rule.RuleContext): { |
| '*'(node: any): void; |
| '*:exit'(node: any): void; |
| CallExpression(node: estree.CallExpression & Rule.NodeParentExtension): void; |
| Identifier(node: estree.Identifier & Rule.NodeParentExtension): void; |
| 'CallExpression:exit'(node: estree.CallExpression & Rule.NodeParentExtension): void; |
| FunctionDeclaration(node: estree.FunctionDeclaration & Rule.NodeParentExtension): void; |
| ArrowFunctionExpression(node: estree.ArrowFunctionExpression & Rule.NodeParentExtension): void; |
| ComponentDeclaration(node: any): void; |
| HookDeclaration(node: any): void; |
| }; |
| }; |
| }; |
| configs: { |
| recommended: { |
| plugins: string[]; |
| rules: Linter.RulesRecord; |
| }; |
| 'recommended-latest': { |
| plugins: string[]; |
| rules: Linter.RulesRecord; |
| }; |
| flat: { |
| recommended: ReactHooksFlatConfig; |
| "recommended-latest": ReactHooksFlatConfig; |
| }; |
| }; |
| }; |
|
|
| export { plugin as default }; |
|
|