/** * @typedef {import("./ArgReader.js").ArgReader} ArgReader * @typedef {import("./ArgReader.js").ArgReaderLike} ArgReaderLike */ /** * @template T * @typedef {import("./options/index.js").Opt} Opt */ /** * @template {Opt} O * @typedef {import("./options/index.js").OptType} OptType */ /** * @template {{[arg: string]: Opt}} O * @template {{[name: string]: Command}} S * @typedef {{ * options?: O * minArgs?: number * maxArgs?: number * action(args: string[], options: { * [D in keyof O]: OptType * }): Promise * } | { * commands: S * }} CommandConfig */ /** * @template {{[arg: string]: Opt}} O * @template {{[name: string]: Command}} S */ export class Command; }, S extends { [name: string]: Command; }> { /** * @param {CommandConfig} config */ constructor(config: CommandConfig); /** * @readonly * @type {CommandConfig} */ readonly config: CommandConfig; /** * @param {string[]} route * @returns {string} */ makeHelp(route: string[]): string; /** * @param {ArgReaderLike} args - all cli args minus the env/binary name * @returns {Promise} */ run(args: ArgReaderLike): Promise; } export type ArgReader = import("./ArgReader.js").ArgReader; export type ArgReaderLike = import("./ArgReader.js").ArgReaderLike; export type Opt = import("./options/index.js").Opt; export type OptType> = import("./options/index.js").OptType; export type CommandConfig; }, S extends { [name: string]: Command; }> = { options?: O; minArgs?: number; maxArgs?: number; action(args: string[], options: { [D in keyof O]: OptType; }): Promise; } | { commands: S; }; //# sourceMappingURL=Command.d.ts.map