| /** |
| * @license |
| * Copyright Google LLC 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 { FileSystem, WorkspacePath } from './file-system'; |
| import { LineAndCharacter } from './utils/line-mappings'; |
| export interface ResolvedResource { |
| /** Class declaration that contains this resource. */ |
| container: ts.ClassDeclaration | null; |
| /** File content of the given template. */ |
| content: string; |
| /** Start offset of the resource content (e.g. in the inline source file) */ |
| start: number; |
| /** Whether the given resource is inline or not. */ |
| inline: boolean; |
| /** Path to the file that contains this resource. */ |
| filePath: WorkspacePath; |
| /** |
| * Gets the character and line of a given position index in the resource. |
| * If the resource is declared inline within a TypeScript source file, the line and |
| * character are based on the full source file content. |
| */ |
| getCharacterAndLineOfPosition: (pos: number) => LineAndCharacter; |
| } |
| /** |
| * Collector that can be used to find Angular templates and stylesheets referenced within |
| * given TypeScript source files (inline or external referenced files) |
| */ |
| export declare class ComponentResourceCollector { |
| typeChecker: ts.TypeChecker; |
| private _fileSystem; |
| resolvedTemplates: ResolvedResource[]; |
| resolvedStylesheets: ResolvedResource[]; |
| constructor(typeChecker: ts.TypeChecker, _fileSystem: FileSystem); |
| visitNode(node: ts.Node): void; |
| private _visitClassDeclaration; |
| /** Resolves an external stylesheet by reading its content and computing line mappings. */ |
| resolveExternalStylesheet(filePath: WorkspacePath, container: ts.ClassDeclaration | null): ResolvedResource | null; |
| } |