import { Logger } from './logger';
export interface Task {
    result: Promise<void>;
    kill(): void;
}
export interface TaskConfig {
    name: string;
    logger: Logger;
    handleOutput?(line: string): boolean;
    handleError?(line: string): boolean;
}
/**
 * Used for differences between windows and linux and it can also be mocked for unit tests
 */
export interface TaskRunner {
    runTask(command: string, args: string[], config: TaskConfig): Task;
}
export declare let createDefaultTaskRunner: () => TaskRunner;
export declare let createWindowsTaskRunner: () => TaskRunner;
