import { Store } from 'cross-state';
import { RunpCommand, type RunpResult } from '.';
import type { WriteLine } from './trackLinearOutput';
export interface Task {
    command: RunpCommand;
    state: Store<TaskState>;
    result: Promise<RunpResult>;
    run: (writeLine: WriteLine) => Promise<RunpResult>;
}
export interface TaskState {
    status: 'pending' | 'inProgress' | 'done' | 'error' | 'dependencyError';
    statusString?: string;
    title: string;
    rawOutput: string;
    output: string;
    time?: number;
    subTasks: Task[];
}
export declare function task(command: RunpCommand, allTasks: () => Task[], q?: import("schummar-queue").Queue & (<T>(action: (options: import("schummar-queue").ScheduleOptions) => T | PromiseLike<T>, { retries, delay, backoff, priority, }?: Partial<import("schummar-queue").ScheduleOptions>) => Promise<T>)): Task;
