///
/**
* @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 { Path, virtualFs } from '@angular-devkit/core';
import { Stats } from 'fs';
import * as ts from 'typescript';
import { NgccProcessor } from './ngcc_processor';
import { WebpackResourceLoader } from './resource_loader';
export interface OnErrorFn {
(message: string): void;
}
export declare class WebpackCompilerHost implements ts.CompilerHost {
private _options;
private readonly cacheSourceFiles;
private readonly directTemplateLoading;
private readonly ngccProcessor?;
private readonly moduleResolutionCache?;
private _syncHost;
private _memoryHost;
private _changedFiles;
private _readResourceFiles;
private _basePath;
private _resourceLoader?;
private _sourceFileCache;
private _virtualFileExtensions;
private _virtualStyleFileExtensions;
constructor(_options: ts.CompilerOptions, basePath: string, host: virtualFs.Host, cacheSourceFiles: boolean, directTemplateLoading?: boolean, ngccProcessor?: NgccProcessor | undefined, moduleResolutionCache?: ts.ModuleResolutionCache | undefined);
private readonly virtualFiles;
denormalizePath(path: string): string;
resolve(path: string): Path;
resetChangedFileTracker(): void;
getChangedFilePaths(): string[];
getNgFactoryPaths(): string[];
invalidate(fileName: string): void;
fileExists(fileName: string, delegate?: boolean): boolean;
readFile(fileName: string): string | undefined;
readFileBuffer(fileName: string): Buffer;
private _makeStats;
stat(path: string): Stats | null;
directoryExists(directoryName: string): boolean;
getDirectories(path: string): string[];
getSourceFile(fileName: string, languageVersion: ts.ScriptTarget, onError?: OnErrorFn): ts.SourceFile | undefined;
getDefaultLibFileName(options: ts.CompilerOptions): string;
readonly writeFile: (fileName: string, data: string, _writeByteOrderMark: boolean, onError?: ((message: string) => void) | undefined, _sourceFiles?: readonly ts.SourceFile[] | undefined) => void;
getCurrentDirectory(): string;
getCanonicalFileName(fileName: string): string;
useCaseSensitiveFileNames(): boolean;
getNewLine(): string;
setResourceLoader(resourceLoader: WebpackResourceLoader): void;
readResource(fileName: string): string | Promise | undefined;
getModifiedResourceFiles(): Set;
trace(message: string): void;
resolveModuleNames(moduleNames: string[], containingFile: string): (ts.ResolvedModule | undefined)[];
resolveTypeReferenceDirectives(typeReferenceDirectiveNames: string[], containingFile: string, redirectedReference?: ts.ResolvedProjectReference): (ts.ResolvedTypeReferenceDirective | undefined)[];
}