import { Aliases, ManifestCommand, ManifestLoaderContract, CommandConstructorContract } from '../Contracts'; /** * The manifest loader exposes the API to load ace commands from one * or more manifest files. */ export declare class ManifestLoader implements ManifestLoaderContract { private files; /** * An array of defined manifest files */ private manifestFiles; booted: boolean; constructor(files: { basePath: string; manifestAbsPath: string; }[]); /** * Loads the manifest file from the disk */ private loadManifestFile; /** * Returns the command manifest node for a give command */ private getCommandManifest; /** * Boot manifest loader to read all manifest files from the disk */ boot(): Promise; /** * Returns base path for a given command */ getCommandBasePath(commandName: string): string | undefined; /** * Returns manifest command node. One must load the command * in order to use it */ getCommand(commandName: string): { basePath: string; command: ManifestCommand; } | undefined; /** * Find if a command exists or not */ hasCommand(commandName: string): boolean; /** * Load command from the disk. Make sure to use [[hasCommand]] before * calling this method */ loadCommand(commandName: string): Promise; /** * Returns an array of manifest commands */ getCommands(): { commands: ManifestCommand[]; aliases: Aliases; }; }