import { RuntimeConfig } from '../../utils/types/runtime.config';
/**
 * Global CLI options available to all commands
 */
export interface GlobalOptions {
    /** Path to configuration file */
    config?: string;
    /** Enable verbose output */
    verbose?: boolean;
}
/**
 * Context passed to all command handlers
 */
export interface CommandContext {
    /** Loaded and validated configuration */
    config: RuntimeConfig;
    /** Current working directory */
    cwd: string;
    /** Logger instance for formatted output */
    logger: Logger;
}
/**
 * Logger interface for CLI output
 */
export interface Logger {
    info(message: string): void;
    success(message: string): void;
    error(message: string): void;
    warn(message: string): void;
    debug(message: string): void;
    spinner(text: string): Spinner;
}
/**
 * Spinner interface for long-running operations
 */
export interface Spinner {
    start(): void;
    succeed(text?: string): void;
    fail(text?: string): void;
    stop(): void;
}
/**
 * Result returned by command handlers
 */
export interface CommandResult {
    /** Whether the command succeeded */
    success: boolean;
    /** Optional message to display */
    message?: string;
    /** Error if command failed */
    error?: Error;
    /** Exit code for the process */
    exitCode: number;
}
