/// import { Task } from './task'; import { ShellContext } from './exec'; import { ILoggerProps, Logger } from './logger'; export interface GlobalOptions { /** * @default true */ loading?: boolean; indent?: number; /** * @description Whether task options only allow defined options, default false * @default false */ strict?: boolean; logger?: ILoggerProps; logCommand?: boolean; options?: any; rawArgs?: string[]; /** @default true */ showTaskDuration?: boolean; } export interface RunDepOptions { rawArgs?: string[]; parentCtx?: TaskContext | null; /** default is false */ loading?: boolean; indent?: number; } export interface RunTaskOptions extends RunDepOptions { options?: any; rawArgs?: string[]; parentCtx?: TaskContext | null; force?: boolean; } export declare enum TaskState { waiting = "waiting", pending = "pending", skipped = "skipped", loading = "loading", succeeded = "succeeded", failed = "failed" } export interface DepsTree { uid: string; task: Task; asyncDeps: DepsTree[][]; syncDeps: DepsTree[]; state: TaskState; depth: number; priority: number; duration: number; } export declare class TaskContext extends ShellContext { task: Task; global: GlobalOptions; fs: typeof import("fs") & typeof import("fs/promises") & { watchDir: { (dir: string, cb: import("./fs").WatchDirHandler): void; (dir: string, options: import("./fs").WatchDirOptions, cb: import("./fs").WatchDirHandler): void; }; copy: (src: string, dist: string, opts?: { skip?: ((file: string, stat: import("fs").Stats) => boolean | void | Promise) | undefined; overwrite?: boolean | undefined; } | undefined) => Promise; exists(path: import("fs").PathLike): Promise; lexists(path: import("fs").PathLike): Promise; isFile(path: import("fs").PathLike): Promise; isDirectory(path: import("fs").PathLike): Promise; isSymbolicLink(path: import("fs").PathLike): Promise; copyFile: typeof import("fs").copyFile.__promisify__ | ((src: import("fs").PathLike, dist: import("fs").PathLike) => Promise); mkdirp(dir: string): Promise; mkdirpSync(dir: string): void; rmrf(path: string): Promise; outputFile(path: string, data: any, options?: import("./fs").WriteOptions | undefined): Promise; outputFileSync(path: string, data: any, options?: import("./fs").WriteOptions | undefined): void; outputJson(path: string, data: object, options?: ({ space?: number | undefined; replacer?: ((key: string, value: any) => any) | undefined; } & import("./fs").WriteOptions) | undefined): Promise; outputJsonSync(path: string, data: any, options?: ({ space?: number | undefined; replacer?: ((key: string, value: any) => any) | undefined; } & import("./fs").WriteOptions) | undefined): void; readJson(path: string, options?: { encoding?: null | undefined; flag?: string | undefined; } | null | undefined): Promise; readJsonSync(path: string, options?: { encoding?: null | undefined; flag?: string | undefined; } | null | undefined): T_1; iter(dir: string, skip: (path: string, stat: import("fs").Stats) => boolean | void | Promise): Promise; }; protected _logger: Logger; get debug(): (...args: any[]) => void; get info(): (...args: any[]) => void; get log(): (...args: any[]) => void; get warn(): (...args: any[]) => void; get error(): (...args: any[]) => void; constructor(task: Task, global: GlobalOptions); /** * get task options */ get options(): O; /** * run a task manually * @param task * @param options */ run(task: string | Task, options?: RunTaskOptions): Promise; } export declare type Callback = { fn: (args?: any) => void | Promise; namespaces: string[]; }; export declare type ListenerNames = 'before' | 'after' | 'onerror'; export declare class TaskManager { private _tasks; private _didMap; namespaces: string[]; listeners: { before: Callback[]; after: Callback[]; onerror: Callback[]; }; globalOptions: GlobalOptions; getTasks(): Task[]; addTask(task: Task): Task; resolveDependencyTree(t: Task, depth?: number): DepsTree; isLoading(t: Task, props: RunTaskOptions): boolean; runDepsTree(depsTree: DepsTree, props: RunTaskOptions): Promise; runListner(name: ListenerNames, ns: string[], args?: any[]): Promise; run(name?: string | Task, props?: RunTaskOptions): Promise; }