/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
///
import * as ts from 'typescript';
import { Declaration, Import } from '../../../src/ngtsc/reflection';
import { Logger } from '../logging/logger';
import { BundleProgram } from '../packages/bundle_program';
import { Esm5ReflectionHost } from './esm5_host';
export declare class UmdReflectionHost extends Esm5ReflectionHost {
protected program: ts.Program;
protected compilerHost: ts.CompilerHost;
protected umdModules: Map;
protected umdExports: Map> | null>;
protected umdImportPaths: Map;
constructor(logger: Logger, isCore: boolean, program: ts.Program, compilerHost: ts.CompilerHost, dts?: BundleProgram | null);
getImportOfIdentifier(id: ts.Identifier): Import | null;
getDeclarationOfIdentifier(id: ts.Identifier): Declaration | null;
getExportsOfModule(module: ts.Node): Map | null;
getUmdModule(sourceFile: ts.SourceFile): UmdModule | null;
getUmdImportPath(importParameter: ts.ParameterDeclaration): string | null;
getUmdExports(sourceFile: ts.SourceFile): Map | null;
/** Get the top level statements for a module.
*
* In UMD modules these are the body of the UMD factory function.
*
* @param sourceFile The module whose statements we want.
* @returns An array of top level statements for the given module.
*/
protected getModuleStatements(sourceFile: ts.SourceFile): ts.Statement[];
private computeExportsOfUmdModule;
private extractUmdExportDeclaration;
private findUmdImportParameter;
private getUmdImportedDeclaration;
private resolveModuleName;
}
export declare function parseStatementForUmdModule(statement: ts.Statement): UmdModule | null;
export declare function getImportsOfUmdModule(umdModule: UmdModule): {
parameter: ts.ParameterDeclaration;
path: string;
}[];
interface UmdModule {
wrapperFn: ts.FunctionExpression;
factoryFn: ts.FunctionExpression;
}
export declare function stripParentheses(node: ts.Node): ts.Node;
export {};