import * as ts from 'typescript'; import { ResourceResolver } from './resource-resolver'; import { PipeSymbol } from './pipe-symbol'; import { DirectiveSymbol } from './directive-symbol'; import { ModuleSymbol } from './module-symbol'; import { ProviderSymbol } from './provider-symbol'; export interface ErrorReporter { (error: any, path: string): void; } /** * Creates a proxy which provides us access to the symbols * defined in given context (could be lazy loaded module or the root module). * * @export * @class ProjectSymbols */ export declare class ProjectSymbols { private tsconfigPath; private resourceResolver; private errorReporter; private metadataResolver; private reflector; private summaryResolver; private staticSymbolResolver; private staticResolverHost; private pipeResolver; private directiveResolver; private urlResolver; private directiveNormalizer; private program; private compilerHost; private analyzedModules; private options; /** * Creates an instance of ProjectSymbols. * * @param {ts.Program} program * @param {ResourceResolver} resourceResolver * * @memberOf ProjectSymbols */ constructor(tsconfigPath: string, resourceResolver: ResourceResolver, errorReporter: ErrorReporter); /** * Returns the metadata associated to this module. * * @returns {ModuleSymbol[]} * * @memberOf ProjectSymbols */ getModules(): ModuleSymbol[]; /** * Returns all the directives available in the context. * * @returns {DirectiveSymbol[]} * * @memberOf ProjectSymbols */ getDirectives(): DirectiveSymbol[]; /** * Returns all the pipes available in this module. * * @returns {PipeSymbol[]} * * @memberOf ProjectSymbols */ getPipes(): PipeSymbol[]; /** * Returns all the providers available in this module. * * @returns {ProviderSymbol[]} * * @memberOf ProjectSymbols */ getProviders(): ProviderSymbol[]; /** * Returns directive based on `ClassDeclaration` node and a filename. * * @param {ts.ClassDeclaration} declaration * @param {string} fileName * * @memberOf DirectiveSymbol */ getDirectiveFromNode(declaration: ts.ClassDeclaration, fileName: string): DirectiveSymbol | null; private extractProgramSymbols(); private clearCaches(); private init(); }