@eslint-react/core 1.46.1-next.0 → 1.47.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -5,6 +5,7 @@ import { _ } from '@eslint-react/eff';
5
5
  import { RuleContext } from '@eslint-react/kit';
6
6
  import * as birecord from 'birecord';
7
7
  import { Scope } from '@typescript-eslint/scope-manager';
8
+ import * as VAR from '@eslint-react/var';
8
9
 
9
10
  type ComponentDetectionHint = bigint;
10
11
  /**
@@ -53,6 +54,23 @@ declare const ComponentDetectionHint: {
53
54
  */
54
55
  declare const DEFAULT_COMPONENT_DETECTION_HINT: bigint;
55
56
 
57
+ type ComponentEffectPhaseKind = "cleanup" | "setup";
58
+ type ComponentLifecyclePhaseKind = "mount" | "unmount";
59
+ type ComponentPhaseKind = ComponentEffectPhaseKind | ComponentLifecyclePhaseKind;
60
+ declare const ComponentPhaseRelevance: birecord.BiRecord<{
61
+ readonly mount: "unmount";
62
+ readonly setup: "cleanup";
63
+ }>;
64
+ declare const isInversePhase: {
65
+ (a: ComponentPhaseKind): (b: ComponentPhaseKind) => boolean;
66
+ (a: ComponentPhaseKind, b: ComponentPhaseKind): boolean;
67
+ };
68
+
69
+ interface SemanticEntry {
70
+ node: TSESTree.Node;
71
+ phase: ComponentPhaseKind;
72
+ }
73
+
56
74
  interface SemanticNode {
57
75
  id: _ | TSESTree.Identifier | TSESTree.Identifier[];
58
76
  key: string;
@@ -139,10 +157,62 @@ declare function useComponentCollectorLegacy(): useComponentCollectorLegacy.Retu
139
157
 
140
158
  declare function isValidComponentDefinition(context: RuleContext, node: AST.TSESTreeFunction, hint: bigint): boolean;
141
159
 
160
+ /**
161
+ * Determines whether inside `createElement`'s children.
162
+ * @param context The rule context
163
+ * @param node The AST node to check
164
+ * @returns `true` if the node is inside createElement's children
165
+ */
166
+ declare function isChildrenOfCreateElement(context: RuleContext, node: TSESTree.Node): boolean;
167
+ /**
168
+ * Check whether given node is declared inside class component's render block
169
+ * ```tsx
170
+ * class Component extends React.Component {
171
+ * render() {
172
+ * class NestedClassComponent extends React.Component {
173
+ * render() { return <div />; }
174
+ * }
175
+ * const nestedFunctionComponent = () => <div />;
176
+ * }
177
+ * }
178
+ * ```
179
+ * @param node The AST node being checked
180
+ * @returns `true` if node is inside class component's render block, `false` if not
181
+ */
182
+ declare function isInsideRenderMethod(node: TSESTree.Node): boolean;
183
+ declare function isFunctionOfComponentDidMount(node: TSESTree.Node): boolean;
184
+ declare function isFunctionOfComponentWillUnmount(node: TSESTree.Node): boolean;
185
+ /**
186
+ * Check whether given node is a function of a render method of a class component
187
+ * @example
188
+ * ```tsx
189
+ * class Component extends React.Component {
190
+ * renderHeader = () => <div />;
191
+ * renderFooter = () => <div />;
192
+ * }
193
+ * ```
194
+ * @param node The AST node to check
195
+ * @returns `true` if node is a render function, `false` if not
196
+ */
197
+ declare function isFunctionOfRenderMethod(node: AST.TSESTreeFunction): boolean;
198
+
142
199
  declare function getFunctionComponentId(context: RuleContext, node: AST.TSESTreeFunction): TSESTree.Identifier | TSESTree.Identifier[] | _;
143
200
 
144
201
  declare function getComponentFlagFromInitPath(initPath: FunctionComponent["initPath"]): bigint;
145
202
 
203
+ /**
204
+ * Check if a node is a React class component
205
+ * @param node The AST node to check
206
+ * @returns `true` if the node is a class component, `false` otherwise
207
+ */
208
+ declare function isClassComponent(node: TSESTree.Node): node is AST.TSESTreeClass;
209
+ /**
210
+ * Check if a node is a React PureComponent
211
+ * @param node The AST node to check
212
+ * @returns `true` if the node is a pure component, `false` otherwise
213
+ */
214
+ declare function isPureComponent(node: TSESTree.Node): boolean;
215
+
146
216
  type ComponentKind = "classComponent" | "functionComponent";
147
217
 
148
218
  declare function isComponentDidCatch(node: TSESTree.Node): node is AST.TSESTreeMethodOrProperty;
@@ -168,18 +238,6 @@ declare function isComponentNameLoose(name: string): boolean;
168
238
  declare function getComponentNameFromId(id: TSESTree.Identifier | TSESTree.Identifier[] | _): string | undefined;
169
239
  declare function hasNoneOrLooseComponentName(context: RuleContext, fn: AST.TSESTreeFunction): boolean;
170
240
 
171
- type ComponentEffectPhaseKind = "cleanup" | "setup";
172
- type ComponentLifecyclePhaseKind = "mount" | "unmount";
173
- type ComponentPhaseKind = ComponentEffectPhaseKind | ComponentLifecyclePhaseKind;
174
- declare const ComponentPhaseRelevance: birecord.BiRecord<{
175
- readonly mount: "unmount";
176
- readonly setup: "cleanup";
177
- }>;
178
- declare const isInversePhase: {
179
- (a: ComponentPhaseKind): (b: ComponentPhaseKind) => boolean;
180
- (a: ComponentPhaseKind, b: ComponentPhaseKind): boolean;
181
- };
182
-
183
241
  /**
184
242
  * Check whether given node is a render function of a class component
185
243
  * @example
@@ -289,63 +347,8 @@ declare function isComponentWrapperCall(context: RuleContext, node: TSESTree.Nod
289
347
  */
290
348
  declare function isComponentWrapperCallLoose(context: RuleContext, node: TSESTree.Node): boolean;
291
349
 
292
- /**
293
- * Determines whether inside `createElement`'s children.
294
- * @param context The rule context
295
- * @param node The AST node to check
296
- * @returns `true` if the node is inside createElement's children
297
- */
298
- declare function isChildrenOfCreateElement(context: RuleContext, node: TSESTree.Node): boolean;
299
- /**
300
- * Check whether given node is declared inside class component's render block
301
- * ```tsx
302
- * class Component extends React.Component {
303
- * render() {
304
- * class NestedClassComponent extends React.Component {
305
- * render() { return <div />; }
306
- * }
307
- * const nestedFunctionComponent = () => <div />;
308
- * }
309
- * }
310
- * ```
311
- * @param node The AST node being checked
312
- * @returns `true` if node is inside class component's render block, `false` if not
313
- */
314
- declare function isInsideRenderMethod(node: TSESTree.Node): boolean;
315
- declare function isFunctionOfComponentDidMount(node: TSESTree.Node): boolean;
316
- declare function isFunctionOfComponentWillUnmount(node: TSESTree.Node): boolean;
317
- /**
318
- * Check whether given node is a function of a render method of a class component
319
- * @example
320
- * ```tsx
321
- * class Component extends React.Component {
322
- * renderHeader = () => <div />;
323
- * renderFooter = () => <div />;
324
- * }
325
- * ```
326
- * @param node The AST node to check
327
- * @returns `true` if node is a render function, `false` if not
328
- */
329
- declare function isFunctionOfRenderMethod(node: AST.TSESTreeFunction): boolean;
330
-
331
- /**
332
- * Check if a node is a React class component
333
- * @param node The AST node to check
334
- * @returns `true` if the node is a class component, `false` otherwise
335
- */
336
- declare function isClassComponent(node: TSESTree.Node): node is AST.TSESTreeClass;
337
- /**
338
- * Check if a node is a React PureComponent
339
- * @param node The AST node to check
340
- * @returns `true` if the node is a pure component, `false` otherwise
341
- */
342
- declare function isPureComponent(node: TSESTree.Node): boolean;
343
-
344
350
  type EffectKind = "useEffect" | "useLayoutEffect" | "useInsertionEffect";
345
351
 
346
- declare function isFunctionOfUseEffectSetup(node: TSESTree.Node | _): boolean;
347
- declare function isFunctionOfUseEffectCleanup(node: TSESTree.Node | _): boolean;
348
-
349
352
  interface Hook extends SemanticNode {
350
353
  id: TSESTree.Identifier | _;
351
354
  node: AST.TSESTreeFunction;
@@ -363,15 +366,8 @@ declare namespace useHookCollector {
363
366
  }
364
367
  declare function useHookCollector(): useHookCollector.ReturnType;
365
368
 
366
- type HookKind = "custom" | "useActionState" | "useCallback" | "useContext" | "useDebugValue" | "useDeferredValue" | "useEffect" | "useId" | "useImperativeHandle" | "useInsertionEffect" | "useLayoutEffect" | "useMemo" | "useOptimistic" | "useReducer" | "useRef" | "useState" | "useSyncExternalStore" | "useTransition";
367
-
368
- /**
369
- * Catch all identifiers that begin with "use" followed by an uppercase Latin
370
- * character to exclude identifiers like "user".
371
- * @param name The name of the identifier to check.
372
- * @see https://github.com/facebook/react/blob/1d6c8168db1d82713202e842df3167787ffa00ed/packages/eslint-plugin-react-hooks/src/rules/RulesOfHooks.ts#L16
373
- */
374
- declare function isReactHookName(name: string): boolean;
369
+ declare function isFunctionOfUseEffectSetup(node: TSESTree.Node | _): boolean;
370
+ declare function isFunctionOfUseEffectCleanup(node: TSESTree.Node | _): boolean;
375
371
 
376
372
  declare function isReactHook(node: AST.TSESTreeFunction | _): boolean;
377
373
  /**
@@ -404,13 +400,116 @@ declare const isUseStateCall: (context: RuleContext, node: TSESTree.Node | undef
404
400
  declare const isUseSyncExternalStoreCall: (context: RuleContext, node: TSESTree.Node | undefined) => boolean;
405
401
  declare const isUseTransitionCall: (context: RuleContext, node: TSESTree.Node | undefined) => boolean;
406
402
 
407
- interface SemanticEntry {
408
- node: TSESTree.Node;
409
- phase: ComponentPhaseKind;
410
- }
403
+ type HookKind = "custom" | "useActionState" | "useCallback" | "useContext" | "useDebugValue" | "useDeferredValue" | "useEffect" | "useId" | "useImperativeHandle" | "useInsertionEffect" | "useLayoutEffect" | "useMemo" | "useOptimistic" | "useReducer" | "useRef" | "useState" | "useSyncExternalStore" | "useTransition";
404
+
405
+ /**
406
+ * Catch all identifiers that begin with "use" followed by an uppercase Latin
407
+ * character to exclude identifiers like "user".
408
+ * @param name The name of the identifier to check.
409
+ * @see https://github.com/facebook/react/blob/1d6c8168db1d82713202e842df3167787ffa00ed/packages/eslint-plugin-react-hooks/src/rules/RulesOfHooks.ts#L16
410
+ */
411
+ declare function isReactHookName(name: string): boolean;
412
+
413
+ /**
414
+ * Get the JSX attribute node with the given name
415
+ * @param context The ESLint rule context
416
+ * @param name The name of the attribute
417
+ * @param attributes The attributes to search
418
+ * @param initialScope The initial scope to use for variable resolution
419
+ * @returns The JSX attribute node or undefined
420
+ */
421
+ declare function getAttribute(context: RuleContext, name: string, attributes: (TSESTree$1.JSXAttribute | TSESTree$1.JSXSpreadAttribute)[], initialScope?: Scope): TSESTree$1.JSXAttribute | TSESTree$1.JSXSpreadAttribute | _;
422
+
423
+ /**
424
+ * Get the stringified name of a JSX attribute
425
+ * @param context The ESLint rule context
426
+ * @param node The JSX attribute node
427
+ * @returns The name of the attribute
428
+ */
429
+ declare function getAttributeName(context: RuleContext, node: TSESTree$1.JSXAttribute): string;
430
+
431
+ /**
432
+ * Get a StaticValue of the attribute value
433
+ * @param context The rule context
434
+ * @param node The JSX attribute node
435
+ * @param name The name of the attribute
436
+ * @returns The StaticValue of the attribute value
437
+ */
438
+ declare function getAttributeValue(context: RuleContext, node: TSESTree$1.JSXAttribute | TSESTree$1.JSXSpreadAttribute, name: string): Exclude<VAR.LazyValue, {
439
+ kind: "lazy";
440
+ }>;
441
+
442
+ type JSXDetectionHint = bigint;
443
+ declare const JSXDetectionHint: {
444
+ readonly None: 0n;
445
+ readonly SkipUndefined: bigint;
446
+ readonly SkipNullLiteral: bigint;
447
+ readonly SkipBooleanLiteral: bigint;
448
+ readonly SkipStringLiteral: bigint;
449
+ readonly SkipNumberLiteral: bigint;
450
+ readonly SkipBigIntLiteral: bigint;
451
+ readonly SkipEmptyArray: bigint;
452
+ readonly SkipCreateElement: bigint;
453
+ readonly StrictArray: bigint;
454
+ readonly StrictLogical: bigint;
455
+ readonly StrictConditional: bigint;
456
+ };
457
+ declare const DEFAULT_JSX_DETECTION_HINT: bigint;
458
+
459
+ type TSESTreeJSX = TSESTree$1.JSXAttribute | TSESTree$1.JSXClosingElement | TSESTree$1.JSXClosingFragment | TSESTree$1.JSXElement | TSESTree$1.JSXEmptyExpression | TSESTree$1.JSXExpressionContainer | TSESTree$1.JSXFragment | TSESTree$1.JSXIdentifier | TSESTree$1.JSXMemberExpression | TSESTree$1.JSXNamespacedName | TSESTree$1.JSXOpeningElement | TSESTree$1.JSXOpeningFragment | TSESTree$1.JSXSpreadAttribute | TSESTree$1.JSXSpreadChild | TSESTree$1.JSXText;
460
+ declare const isJSX: (node: TSESTree$1.Node | null | undefined) => node is TSESTree$1.JSXIdentifier | TSESTree$1.JSXMemberExpression | TSESTree$1.JSXNamespacedName | TSESTree$1.JSXOpeningElement | TSESTree$1.JSXClosingElement | TSESTree$1.JSXOpeningFragment | TSESTree$1.JSXClosingFragment | TSESTree$1.JSXText | TSESTree$1.JSXAttribute | TSESTree$1.JSXSpreadAttribute | TSESTree$1.JSXElement | TSESTree$1.JSXFragment | TSESTree$1.JSXEmptyExpression | TSESTree$1.JSXExpressionContainer | TSESTree$1.JSXSpreadChild;
461
+ /**
462
+ * Check if a node is a `JSXText` or a `Literal` node
463
+ * @param node The AST node to check
464
+ * @returns `true` if the node is a `JSXText` or a `Literal` node
465
+ */
466
+ declare function isJsxText(node: TSESTree$1.Node | null | _): node is TSESTree$1.JSXText | TSESTree$1.Literal;
467
+ /**
468
+ * Heuristic decision to determine if a node is a JSX-like node.
469
+ * @param code The sourceCode object
470
+ * @param code.getScope The function to get the scope of a node
471
+ * @param node The AST node to check
472
+ * @param hint The `JSXDetectionHint` to use
473
+ * @returns boolean
474
+ */
475
+ declare function isJsxLike(code: {
476
+ getScope: (node: TSESTree$1.Node) => Scope;
477
+ }, node: TSESTree$1.Node | _ | null, hint?: JSXDetectionHint): boolean;
478
+
479
+ /**
480
+ * Get the stringified type of a JSX element
481
+ * @param context The ESLint rule context
482
+ * @param node The JSX element node
483
+ * @returns The type of the element
484
+ */
485
+ declare function getElementType(context: RuleContext, node: TSESTree.JSXElement | TSESTree.JSXFragment): string;
486
+
487
+ declare function hasAttribute(context: RuleContext, name: string, attributes: TSESTree.JSXOpeningElement["attributes"], initialScope?: Scope): boolean;
488
+ declare function hasAnyAttribute(context: RuleContext, names: string[], attributes: TSESTree.JSXOpeningElement["attributes"], initialScope?: Scope): boolean;
489
+ declare function hasEveryAttribute(context: RuleContext, names: string[], attributes: TSESTree.JSXOpeningElement["attributes"], initialScope?: Scope): boolean;
490
+
491
+ /**
492
+ * Find the parent JSX attribute node of a node
493
+ * @param node The node to find the parent attribute of
494
+ * @param test The test to apply to the parent attribute
495
+ * @returns The parent attribute node or undefined
496
+ */
497
+ declare function findParentAttribute(node: TSESTree.Node, test?: (node: TSESTree.JSXAttribute) => boolean): TSESTree.JSXAttribute | _;
498
+
499
+ declare function isHostElement(context: RuleContext, node: TSESTree.Node): boolean;
500
+ declare function isKeyedElement(context: RuleContext, node: TSESTree.Node, initialScope?: Scope): boolean;
501
+ declare function isFragmentElement(context: RuleContext, node: TSESTree.Node | null | _, allowJSXFragment?: false): node is TSESTree.JSXElement;
502
+ declare function isFragmentElement(context: RuleContext, node: TSESTree.Node | null | _, allowJSXFragment?: true): node is TSESTree.JSXElement | TSESTree.JSXFragment;
503
+
504
+ /**
505
+ * Get the stringified representation of a JSX node
506
+ * @param node The JSX node
507
+ * @returns The stringified representation
508
+ */
509
+ declare function stringifyJsx(node: TSESTree$1.JSXIdentifier | TSESTree$1.JSXMemberExpression | TSESTree$1.JSXNamespacedName | TSESTree$1.JSXOpeningElement | TSESTree$1.JSXClosingElement | TSESTree$1.JSXOpeningFragment | TSESTree$1.JSXClosingFragment | TSESTree$1.JSXText): string;
411
510
 
412
511
  /** @internal */
413
- declare function getInstanceId(node: TSESTree.Node, prev?: TSESTree.Node): TSESTree.Identifier | TSESTree.ArrayExpression | TSESTree.ArrayPattern | TSESTree.ArrowFunctionExpression | TSESTree.AssignmentExpression | TSESTree.AwaitExpression | TSESTree.BinaryExpression | TSESTree.CallExpression | TSESTree.ChainExpression | TSESTree.ClassExpression | TSESTree.ConditionalExpression | TSESTree.FunctionExpression | TSESTree.ImportExpression | TSESTree.JSXElement | TSESTree.JSXFragment | TSESTree.BigIntLiteral | TSESTree.BooleanLiteral | TSESTree.NullLiteral | TSESTree.NumberLiteral | TSESTree.RegExpLiteral | TSESTree.StringLiteral | TSESTree.LogicalExpression | TSESTree.MemberExpressionComputedName | TSESTree.MemberExpressionNonComputedName | TSESTree.MetaProperty | TSESTree.NewExpression | TSESTree.ObjectExpression | TSESTree.ObjectPattern | TSESTree.PrivateIdentifier | TSESTree.SequenceExpression | TSESTree.Super | TSESTree.TaggedTemplateExpression | TSESTree.TemplateLiteral | TSESTree.ThisExpression | TSESTree.TSAsExpression | TSESTree.TSInstantiationExpression | TSESTree.TSNonNullExpression | TSESTree.TSSatisfiesExpression | TSESTree.TSTypeAssertion | TSESTree.UnaryExpression | TSESTree.UpdateExpression | TSESTree.YieldExpression | undefined;
512
+ declare function getInstanceId(node: TSESTree.Node, prev?: TSESTree.Node): TSESTree.ArrayExpression | TSESTree.ArrayPattern | TSESTree.ArrowFunctionExpression | TSESTree.AssignmentExpression | TSESTree.AwaitExpression | TSESTree.BinaryExpression | TSESTree.CallExpression | TSESTree.ChainExpression | TSESTree.ClassExpression | TSESTree.ConditionalExpression | TSESTree.FunctionExpression | TSESTree.Identifier | TSESTree.ImportExpression | TSESTree.JSXElement | TSESTree.JSXFragment | TSESTree.BigIntLiteral | TSESTree.BooleanLiteral | TSESTree.NullLiteral | TSESTree.NumberLiteral | TSESTree.RegExpLiteral | TSESTree.StringLiteral | TSESTree.TemplateLiteral | TSESTree.LogicalExpression | TSESTree.MemberExpressionComputedName | TSESTree.MemberExpressionNonComputedName | TSESTree.MetaProperty | TSESTree.NewExpression | TSESTree.ObjectExpression | TSESTree.ObjectPattern | TSESTree.SequenceExpression | TSESTree.Super | TSESTree.TaggedTemplateExpression | TSESTree.ThisExpression | TSESTree.TSAsExpression | TSESTree.TSInstantiationExpression | TSESTree.TSNonNullExpression | TSESTree.TSSatisfiesExpression | TSESTree.TSTypeAssertion | TSESTree.UnaryExpression | TSESTree.UpdateExpression | TSESTree.YieldExpression | TSESTree.PrivateIdentifier | undefined;
414
513
 
415
514
  /** @internal */
416
515
  declare function isFromReactLoose(node: TSESTree.Node | _, name: string): boolean;
@@ -482,4 +581,4 @@ declare const isForwardRefCall: isCallFromReact.ReturnType;
482
581
  declare const isMemoCall: isCallFromReact.ReturnType;
483
582
  declare const isLazyCall: isCallFromReact.ReturnType;
484
583
 
485
- export { type ClassComponent, type Component, ComponentDetectionHint, type ComponentEffectPhaseKind, ComponentFlag, type ComponentKind, type ComponentLifecyclePhaseKind, type ComponentPhaseKind, ComponentPhaseRelevance, type ComponentStateKind, DEFAULT_COMPONENT_DETECTION_HINT, type EffectKind, type FunctionComponent, type Hook, type HookKind, type SemanticEntry, type SemanticNode, getComponentFlagFromInitPath, getComponentNameFromId, getFunctionComponentId, getInstanceId, hasNoneOrLooseComponentName, isAssignmentToThisState, isCallFromReact, isCallFromReactObject, isCaptureOwnerStack, isCaptureOwnerStackCall, isChildrenCount, isChildrenCountCall, isChildrenForEach, isChildrenForEachCall, isChildrenMap, isChildrenMapCall, isChildrenOfCreateElement, isChildrenOnly, isChildrenOnlyCall, isChildrenToArray, isChildrenToArrayCall, isClassComponent, isCloneElement, isCloneElementCall, isComponentDidCatch, isComponentDidMount, isComponentDidUpdate, isComponentName, isComponentNameLoose, isComponentWillMount, isComponentWillReceiveProps, isComponentWillUnmount, isComponentWillUpdate, isComponentWrapperCall, isComponentWrapperCallLoose, isCreateContext, isCreateContextCall, isCreateElement, isCreateElementCall, isCreateRef, isCreateRefCall, isDeclaredInRenderPropLoose, isDirectValueOfRenderPropertyLoose, isForwardRef, isForwardRefCall, isFromReact, isFromReactLoose, isFromReactObject, isFromReactStrict, isFunctionOfComponentDidMount, isFunctionOfComponentWillUnmount, isFunctionOfRender, isFunctionOfRenderMethod, isFunctionOfUseEffectCleanup, isFunctionOfUseEffectSetup, isGetChildContext, isGetDefaultProps, isGetDerivedStateFromError, isGetDerivedStateFromProps, isGetInitialState, isGetSnapshotBeforeUpdate, isInitializedFromReact, isInsideRenderMethod, isInstanceIdEqual, isInversePhase, isLazy, isLazyCall, isMemo, isMemoCall, isPureComponent, isReactAPI, isReactAPICall, isReactHook, isReactHookCall, isReactHookCallWithName, isReactHookCallWithNameAlias, isReactHookCallWithNameLoose, isReactHookName, isRenderFunctionLoose, isRenderLike, isRenderMethodLike, isRenderPropLoose, isShouldComponentUpdate, isThisSetState, isUnsafeComponentWillMount, isUnsafeComponentWillReceiveProps, isUnsafeComponentWillUpdate, isUseActionStateCall, isUseCall, isUseCallbackCall, isUseContextCall, isUseDebugValueCall, isUseDeferredValueCall, isUseEffectCall, isUseEffectCallLoose, isUseFormStatusCall, isUseIdCall, isUseImperativeHandleCall, isUseInsertionEffectCall, isUseLayoutEffectCall, isUseMemoCall, isUseOptimisticCall, isUseReducerCall, isUseRefCall, isUseStateCall, isUseSyncExternalStoreCall, isUseTransitionCall, isValidComponentDefinition, useComponentCollector, useComponentCollectorLegacy, useHookCollector };
584
+ export { type ClassComponent, type Component, ComponentDetectionHint, type ComponentEffectPhaseKind, ComponentFlag, type ComponentKind, type ComponentLifecyclePhaseKind, type ComponentPhaseKind, ComponentPhaseRelevance, type ComponentStateKind, DEFAULT_COMPONENT_DETECTION_HINT, DEFAULT_JSX_DETECTION_HINT, type EffectKind, type FunctionComponent, type Hook, type HookKind, JSXDetectionHint, type SemanticEntry, type SemanticNode, type TSESTreeJSX, findParentAttribute, getAttribute, getAttributeName, getAttributeValue, getComponentFlagFromInitPath, getComponentNameFromId, getElementType, getFunctionComponentId, getInstanceId, hasAnyAttribute, hasAttribute, hasEveryAttribute, hasNoneOrLooseComponentName, isAssignmentToThisState, isCallFromReact, isCallFromReactObject, isCaptureOwnerStack, isCaptureOwnerStackCall, isChildrenCount, isChildrenCountCall, isChildrenForEach, isChildrenForEachCall, isChildrenMap, isChildrenMapCall, isChildrenOfCreateElement, isChildrenOnly, isChildrenOnlyCall, isChildrenToArray, isChildrenToArrayCall, isClassComponent, isCloneElement, isCloneElementCall, isComponentDidCatch, isComponentDidMount, isComponentDidUpdate, isComponentName, isComponentNameLoose, isComponentWillMount, isComponentWillReceiveProps, isComponentWillUnmount, isComponentWillUpdate, isComponentWrapperCall, isComponentWrapperCallLoose, isCreateContext, isCreateContextCall, isCreateElement, isCreateElementCall, isCreateRef, isCreateRefCall, isDeclaredInRenderPropLoose, isDirectValueOfRenderPropertyLoose, isForwardRef, isForwardRefCall, isFragmentElement, isFromReact, isFromReactLoose, isFromReactObject, isFromReactStrict, isFunctionOfComponentDidMount, isFunctionOfComponentWillUnmount, isFunctionOfRender, isFunctionOfRenderMethod, isFunctionOfUseEffectCleanup, isFunctionOfUseEffectSetup, isGetChildContext, isGetDefaultProps, isGetDerivedStateFromError, isGetDerivedStateFromProps, isGetInitialState, isGetSnapshotBeforeUpdate, isHostElement, isInitializedFromReact, isInsideRenderMethod, isInstanceIdEqual, isInversePhase, isJSX, isJsxLike, isJsxText, isKeyedElement, isLazy, isLazyCall, isMemo, isMemoCall, isPureComponent, isReactAPI, isReactAPICall, isReactHook, isReactHookCall, isReactHookCallWithName, isReactHookCallWithNameAlias, isReactHookCallWithNameLoose, isReactHookName, isRenderFunctionLoose, isRenderLike, isRenderMethodLike, isRenderPropLoose, isShouldComponentUpdate, isThisSetState, isUnsafeComponentWillMount, isUnsafeComponentWillReceiveProps, isUnsafeComponentWillUpdate, isUseActionStateCall, isUseCall, isUseCallbackCall, isUseContextCall, isUseDebugValueCall, isUseDeferredValueCall, isUseEffectCall, isUseEffectCallLoose, isUseFormStatusCall, isUseIdCall, isUseImperativeHandleCall, isUseInsertionEffectCall, isUseLayoutEffectCall, isUseMemoCall, isUseOptimisticCall, isUseReducerCall, isUseRefCall, isUseStateCall, isUseSyncExternalStoreCall, isUseTransitionCall, isValidComponentDefinition, stringifyJsx, useComponentCollector, useComponentCollectorLegacy, useHookCollector };