/**
* @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 { CompileMetadataResolver, HtmlParser, NgAnalyzedModules, ParseTreeResult, ResourceLoader } from '@angular/compiler';
import * as ts from 'typescript';
import { AstResult, TemplateInfo } from './common';
import { Declarations, LanguageService, LanguageServiceHost, TemplateSource, TemplateSources } from './types';
/**
* Create a `LanguageServiceHost`
*/
export declare function createLanguageServiceFromTypescript(host: ts.LanguageServiceHost, service: ts.LanguageService): LanguageService;
/**
* The language service never needs the normalized versions of the metadata. To avoid parsing
* the content and resolving references, return an empty file. This also allows normalizing
* template that are syntatically incorrect which is required to provide completions in
* syntactically incorrect templates.
*/
export declare class DummyHtmlParser extends HtmlParser {
parse(): ParseTreeResult;
}
/**
* Avoid loading resources in the language servcie by using a dummy loader.
*/
export declare class DummyResourceLoader extends ResourceLoader {
get(url: string): Promise;
}
/**
* An implementation of a `LanguageServiceHost` for a TypeScript project.
*
* The `TypeScriptServiceHost` implements the Angular `LanguageServiceHost` using
* the TypeScript language services.
*
* @publicApi
*/
export declare class TypeScriptServiceHost implements LanguageServiceHost {
private host;
private tsService;
private _resolver;
private _staticSymbolCache;
private _summaryResolver;
private _staticSymbolResolver;
private _reflector;
private _reflectorHost;
private _checker;
private context;
private lastProgram;
private modulesOutOfDate;
private analyzedModules;
private fileToComponent;
private templateReferences;
private collectedErrors;
private fileVersions;
constructor(host: ts.LanguageServiceHost, tsService: ts.LanguageService);
/**
* Angular LanguageServiceHost implementation
*/
readonly resolver: CompileMetadataResolver;
getTemplateReferences(): string[];
getTemplateAt(fileName: string, position: number): TemplateSource | undefined;
getAnalyzedModules(): NgAnalyzedModules;
private ensureAnalyzedModules;
getTemplates(fileName: string): TemplateSources;
getDeclarations(fileName: string): Declarations;
getSourceFile(fileName: string): ts.SourceFile | undefined;
updateAnalyzedModules(): void;
private readonly program;
private readonly checker;
private validate;
private clearCaches;
private ensureTemplateMap;
private getSourceFromDeclaration;
private getSourceFromNode;
private getSourceFromType;
private readonly reflectorHost;
private collectError;
private readonly staticSymbolResolver;
private readonly reflector;
private getTemplateClassFromStaticSymbol;
private static missingTemplate;
/**
* Given a template string node, see if it is an Angular template string, and if so return the
* containing class.
*/
private getTemplateClassDeclFromNode;
private getCollectedErrors;
private getDeclarationFromNode;
private stringOf;
private findNode;
getTemplateAstAtPosition(fileName: string, position: number): TemplateInfo | undefined;
getTemplateAst(template: TemplateSource, contextFile: string): AstResult;
}