import ts from 'typescript'; export interface ConcatenatorContext { readonly typeChecker: ts.TypeChecker; readonly program: ts.Program; readonly languageService: ts.LanguageService; readonly isExternalFile: (node: ts.SourceFile, importPath: string, decl: ts.ImportDeclaration | ts.ExportDeclaration) => boolean; readonly getSymbol?: (node: ts.Node) => ts.Symbol | undefined; } export interface ConcatenatorOptions { readonly context: ConcatenatorContext; readonly sourceFile: ts.SourceFile; } export declare class Concatenator { readonly sourceFiles: readonly ts.SourceFile[]; private readonly sourceFile; private readonly sourceFileExportSymbols; private readonly context; private readonly duplicateIdentifiers; private readonly sourceFileImported; private readonly sourceFileToImports; constructor(options: ConcatenatorOptions); readonly substituteNode: (_hint: ts.EmitHint, node: ts.Node) => ts.Node; private getCombinedImport; private getAllSourceFiles; private getAllSourceFilesWorker; private getAllDuplicateIdentifiers; private getAllIdentifiersForFile; private consolidateAllImports; private consolidateAllImportsForFile; private consolidateImports; private filterModifiers; private getIdentifierForIdentifier; private getIdentifierForNode; private getIdentifierForSymbol; private getIdentifierStringForSymbol; private isEntryNode; private isExportedEntryNode; private isExportedNode; private isExportedSymbol; private isDuplicateIdentifier; private isContainerSourceFileForDeclaration; private isContainerSourceFileForDeclarationSymbol; private isContainerSourceFile; private isExternalFileImportExport; private getSymbol; }