import type { Rule } from "eslint"; import type { TSESTree } from "@typescript-eslint/types"; export declare const COMPONENT_SHOULD_BE_FUNCTION = "componentShouldBeFunction"; export declare const ALLOW_ERROR_BOUNDARY = "allowErrorBoundary"; export declare const ALLOW_JSX_UTILITY_CLASS = "allowJsxUtilityClass"; type ClassNode = TSESTree.ClassDeclaration | TSESTree.ClassExpression; declare const rule: { meta: { docs: { description: string; category: string; recommended: boolean; url: string; }; type: "problem"; messages: { componentShouldBeFunction: string; }; schema: { type: "object"; properties: { allowErrorBoundary: { default: true; type: "boolean"; }; allowJsxUtilityClass: { default: false; type: "boolean"; }; }; additionalProperties: false; }[]; }; create(context: Rule.RuleContext): { "ClassDeclaration:has(JSXElement)": (node: ClassNode) => void; "ClassDeclaration:has(JSXFragment)": (node: ClassNode) => void; "ClassExpression:has(JSXElement)": (node: ClassNode) => void; "ClassExpression:has(JSXFragment)": (node: ClassNode) => void; "ClassDeclaration:has(JSXElement):has(MethodDefinition[key.name='render'])": (node: ClassNode) => void; "ClassDeclaration:has(JSXFragment):has(MethodDefinition[key.name='render'])": (node: ClassNode) => void; "ClassExpression:has(JSXElement):has(MethodDefinition[key.name='render'])": (node: ClassNode) => void; "ClassExpression:has(JSXFragment):has(MethodDefinition[key.name='render'])": (node: ClassNode) => void; "ClassDeclaration[superClass.object.name='React'][superClass.property.name='Component']": (node: ClassNode) => void; "ClassDeclaration[superClass.object.name='React'][superClass.property.name='PureComponent']": (node: ClassNode) => void; "ClassDeclaration[superClass.name='Component']": (node: ClassNode) => void; "ClassDeclaration[superClass.name='PureComponent']": (node: ClassNode) => void; "ClassExpression[superClass.object.name='React'][superClass.property.name='Component']": (node: ClassNode) => void; "ClassExpression[superClass.object.name='React'][superClass.property.name='PureComponent']": (node: ClassNode) => void; "ClassExpression[superClass.name='Component']": (node: ClassNode) => void; "ClassExpression[superClass.name='PureComponent']": (node: ClassNode) => void; "Program:exit": () => void; }; }; export default rule;