import { type CommandFlag } from '../types/flag-types.js';
import { type TaskListWrapper } from '../core/task-list/task-list-wrapper.js';
import { type Listr, type ListrContext, type ListrRendererValue } from 'listr2';
import { type TaskList } from '../core/task-list/task-list.js';
/**
 * Helper function to convert a flag object to CLI option string
 * @param flag - The command flag
 * @returns CLI option string (e.g., '--deployment')
 */
export declare function optionFromFlag(flag: CommandFlag): string;
/**
 * Helper function to create base argv array for command execution
 * @returns Base argv array
 */
export declare function newArgv(): string[];
/**
 * Helper function to append global flags to argv
 * @param argv - The argument array to append to
 * @param cacheDirectory - Optional cache directory path
 * @returns Updated argv array
 */
export declare function argvPushGlobalFlags(argv: string[], cacheDirectory?: string): string[];
/**
 * Helper function to invoke a Solo command with proper task integration
 * @param title - Task title to display
 * @param commandName - Command name for task tracking
 * @param callback - Function that returns the argv array
 * @param taskList - TaskList instance for managing parent-child task relationships
 * @param skipCallback - Optional function to determine if task should be skipped
 * @returns Task object for Listr
 */
export declare function invokeSoloCommand(title: string, commandName: string, callback: () => string[], taskList: TaskList<ListrContext, ListrRendererValue, ListrRendererValue>, skipCallback?: () => boolean): {
    title: string;
    skip: () => boolean;
    task: (context: any, taskListWrapper: any) => Promise<Listr<ListrContext, ListrRendererValue, ListrRendererValue> | Listr<ListrContext, ListrRendererValue, ListrRendererValue>[]>;
};
/**
 * Helper function to execute a Solo command and return child tasks
 * @param commandName - Command name for task tracking
 * @param taskListWrapper - Task list wrapper from Listr
 * @param callback - Function that returns the argv array
 * @param taskList - TaskList instance for managing parent-child task relationships
 * @returns Child tasks from command execution
 */
export declare function subTaskSoloCommand(commandName: string, taskListWrapper: TaskListWrapper, callback: () => string[], taskList: TaskList<ListrContext, ListrRendererValue, ListrRendererValue>): Promise<Listr<ListrContext, ListrRendererValue, ListrRendererValue> | Listr<ListrContext, ListrRendererValue, ListrRendererValue>[]>;
