export interface ProgressState { percentage: number; message?: string; eta?: number | null; } declare class Progress { private _message; private _bar; private _lastLine; /** * @summary Create a CLI Progress Bar * @name Progress * @class * @public * @memberof visuals * * @param {String} message - message * @returns {Progress} progress bar instance * * @throws Will throw if no message. * * @example * progress = new visuals.Progress('Hello World') */ constructor(message: string); /** * @summary Get progress string from a state * @name visuals.Progress#_tick * @method * @private * * @param {Object} state - progress state * @param {Number} state.percentage - percentage * @param {String} [state.message] - message * @param {Number} [state.eta] - eta in seconds * * @throws Will throw if no percentage. * @throws Will throw if no eta. * * @returns {String} progress string * * @example * progress = new visuals.Progress('Hello World') * string = progress._tick(percentage: 49, eta: 300) * console.log(string) */ _tick(state: ProgressState): string; /** * @summary Erase last printed line * @name visuals.Progress#_eraseLastLine * @method * @private * * @example * progress = new visuals.Progress('Hello World') * progress._eraseLastLine() */ _eraseLastLine(): boolean | undefined; /** * @summary Update the progress bar * @name visuals.Progress#update * @method * @public * * @param {Object} state - progress state * @param {Number} state.percentage - percentage * @parm {String} [state.message] - message * @param {Number} [state.eta] - eta in seconds * * @example * progress = new visuals.Progress('Hello World') * progress.update(percentage: 49, eta: 300) */ update(state: ProgressState): boolean; } export default Progress;