import { Toolbox } from 'gluegun'; export interface TaskEventHandlers { onError?: (error: any, task: Task) => void; onSuccess?: (result: string | undefined, task: Task) => void; onStart?: (task: Task) => void; } export interface TaskConfig extends TaskEventHandlers, Record { name?: string; taskType?: any; description?: string | { [key: string]: string; }; } export interface Task extends TaskConfig { run: () => void | Promise | Promise; } export declare const createTask: (name: string, config: TaskConfig, run: () => void | Promise | Promise) => Task; export declare function runTask(task: Task, { onError, onSuccess, onStart }?: TaskEventHandlers): Promise; export declare function mapTasksParallel(tasks: Task[], childHandlers?: TaskEventHandlers): Promise; export declare function createParallelTask(name: string, tasks: any[], handlers?: TaskConfig, childHandlers?: TaskEventHandlers): Task; export declare const PROCESS: { EMIT: string[]; COMPILE: string[]; FIX: string[]; WRITE: string[]; PKGER: string[]; }; declare module 'gluegun' { interface GluegunTask { create: typeof createTask; createParallel: typeof createParallelTask; mapParallel: typeof mapTasksParallel; run: typeof runTask; TYPES: typeof PROCESS; } interface Toolbox { task: GluegunTask; } } declare const _default: (toolbox: Toolbox) => void; export default _default; export declare function list(...tasks: (T | T[])[]): T[];