// Type definitions for listr 0.14 // Project: https://github.com/samverschueren/listr#readme // Definitions by: Dusan Radovanovic // Vladislav Polyakov // Jason Zukewich // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.8 /// import * as stream from "stream"; import { Observable } from "rxjs"; declare namespace Listr { type ListrContext = any; type ListrRendererValue = "silent" | "default" | "verbose" | ListrRendererClass; type ListrTaskResult = string | Promise | Listr | stream.Readable | Observable; interface ListrOptions { concurrent?: boolean | number | undefined; exitOnError?: boolean | undefined; renderer?: ListrRendererValue | undefined; nonTTYRenderer?: ListrRendererValue | undefined; } interface ListrEvent { type: string; data?: string | boolean | undefined; } interface ListrTask { title: string; task: (ctx: Ctx, task: ListrTaskWrapper) => void | ListrTaskResult; skip?: ((ctx: Ctx) => void | boolean | string | Promise) | undefined; enabled?: ((ctx: Ctx) => boolean | Promise | Observable) | undefined; } interface ListrTaskObject extends Observable { title: string; output?: string | undefined; task: (ctx: Ctx, task: ListrTaskWrapper) => void | ListrTaskResult; skip: (ctx: Ctx) => void | boolean | string | Promise; subtasks: ReadonlyArray>; state: string; check: (ctx: Ctx) => void; hasSubtasks(): boolean; isPending(): boolean; isSkipped(): boolean; isCompleted(): boolean; isEnabled(): boolean; hasFailed(): boolean; run: (ctx: Ctx, wrapper: ListrTaskWrapper) => Promise; } interface ListrTaskWrapper { title: string; output: string; report(error: Error): void; skip(message: string): void; run(ctx?: Ctx): Promise; } interface ListrError extends Error { context: Ctx; } interface ListrRenderer { render(): void; end(err: Error): void; } interface ListrRendererClass { nonTTY: boolean; new(tasks: ReadonlyArray>, options: ListrOptions): ListrRenderer; } } declare class Listr { constructor(tasks?: ReadonlyArray>, options?: Listr.ListrOptions); constructor(options?: Listr.ListrOptions); tasks: ReadonlyArray>; setRenderer(value: Listr.ListrRendererValue): void; add(tasks: Listr.ListrTask | ReadonlyArray>): void; render(): void; run(ctx?: Ctx): Promise; } export = Listr;