import { type TSESLint, type TSESTree } from '@typescript-eslint/utils'; import { type DeepReadonly } from 'ts-type-forge'; /** * Converts a `DeepReadonly` AST node back to the plain node type expected by * `context.report`. * * `castDeepMutable` maps `DeepReadonly` structurally, which * produces a type that no longer matches the nominal `TSESTree.Node` union and * makes the compiler bail out with "excessive stack depth" on large node * unions. Casting back to the original node type keeps the comparison cheap. */ export declare const castNode: (node: DeepReadonly) => N; /** * Check if the given CallExpression is a React API call. * Supports both namespace imports (React.memo) and named imports (memo). * Verifies that the identifier is actually imported from "react". */ export declare const isReactApiCall: (context: DeepReadonly>, node: DeepReadonly, apiName: string) => boolean; export declare const getReactMemoArrowFunction: (node: DeepReadonly) => DeepReadonly | undefined; //# sourceMappingURL=shared.d.mts.map