import type { AbstractBaseCommand, CommandMetaData, LoadersContract } from '../types.ts'; /** * List loader exposes the API to register commands as classes * * @example * ```ts * const loader = new ListLoader([MyCommand, AnotherCommand]) * const metadata = await loader.getMetaData() * const command = await loader.getCommand(metadata[0]) * ``` */ export declare class ListLoader implements LoadersContract { #private; /** * Create a new list loader * * @param commands - Array of command classes to register */ constructor(commands: Command[]); /** * Returns an array of command metadata for all registered commands * * @example * ```ts * const metadata = await loader.getMetaData() * metadata.forEach(cmd => console.log(cmd.commandName)) * ``` */ getMetaData(): Promise; /** * Returns the command class constructor for a given command. Null * is returned when unable to lookup the command * * @param metaData - The command metadata to find * * @example * ```ts * const command = await loader.getCommand(metadata) * if (command) { * const instance = new command(kernel, parsed, ui, prompt) * } * ``` */ getCommand(metaData: CommandMetaData): Promise; }