import { Command } from 'commander';
import type { CliContext, CommandDefinition } from './types.js';
declare const program: Command;
/** Shared context passed to every command's execute(). */
declare const ctx: CliContext;
/**
 * Register a command definition onto a Commander parent.
 *
 * Command shape:
 *   { name, description, queryOpts?, options?, validate?, execute(args, opts, ctx), subcommands? }
 *
 * - `name` includes positional args, e.g. 'build [dir]' or 'path <from> <to>'
 * - `queryOpts` (boolean) — if true, attaches shared query options
 * - `options` — array of arrays passed to cmd.option(), e.g. [['--depth <n>', 'Max depth', '3']]
 * - `validate(args, opts, ctx)` — return an error string to abort, or falsy to proceed
 * - `execute(args, opts, ctx)` — the action handler
 * - `subcommands` — nested command definitions (for groups like registry, snapshot)
 */
declare function registerCommand(parent: Command, def: CommandDefinition): Command;
export declare function run(): Promise<void>;
export { ctx, program, registerCommand };
//# sourceMappingURL=index.d.ts.map