import tsStatic from 'typescript';
import { Builder } from './Builder';
import { Watcher } from './Watcher';
import { PluginFn } from './Contracts';
import { LspWatcher } from './LspWatcher';
import { ConfigParser } from './ConfigParser';
/**
 * Typescript compiler exposes the API to build, watch or parse
 * the typescript config file.
 */
export declare class TypescriptCompiler {
    private cwd;
    private configFileName;
    ts: typeof tsStatic;
    private pluginManager;
    constructor(cwd: string, configFileName: string, ts: typeof tsStatic);
    /**
     * Add plugin which can apply transformers to the typescript compiler
     */
    use(transformer: PluginFn, lifecycle: 'before' | 'after'): this;
    /**
     * Get builder instance
     */
    builder(options: tsStatic.ParsedCommandLine): Builder;
    /**
     * Get watcher instance
     */
    watcher(options: tsStatic.ParsedCommandLine, mode: 'raw' | 'lsp'): Watcher | LspWatcher;
    /**
     * Get config parser instance
     */
    configParser(): ConfigParser;
}
