import { DocometInspectableObjectClass } from '../docomet-inspectable.js'; import { Command } from 'commander'; import type { PackageJson } from 'type-fest'; /** * CommanderPackageJson */ export type DocometCommanderPackageJson = Pick; /** * CommanderRunAsyncCallback */ export type DocometCommanderRunAsyncCallback = () => void | Promise; /** * Commander * @see {@link DocometError} * @see {@link DocometFile} * @see {@link DocometPath} * @see {@link DocometProcess} */ export declare class DocometCommander extends DocometInspectableObjectClass { #private; /** * Package JSON (name | version) */ static get packageJson(): DocometCommanderPackageJson; /** * Runs command asynchronously * @param callback Callback function * @returns `Promise` that resolves when command execution is complete */ static runAsync(callback: DocometCommanderRunAsyncCallback): Promise; /** * Creates `DocometCommander` instance * @param args Arguments for constructor * @returns `DocometCommander` instance */ static new(...args: ConstructorParameters): DocometCommander; /** * Base command name */ get baseCommandName(): string; /** * `Command` object from `commander` */ get command(): Command; /** * Creates `DocometCommander` instance * @param baseCommandName Base command name */ constructor(baseCommandName: string); /** * Adds option * @param flags Option flags * @param description Option description * @param required Required flag * @param defaultValue Default value * @param choices Choices for option * @returns `DocometCommander` instance */ addOption( flags: string, description: string, required?: boolean, defaultValue?: string, choices?: string[] ): DocometCommander; /** * Adds help text * @param text Help text * @returns `DocometCommander` instance */ addHelpText(text: string): DocometCommander; /** * Converts to string * @returns String representation */ toString(): string; /** * Converts to JSON object * @returns JSON object representation */ toJSON(): object; }