import type { RuntimeConfig } from '../../utils/types/runtime.config';
import type { DeploymentValidationErrorResult } from '../utils/deployment-validation-errors';
export interface DeploymentValidationOptions {
    stage: string;
    config: RuntimeConfig;
    skipBuild?: boolean;
    skipValidation?: boolean;
    verbose?: boolean;
}
export interface DeploymentValidationResult extends DeploymentValidationErrorResult {
    valid: boolean;
    buildTriggered: boolean;
    validationDuration: number;
    diagnostics?: string;
}
/**
 * Main orchestrator for pre-deployment validation
 *
 * Responsibilities:
 * - Coordinate all validation steps
 * - Integrate EnvironmentValidator, BundleManager, and DeploymentSequenceValidator
 * - Provide comprehensive validation with early exit on errors
 * - Provide consistent result formatting
 * - Provide structured logging and diagnostics
 *
 * Requirements: 1.1, 1.2, 1.3, 1.4, 1.5, 4.1
 */
export declare class DeploymentValidator {
    private cwd;
    private logger;
    constructor(cwd: string, verbose?: boolean);
    /**
     * Validates all prerequisites before CDK deployment
     *
     * Performs validation in sequence:
     * 1. Bundle management (if not skipped)
     * 2. Deployment sequence validation
     *
     * Early exit on errors to fail fast and provide clear feedback.
     * Provides structured logging and timing information.
     *
     * @param options - Deployment validation options
     * @returns Validation result with errors, warnings, and metadata
     */
    validateDeployment(options: DeploymentValidationOptions): Promise<DeploymentValidationResult>;
    /**
     * Creates a validation result with consistent formatting
     *
     * @param valid - Whether validation passed
     * @param errors - Validation errors
     * @param warnings - Validation warnings
     * @param buildTriggered - Whether build was triggered
     * @param startTime - Validation start time
     * @returns Formatted validation result
     * @private
     */
    private createValidationResult;
}
