import { RuntimeConfig, StageConfig } from '../../utils/types/runtime.config';
/**
 * Deployment outputs from CloudFormation stack
 */
export interface DeploymentOutputs {
    /** CloudFront distribution URL */
    cloudFrontUrl?: string;
    /** CloudFront distribution ID */
    DistributionId?: string;
    /** API Gateway URL */
    apiGatewayUrl?: string;
    /** S3 bucket name for static assets */
    bucketName?: string;
    /** S3 bucket website URL for public access */
    bucketWebsiteUrl?: string;
    /** Lambda function ARN */
    lambdaArn?: string;
    /** Runtime Web Lambda functions ARN */
    lambdaArnList?: string[];
    /** Additional custom outputs */
    [key: string]: string | string[] | undefined;
}
/**
 * Result of a deployment operation
 */
export interface DeploymentResult {
    /** Whether the deployment succeeded */
    success: boolean;
    /** CloudFormation stack name */
    stackName: string;
    /** Deployment outputs */
    outputs: DeploymentOutputs;
    /** Deployment duration in milliseconds */
    duration: number;
    /** AWS region */
    region: string;
    /** Stage name */
    stage: string;
}
/**
 * Service for orchestrating AWS CDK deployments
 */
export declare class DeployService {
    private cwd;
    private readonly DEFAULT_CDK_DIR;
    constructor(cwd?: string);
    /**
     * Deploy application to AWS using CDK
     */
    deploy(stage: string, config: RuntimeConfig): Promise<DeploymentResult>;
    /**
     * Resolve CDK directory path from configuration
     */
    private resolveCdkDirectory;
    /**
     * Validate CDK directory and configuration files exist
     */
    private validateCdkDirectory;
    /**
     * Validate AWS credentials using STS
     */
    validateCredentials(stageConfig: StageConfig): Promise<boolean>;
    /**
     * Execute CDK deployment
     */
    private executeCdkDeploy;
    /**
     * Get CloudFormation stack outputs
     */
    getStackOutputs(stackName: string): Promise<Record<string, string>>;
    /**
     * Parse deployment outputs from CDK output
     *
     * This method reads outputs from the cdk-outputs.json file generated by CDK deploy.
     * It falls back to parsing stdout if the file is not available.
     */
    private parseOutputs;
}
