import type { NodePath } from "@babel/traverse"; import type * as t from "@babel/types"; export declare class JSXAttributeUtils { private types; constructor(types: typeof t); hasAttribute(path: NodePath, attributeName: string): boolean; getAttributeValue(path: NodePath, attributeName: string): t.JSXAttribute["value"] | null; getAttributeStringValue(path: NodePath, attributeName: string): string | null; addStringAttribute(path: NodePath, attributeName: string, value: string): void; addExpressionAttribute(path: NodePath, attributeName: string, expression: t.Expression): void; findAncestorWithAttribute(path: NodePath, attributeName: string): NodePath | null; } export declare class PathNavigationUtils { private types; constructor(types: typeof t); findParentJSXElement(path: NodePath): NodePath | null; findEnclosingFunction(path: NodePath): NodePath | null; findReturnStatement(path: NodePath): NodePath | null; isRootReturnElement(path: NodePath): boolean; findDOMElementTarget(path: NodePath): NodePath | null; private isDOMOrAllowedElement; } export declare class ExpressionAnalysisUtils { private types; constructor(types: typeof t); isIdAccess(node: t.Expression): boolean; isItemsAccess(node: t.Expression): boolean; isLengthAccess(node: t.Expression): boolean; extractRootIdentifier(node: t.Expression): t.Identifier | null; unwrapLogicalExpression(node: t.Expression): t.Expression; collectMemberExpressionPath(node: t.Expression): string[]; createOptionalChainExpression(node: t.MemberExpression): t.OptionalMemberExpression; getFieldPathFromExpression(node: t.Expression, rootName: string): string | null; } export declare class BindingUtils { private types; constructor(types: typeof t); isFunctionParameter(identifierName: string, path: NodePath): boolean; isUseStateCall(init: NodePath): { stateIndex: number; setterName: string | null; } | null; isPromiseAllCall(init: NodePath): boolean; private isPromiseAllCallee; extractDestructuredProperties(pattern: t.ObjectPattern): string[]; findSetterCallInScope(setterName: string, scope: NodePath): NodePath | null; } export declare class CallExpressionUtils { private types; constructor(types: typeof t); isGetAllCall(node: t.CallExpression): { collectionName: string; references: string[]; } | null; isGetByIdCall(node: t.CallExpression): { collectionName: string; multiRefFields: string[]; } | null; private extractReferencesFromArg; private extractMultiRefFromOptions; isArrayMethod(node: t.CallExpression, methodName: string): boolean; isChainedArrayMethod(node: t.CallExpression): boolean; /** * Detect base44.entities.EntityName.list() or .getAll() patterns. * Returns the entity name as the collection name. */ isBase44EntityListCall(node: t.CallExpression): { collectionName: string; } | null; /** * Detect base44.entities.EntityName.getById() or .get() patterns. */ isBase44EntityGetCall(node: t.CallExpression): { collectionName: string; } | null; getCallbackArgument(callExpr: t.CallExpression): t.ArrowFunctionExpression | t.FunctionExpression | null; } export declare class StaticValueUtils { private types; constructor(types: typeof t); isPrimitiveLiteral(path: NodePath): boolean; isStaticValue(path: NodePath, visited?: Set): boolean; isStaticIdentifier(path: NodePath, visited?: Set): boolean; isStaticObject(path: NodePath, visited?: Set): boolean; isStaticArrayExpression(arrayExpression: NodePath, visited?: Set): boolean; isDerivedFromStaticData(identifierName: string, path: NodePath): boolean; } export declare class TypeCheckUtils { private types; constructor(types: typeof t); isArrayIsArrayCheck(node: t.Expression): boolean; isTypeofObjectCheck(node: t.Expression): boolean; isReferenceTypeCheck(node: t.Expression): boolean; isLengthCheck(node: t.Expression): boolean; } //# sourceMappingURL=shared-utils.d.ts.map