import { Options as OraOptions } from "ora"; import { IExecStreamOptions, IExecStreamResult } from "./Process"; interface IOraTaskOptions extends OraOptions { text: string; afterText: string; successText: string; errorText: string; progress: [number, number, number]; } interface ITaskUpdater { setText(text?: string): any; setAfterText(text?: string, limit?: number): any; setProgress(value: number, total?: number, width?: number): any; clearProgress(): any; success(text?: string, after?: string): any; error(text?: string, after?: string): any; warning(text?: string, after?: string): any; info(text?: string, after?: string): any; updateLoader(): any; getText(): string; } interface IOraExecError extends IExecStreamResult { taskUpdater: ITaskUpdater; } /** * Name of current loader scope. * Will be shown in grey with printLoaderLine. * @param scope null to remove */ export declare function setLoaderScope(scope: string | null): void; export declare const generateLoaderLineTemplate: (c: any, i?: string) => string; /** * Clear all printed solid lines for current loader scope * @param linesToClear Override total lines to clear. Let null for automatic. */ export declare function clearPrintedLoaderLines(linesToClear?: number): void; /** * Print a loader like log, current scope shown in grey if multiple apps. * Content can be nicePrint formatted. */ export declare function printLoaderLine(content: string, oraOptions?: any): (content?: string, statusOrIcon?: "ok" | "success" | "error" | "warning" | "info" | string) => void; /** * TODO : DOC */ export declare function oraTask(taskOptions: Partial | string, handler: (taskUpdater?: ITaskUpdater) => any | void, onError?: (e: Error, taskUpdater: ITaskUpdater) => void): Promise; /** * TODO : DOC */ export declare function oraExec(command: string, spawnOptions?: IExecStreamOptions, taskOptions?: Partial, errorHandler?: (e: IOraExecError) => any | void): Promise; export {};