import { ICachedCommand } from './command'; import { ICLIConfig } from './config'; import { IPlugin } from './plugin'; import { ITopic } from './topic'; export interface IEngine { readonly config: ICLIConfig; readonly plugins: IPlugin[]; readonly topics: ITopic[]; readonly commands: ICachedCommand[]; readonly commandIDs: string[]; readonly rootTopics: ITopic[]; readonly rootCommands: ICachedCommand[]; findCommand(id: string, must: true): ICachedCommand; findCommand(id: string, must?: boolean): ICachedCommand | undefined; findTopic(id: string, must: true): ITopic; findTopic(id: string, must?: boolean): ITopic | undefined; runHook(event: string, opts: T): Promise; load(root: string): Promise; }