import chalk from 'chalk'; import commander, { Command } from 'commander'; import fse from 'fs-extra'; import inquirer from 'inquirer'; import InquirerScene from 'inquirer-scene'; import ora from 'ora'; import prettyMs from 'pretty-ms'; import { LocaleLanguage } from '../../localization'; import { AbstractAction, AbstractCommand } from '../commands'; import { BANNERS, COLORS, NAMES, PATHS } from '../common/constants'; import { CliError, FsManager, FsUtils, Logger } from '../services'; import { Spawn } from './../libs/process'; export type Status = 'success' | 'error' | 'info' | 'warning'; export interface IIo { program: Command; logger: Logger; exit: (code?: number) => Promise; CliError: typeof CliError; AbstractAction: typeof AbstractAction; AbstractCommand: typeof AbstractCommand; LocaleLanguage: typeof LocaleLanguage; services: { fsUtils: FsUtils; fsManager: FsManager; }; constants: { APP_PATH: string; COLORS: typeof COLORS; BANNERS: typeof BANNERS; NAMES: typeof NAMES; PATHS: typeof PATHS; }; libs: { chalk: typeof chalk; inquirer: typeof inquirer; InquirerScene: typeof InquirerScene; ora: typeof ora; fse: typeof fse; prettyMs: typeof prettyMs; commander: typeof commander; Spawn: typeof Spawn; }; state: { outputStatus: Status; loggerChunks: string[]; }; }