import { ICommand } from '@cli-engine/config'; import Config from './config'; import { ITopic, Topic } from './topic'; export declare type RunFn = (argv: string[]) => Promise; export declare type GetCommandFn = () => Promise; export interface ICommandInfo { _version?: string; id: string; hidden: boolean; help: string; helpLine: [string, string | undefined]; aliases: string[]; description: string | undefined; usage: string | undefined; plugin: { name: string; version: string; }; fetchCommand: GetCommandFn; run: RunFn; } export interface ILoadResult { topics?: ITopic[]; commands?: ICommandInfo[]; } export interface ICommandManager { submanagers?(): Promise; load?(): Promise; } export declare class CommandManager { protected config: Config; private managers; private hooks; private debug; private result; private _submanagers; constructor(config: Config); run(argv: string[]): Promise; help(argv: string[]): Promise; notFound(id: string): Promise; commands(): Promise; rootCommands(): Promise; findTopic(id: string): Promise; findCommand(id: string, must: true): Promise; findCommand(id: string, must?: boolean): Promise; topics(): Promise; rootTopics(): Promise<{ [k: string]: Topic; }>; private load(); private submanagers(); private addResult(result?); private cmdAskingForHelp(argv); }