import { GitExecutorResult, SimpleGitExecutor } from './index';
import { EmptyTask } from '../tasks/task';
export type TaskResponseFormat = Buffer | string;
export interface TaskParser {
(stdOut: INPUT, stdErr: INPUT): RESPONSE;
}
export interface EmptyTaskParser {
(executor: SimpleGitExecutor): void;
}
export interface SimpleGitTaskConfiguration {
commands: string[];
format: FORMAT;
parser: TaskParser;
onError?: (result: GitExecutorResult, error: Error, done: (result: Buffer | Buffer[]) => void, fail: (error: string | Error) => void) => void;
}
export type StringTask = SimpleGitTaskConfiguration;
export type BufferTask = SimpleGitTaskConfiguration;
export type RunnableTask = StringTask | BufferTask;
export type SimpleGitTask = RunnableTask | EmptyTask;