///
import * as stream from 'stream';
import * as ts from 'typescript';
import { Reporter } from './reporter';
import { FileCache } from './input';
import { Output } from './output';
import { ICompiler } from './compiler';
import { FinalTransformers, TsConfig } from './types';
export interface Project {
(reporter?: Reporter): ICompileStream;
src(this: Project): NodeJS.ReadWriteStream;
readonly typescript?: typeof ts;
readonly projectDirectory: string;
readonly configFileName: string;
readonly rawConfig: any;
readonly config: TsConfig;
readonly options: ts.CompilerOptions;
readonly projectReferences: ReadonlyArray | undefined;
}
export interface ProjectInfo {
input: FileCache;
output: Output;
compiler: ICompiler;
singleOutput: boolean;
options: ts.CompilerOptions;
projectReferences: ReadonlyArray;
typescript: typeof ts;
directory: string;
reporter: Reporter;
}
export declare function setupProject(projectDirectory: string, configFileName: string, rawConfig: any, config: TsConfig, options: ts.CompilerOptions, projectReferences: ReadonlyArray, typescript: typeof ts, finalTransformers: FinalTransformers): Project;
export interface ICompileStream extends NodeJS.ReadWriteStream {
js: stream.Readable;
dts: stream.Readable;
}