import * as t from '@babel/types'; type CompilerNodePath = { node: TNode; parentPath: CompilerNodePath | null; isVariableDeclarator: () => boolean; }; type ReplacePathNode = Omit & { node: TNode; }; export type ModuleInfoBinding = { type: 'import'; source: string; importedName: string; } | { type: 'var'; init: t.Expression | null; }; export interface ExtractedModuleInfo { bindings: Map; exports: Map; reExportAllSources: Array; } export declare function unwrapExpression(expr: t.Expression): t.Expression; export declare function getVariableDeclaratorForExpressionPath>(path: TPath): ReplacePathNode | null; /** * Recursively walk an AST node and collect referenced identifier-like names. * This avoids Babel path/scope allocation for module-level dependency scans. */ export declare function collectIdentifiersFromNode(node: t.Node): Set; export declare function collectIdentifiersFromPattern(node: t.LVal | t.Node | null | undefined): Array; export declare function collectLocalBindingsFromStatement(node: t.Statement | t.ModuleDeclaration, bindings: Set): void; export declare function extractModuleInfoFromAst(ast: t.File): ExtractedModuleInfo; export declare function buildDeclarationMap(ast: t.File): Map; export declare function buildDependencyGraph(declarationMap: Map, localBindings: Set): Map>; export declare function collectModuleLevelRefsFromNode(node: t.Node, localModuleLevelBindings: Set): Set; export declare function expandTransitively(bindings: Set, dependencyGraph: Map>): void; export declare function expandSharedDestructuredDeclarators(ast: t.File, refsByGroup: Map>, sharedBindings: Set): void; export declare function expandDestructuredDeclarations(ast: t.File, bindings: Set): void; export declare function removeBindingsTransitivelyDependingOn(bindings: Set, dependencyGraph: Map>, roots: Iterable): void; export declare function removeModuleLevelBindings(ast: t.File, namesToRemove: Set): void; export declare function retainModuleLevelDeclarations(ast: t.File, bindingsToKeep: Set): void; export declare function unwrapExportedDeclarations(ast: t.File): void; export declare function stripUnreferencedTopLevelExpressionStatements(ast: t.File): void; export {};