import type { AnyNode, Program } from "acorn"; export type JavaScriptLoaderOrigin = "global-object" | "node-process" | "commonjs-module" | "commonjs-require" | "node-module-namespace" | "create-require" | "get-builtin-module"; export type JavaScriptLoaderOrigins = number; export interface JavaScriptBinding { origins: JavaScriptLoaderOrigins; } export interface JavaScriptScope { readonly parent: JavaScriptScope | null; readonly functionScope: boolean; readonly bindings: Map; } export interface JavaScriptVariableAlias { readonly pattern: AnyNode; readonly initializer: AnyNode; } export interface JavaScriptAliasEscape { readonly target: AnyNode; readonly initializer: AnyNode; } export interface JavaScriptOpaqueLoaderBindings { readonly scopeByNode: WeakMap; readonly originsByNode: WeakMap; } export interface JavaScriptLoaderStructure { readonly aliasEscapes: readonly JavaScriptAliasEscape[]; readonly aliases: readonly JavaScriptVariableAlias[]; readonly bindings: JavaScriptOpaqueLoaderBindings; readonly calls: readonly AnyNode[]; readonly syntaxNodes: number; } export declare function inspectJavaScriptLoaderStructure(program: Program, maximum: number): JavaScriptLoaderStructure; export declare function loaderOrigin(origin: JavaScriptLoaderOrigin): JavaScriptLoaderOrigins; export declare function hasLoaderOrigin(origins: JavaScriptLoaderOrigins, origin: JavaScriptLoaderOrigin): boolean; export declare function resolveJavaScriptBinding(scope: JavaScriptScope, name: string): JavaScriptBinding | null; export declare function nodeName(node: AnyNode): string | null; //# sourceMappingURL=javascript-loader-scope.d.ts.map