import { ScopeManager } from "../scopeManager"; import * as ESTree from "estree"; import { ModuleScope } from "../scope"; import { RefsToModuleExtractor } from "./childScopesTraverser"; import { Variable } from "../variable"; import { VirtualScope } from "./virtualScope"; export interface Dictionary<T> { [index: string]: T; } export interface ExportInfo { sourceName: string | true; moduleName: string; } export declare class ModuleAnalyser { readonly name: string; readonly module: any; scopeManager: ScopeManager | null; readonly extractorMap: Map<string, RefsToModuleExtractor>; readonly virtualScopeMap: WeakMap<Variable, VirtualScope>; readonly virtualScopes: VirtualScope[]; readonly initVirtualScopes: VirtualScope[]; private comments; constructor(name: string, module: any, scopeManager?: ScopeManager | null); defaultOptions(): { optimistic: boolean; directive: boolean; nodejsScope: boolean; impliedStrict: boolean; sourceType: string; ecmaVersion: number; childVisitorKeys: null; fallback: string; comments: never[]; }; analyze(tree: ESTree.Node, providedOptions?: any): void; private processComments; private handleExportDefaultDeclaration; generateExportInfo(usedExports: string[]): Dictionary<boolean | string[] | Set<string>>; private traverseIndependentScopes; private handleNotExportReferences; private updateDeeply; readonly moduleScope: ModuleScope; }