import Joi from '@hapi/joi'; import execa from 'execa'; export interface TaskOptionsInput { basePath?: string; verbosity?: number; dryRun?: boolean; } export interface TaskOptions { basePath: string; verbosity: number; dryRun: boolean; } export declare enum LogLevel { Panic = 50, Error = 40, Warn = 30, Info = 20, Debug = 10, Trace = 0 } export declare const taskOptionsSchema: Joi.ObjectSchema; export declare abstract class Task { protected readonly name: string; protected readonly opts: TaskOptions; protected shouldSkip: boolean; constructor(name: string, opts?: TaskOptionsInput); abstract run(): Promise; protected prepareOptions(opts: TaskOptionsInput): TaskOptions; protected getOptionsSchema(): Joi.Schema; protected getPath(relativePath: string): string; protected requireBin(binName: string): void; protected skip(): void; protected exec(cmd: string, args?: string[], canFail?: boolean): Promise | null>; report(level: LogLevel, ...reportData: any[]): void; protected getOpts(): TaskOptions; static getLogLevel(level: string): LogLevel; } //# sourceMappingURL=task.d.ts.map