/// import * as fs from 'fs'; import * as ts from 'typescript'; import { Checker } from './checker'; import { CompilerInfo, LoaderConfig, TsConfig } from './interfaces'; export interface Instance { id: number; babelImpl?: any; compiledFiles: { [key: string]: boolean; }; configFilePath: string; compilerConfig: TsConfig; loaderConfig: LoaderConfig; checker: Checker; cacheIdentifier: string; context: string; times: Dict; watchedFiles?: Set; startTime?: number; } export interface Compiler { inputFileSystem: typeof fs; _tsInstances: { [key: string]: Instance; }; options: { watch: boolean; }; } export interface Loader { _compiler: Compiler; _module: { meta: any; }; cacheable: () => void; query: string; async: () => (err: Error, source?: string, map?: string) => void; resourcePath: string; resolve: () => void; addDependency: (dep: string) => void; clearDependencies: () => void; emitFile: (fileName: string, text: string) => void; emitWarning: (msg: string) => void; emitError: (msg: string) => void; context: string; options: { ts?: LoaderConfig; }; } export declare type QueryOptions = LoaderConfig & ts.CompilerOptions; export declare function getRootCompiler(compiler: any): any; export declare function ensureInstance(webpack: Loader, query: QueryOptions, options: LoaderConfig, instanceName: string, rootCompiler: any): Instance; export declare function setupTs(compiler: string): CompilerInfo; export interface Configs { configFilePath: string; compilerConfig: TsConfig; loaderConfig: LoaderConfig; } export declare function readConfigFile(context: string, query: QueryOptions, options: LoaderConfig, tsImpl: typeof ts): Configs; export declare type Dict = { [key: string]: T; };