import type { Command } from 'commander';
import type { GlobalOptions, Logger } from '../types/cli.types';
import { EnvironmentValidator } from '../utils/environment-validator';
import { RuntimeConfig } from '../../utils/types/runtime.config';
import { StacksDeployService } from '../services/stacks-deploy.service';
import { CliCore } from './cli-core';
import type { StrategyContainer } from './strategy.types';
/**
 * Context passed to all Runtime command handlers
 */
export interface RuntimeCliContext {
    /** Global CLI options */
    globalOpts: GlobalOptions;
    /** Logger instance for formatted output */
    logger: Logger;
    /** Current working directory */
    cwd: string;
    /** Environment validator for AWS credentials */
    envValidator: EnvironmentValidator;
    /** Loaded and validated Runtime configuration */
    config: RuntimeConfig;
    /** Stacks deployment service */
    stacksDeployService: StacksDeployService;
}
/**
 * Runtime CLI implementation extending the generic CLI Core
 *
 * This class provides Runtime-specific functionality including:
 * - Context creation with logger, environment validator, and config service
 * - Command handler wrappers that inject Runtime-specific services
 * - AWS credential validation for commands that require it
 * - Integration with existing command functions without signature changes
 */
export declare class RuntimeCli extends CliCore {
    private context;
    constructor(strategies?: StrategyContainer);
    /**
     * Override configureProgram to add global options and customize help
     */
    protected configureProgram(): void;
    /**
     * Override addComprehensiveHelp to provide Runtime-specific help
     */
    protected addComprehensiveHelp(): void;
    /**
     * Create Runtime-specific context with all required services
     */
    protected createContext(globalOpts: GlobalOptions, cwd?: string): Promise<RuntimeCliContext>;
    /**
     * Check if help was requested for the command
     */
    private isHelpRequested;
    /**
     * Get or create context (lazy initialization)
     */
    protected getContext(options: unknown, cmd: Command): Promise<RuntimeCliContext>;
    /**
     * Wrapper for init command
     */
    initCommand(options: unknown, cmd: Command, strategies?: StrategyContainer): Promise<void>;
    /**
     * Wrapper for dev command
     */
    devCommand(options: unknown, cmd: Command, strategies?: StrategyContainer): Promise<void>;
    /**
     * Wrapper for dev doctor command (Awake Lambda Development diagnostics)
     */
    devDoctorCommand(options: unknown, cmd: Command, strategies?: StrategyContainer): Promise<void>;
    /**
     * Wrapper for build command
     */
    buildCommand(options: unknown, cmd: Command, strategies?: StrategyContainer): Promise<void>;
    /**
     * Wrapper for deploy command (requires AWS credentials)
     */
    deployCommand(options: unknown, cmd: Command, strategies?: StrategyContainer): Promise<void>;
    /**
     * Wrapper for destroy command (requires AWS credentials)
     */
    destroyCommand(options: unknown, cmd: Command, strategies?: StrategyContainer): Promise<void>;
    /**
     * Wrapper for doctor command
     */
    doctorCommand(options: unknown, cmd: Command, strategies?: StrategyContainer): Promise<void>;
    /**
     * Wrapper for info command
     */
    infoCommand(options: unknown, cmd: Command, strategies?: StrategyContainer): Promise<void>;
    /**
     * Wrapper for seo init command
     */
    seoInitCommand(options: unknown, cmd: Command, strategies?: StrategyContainer): Promise<void>;
    /**
     * Wrapper for seo sync command (requires AWS credentials)
     */
    seoSyncCommand(options: unknown, cmd: Command, strategies?: StrategyContainer): Promise<void>;
    /**
     * Wrapper for stacks list command (requires AWS credentials)
     */
    stacksListCommand(options: unknown, cmd: Command, strategies?: StrategyContainer): Promise<void>;
    /**
     * Wrapper for cache clear command (requires AWS credentials)
     */
    cacheClearCommand(options: unknown, cmd: Command, strategies?: StrategyContainer): Promise<void>;
    /**
     * Override default action to show help
     */
    protected defaultAction: (options: unknown, cmd: Command, strategies?: StrategyContainer) => never;
}
