import type { Refkey } from "@alloy-js/core"; import { TSLexicalScope } from "./ts-lexical-scope.js"; import { TSOutputSymbol } from "./ts-output-symbol.js"; export interface ImportedSymbol { local: TSOutputSymbol; target: TSOutputSymbol; } export type ImportRecords = Map>; export interface AddImportOptions { type?: boolean; } /** * A lexical scope for TypeScript which represents the top-level scope of a * module. Manages the module's imported and exported symbols. */ export declare class TSModuleScope extends TSLexicalScope { #private; get exportedSymbols(): Map; get importedSymbols(): Map; get importedModules(): ImportRecords; addImport(targetSymbol: TSOutputSymbol, targetModule: TSModuleScope, options?: AddImportOptions): TSOutputSymbol; /** * Decrement the refcount for an import previously registered via * {@link TSModuleScope.addImport | addImport}. When the last live consumer goes away, the local import * symbol is deleted, which removes it from the module's name spaces and * triggers name-conflict-resolver reconciliation. */ removeImport(targetSymbol: TSOutputSymbol, options?: AddImportOptions): void; getAllSymbols(): Set; get debugInfo(): Record; } //# sourceMappingURL=ts-module-scope.d.ts.map