/**
 * @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
 */
/// <amd-module name="@angular/core/schematics/utils/ng_component_template" />
import { Tree } from '@angular-devkit/schematics';
import ts from 'typescript';
export interface ResolvedTemplate {
    /** Class declaration that contains this template. */
    container: ts.ClassDeclaration;
    /** File content of the given template. */
    content: string;
    /** Start offset of the template content (e.g. in the inline source file) */
    start: number;
    /** Whether the given template is inline or not. */
    inline: boolean;
    /** Path to the file that contains this template. */
    filePath: string;
    /**
     * Gets the character and line of a given position index in the template.
     * If the template is declared inline within a TypeScript source file, the line and
     * character are based on the full source file content.
     */
    getCharacterAndLineOfPosition: (pos: number) => {
        character: number;
        line: number;
    };
}
/**
 * Visitor that can be used to determine Angular templates referenced within given
 * TypeScript source files (inline templates or external referenced templates)
 */
export declare class NgComponentTemplateVisitor {
    typeChecker: ts.TypeChecker;
    private _basePath;
    private _tree;
    resolvedTemplates: ResolvedTemplate[];
    constructor(typeChecker: ts.TypeChecker, _basePath: string, _tree: Tree);
    visitNode(node: ts.Node): void;
    private visitClassDeclaration;
}
