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;