import type { Binding, NodePath } from '@babel/traverse'; import * as t from '@babel/types'; export declare class ImportDiscovery { static readonly programCache: Map>; static readonly resolvedCache: Map>; static clearCacheForFile(filePath: string): void; /** * Checks if a JSX element is a class (custom element) or string literal (static element). * Returns true if it's a custom element (class) or static element (string literal). */ isDynamicOrCustomELement(path: NodePath): boolean; /** * Checks if a JSX element is specifically a class (not a string literal). * Returns true only for class declarations/expressions, false otherwise. * Used to determine if .tagName accessor should be used. */ isClassByImportDiscovery(path: NodePath): boolean; /** * Recursively follows a binding to determine if it resolves to a class (not a string literal). */ protected isClass(programPath: NodePath, binding: Binding): boolean; /** * Recursively follows a binding to determine if it resolves to a class or string literal. */ protected isClassOrStringLiteral(programPath: NodePath, binding: Binding): boolean; protected followExportChain(programPath: NodePath, importedName: string): { programPath: NodePath; binding: Binding; } | undefined; protected getProgramPathFromFile(filePath: string): NodePath | undefined; protected resolveSourcePath(programPath: NodePath, source: string): string; } export declare const isDynamicOrCustomElement: (...args: Parameters) => ReturnType; export declare const isClassByImportDiscovery: (...args: Parameters) => ReturnType; //# sourceMappingURL=import-discovery.d.ts.map