import { Logger } from '../types/cli.types';
import { RuntimeCliError } from '../utils/errors';
/**
 * Result of CDK bootstrap execution
 */
export interface BootstrapResult {
    /** Whether bootstrap succeeded */
    success: boolean;
    /** Whether environment was already bootstrapped */
    alreadyBootstrapped: boolean;
    /** Command output (stdout + stderr) */
    output: string;
    /** Error message if bootstrap failed */
    error?: string;
}
/**
 * Service for CDK bootstrap detection and execution
 * Handles automatic bootstrap of AWS environments for CDK deployments
 */
export declare class CdkBootstrapService {
    private logger;
    constructor(logger: Logger);
    /**
     * Execute CDK bootstrap command
     *
     * @param cdkDir - CDK directory path
     * @param region - AWS region
     * @param silent - Suppress info-level logging (default: false)
     * @returns Bootstrap execution result
     */
    bootstrap(cdkDir: string, region: string, silent?: boolean): Promise<BootstrapResult>;
    /**
     * Ensure AWS environment is bootstrapped
     * Checks bootstrap status and executes bootstrap if needed
     *
     * @param cdkDir - CDK directory path
     * @param account - AWS account ID (for logging)
     * @param region - AWS region
     * @throws BootstrapExecutionError if bootstrap fails
     */
    ensureBootstrapped(cdkDir: string, account: string, region: string): Promise<void>;
}
/**
 * Base error class for CDK bootstrap errors
 */
export declare class CdkBootstrapError extends RuntimeCliError {
    constructor(message: string, hint?: string);
}
/**
 * Error thrown when AWS credentials are missing
 */
export declare class BootstrapCredentialsError extends CdkBootstrapError {
    constructor();
}
/**
 * Error thrown when AWS region is missing
 */
export declare class BootstrapRegionError extends CdkBootstrapError {
    constructor();
}
/**
 * Error thrown when CDK bootstrap execution fails
 */
export declare class BootstrapExecutionError extends CdkBootstrapError {
    constructor(output: string, profile?: string, region?: string);
}
