import { DeploymentValidationErrorResult } from '../utils/deployment-validation-errors';
import type { RuntimeConfig } from '../../utils/types/runtime.config';
/**
 * Result of environment validation including AWS account and region information
 */
export interface EnvironmentValidationResult extends DeploymentValidationErrorResult {
    valid: boolean;
    awsAccount?: string;
    awsRegion?: string;
}
/**
 * Validates CDK app configuration and AWS environment before deployment
 *
 * This validator ensures that all required environment variables, AWS credentials,
 * stage parameters, and service names are properly configured before attempting
 * CDK deployment operations.
 */
export declare class CdkEnvironmentValidator {
    private stage;
    private config;
    constructor(stage: string, config: RuntimeConfig);
    /**
     * Perform comprehensive environment validation
     *
     * Validates:
     * - CDK environment variables (CDK_DEFAULT_ACCOUNT, CDK_DEFAULT_REGION)
     * - AWS credentials and permissions
     * - Stage parameter validity
     * - Service name AWS resource naming constraints
     *
     * @returns {Promise<EnvironmentValidationResult>} Validation result with errors and warnings
     */
    validate(): Promise<EnvironmentValidationResult>;
    /**
     * Validate CDK environment variables
     *
     * Checks that CDK_DEFAULT_ACCOUNT and CDK_DEFAULT_REGION are set and valid.
     *
     * @returns {DeploymentValidationErrorResult} Validation result with errors and warnings
     */
    private validateCdkEnvironment;
    /**
     * Validate AWS credentials using STS GetCallerIdentity
     *
     * Verifies that AWS credentials are properly configured and have sufficient
     * permissions by calling STS GetCallerIdentity.
     *
     * @returns {Promise<DeploymentValidationErrorResult & { awsAccount?: string; awsRegion?: string }>}
     */
    private validateAwsCredentials;
    /**
     * Validate stage parameter
     *
     * Ensures the stage parameter is one of the allowed values (dev, staging, prod).
     *
     * @returns {DeploymentValidationErrorResult} Validation result with errors and warnings
     */
    private validateStage;
    /**
     * Validate service name for AWS resource naming constraints
     *
     * Ensures the service name follows AWS resource naming rules:
     * - Starts with a letter
     * - Contains only letters, numbers, and hyphens
     * - Does not end with a hyphen
     * - Is 50 characters or less
     *
     * @returns {DeploymentValidationErrorResult} Validation result with errors and warnings
     */
    private validateServiceName;
}
