///
import Enquirer from 'enquirer';
import { Observable, Subject } from 'rxjs';
import { Readable } from 'stream';
import { stateConstants } from './state.constants';
import { Task } from '../lib/task';
import { DefaultRenderer } from '../renderer/default.renderer';
import { SilentRenderer } from '../renderer/silent.renderer';
import { VerboseRenderer } from '../renderer/verbose.renderer';
import { Listr } from '../index';
import { PromptOptions } from '../utils/prompt.interface';
export declare type ListrContext = any;
export declare type ListrDefaultRendererValue = 'default';
export declare type ListrDefaultRenderer = typeof DefaultRenderer;
export declare type ListrFallbackRendererValue = 'verbose';
export declare type ListrFallbackRenderer = typeof VerboseRenderer;
export declare class ListrClass {
tasks: Task>[];
constructor(task?: readonly ListrTask>[], options?: ListrBaseClassOptions);
run(ctx?: Ctx): Promise;
add(tasks: ListrTask> | readonly ListrTask>[]): void;
}
export interface ListrTaskObject extends Observable {
id: string;
title?: string;
cleanTitle?: string;
output?: string;
task: (ctx: Ctx, task: ListrTaskWrapper) => void | ListrTaskResult;
skip: boolean | string | ((ctx: Ctx) => boolean | string | Promise | Promise);
subtasks: ListrTaskObject[];
state: string;
message: {
duration?: number;
error?: string;
skip?: string;
};
check: (ctx: Ctx) => void;
run: (ctx: Ctx, wrapper: ListrTaskWrapper) => Promise;
options: ListrOptions;
rendererOptions: ListrGetRendererOptions;
rendererTaskOptions: ListrGetRendererTaskOptions;
renderHook$: Subject;
hasSubtasks(): boolean;
isPending(): boolean;
isSkipped(): boolean;
isCompleted(): boolean;
isEnabled(): boolean;
isPrompt(): boolean;
hasFailed(): boolean;
hasTitle(): boolean;
}
export interface ListrTask {
title?: string;
task: (ctx: Ctx, task: ListrTaskWrapper) => void | ListrTaskResult;
skip?: boolean | string | ((ctx: Ctx) => boolean | string | Promise | Promise);
enabled?: boolean | ((ctx: Ctx) => boolean | Promise);
options?: ListrGetRendererTaskOptions;
}
export interface ListrTaskWrapper {
title: string;
output: string;
newListr(task: ListrTask | ListrTask[] | ((parent: this) => ListrTask | ListrTask[]), options?: ListrSubClassOptions): Listr;
report(error: Error): void;
skip(message: string): void;
run(ctx?: Ctx, task?: ListrTaskWrapper): Promise;
prompt(options: PromptOptions | PromptOptions[]): Promise;
stdout(): NodeJS.WritableStream;
}
export declare type ListrTaskResult = string | Promise | ListrClass | Readable | NodeJS.ReadableStream | Observable;
export declare type ListrBaseClassOptions = ListrOptions & ListrDefaultRendererOptions & ListrDefaultNonTTYRendererOptions;
export declare type ListrSubClassOptions = ListrOptions & Omit, 'renderer'>;
export interface ListrOptions {
concurrent?: boolean | number;
exitOnError?: boolean;
ctx?: Ctx;
registerSignalListeners?: boolean;
rendererFallback?: boolean | (() => boolean);
rendererSilent?: boolean | (() => boolean);
disableColor?: boolean;
injectWrapper?: {
enquirer?: Enquirer