/**
 * Log levels for validation logging
 */
export declare enum ValidationLogLevel {
    DEBUG = "debug",
    INFO = "info",
    WARN = "warn",
    ERROR = "error"
}
/**
 * Structured log entry for validation operations
 */
export interface ValidationLogEntry {
    timestamp: string;
    level: ValidationLogLevel;
    phase: string;
    message: string;
    duration?: number;
    metadata?: Record<string, any>;
}
/**
 * Validation phase tracking for timing and diagnostics
 */
export interface ValidationPhase {
    name: string;
    startTime: number;
    endTime?: number;
    duration?: number;
    status?: 'success' | 'failure' | 'skipped';
    errors?: string[];
    warnings?: string[];
    metadata?: Record<string, any>;
}
/**
 * ValidationLogger provides structured logging for deployment validation
 * with timing information, verbose mode, and diagnostic output.
 *
 * Features:
 * - Structured logging with timestamps
 * - Phase-based timing tracking
 * - Verbose mode for detailed output
 * - Colored console output
 * - Performance metrics
 *
 * Requirements: 1.1, 1.2, 1.3, 1.4, 1.5
 */
export declare class ValidationLogger {
    private verbose;
    private enableTiming;
    private logs;
    private phases;
    private currentPhase;
    constructor(verbose?: boolean, enableTiming?: boolean);
    /**
     * Start a new validation phase
     *
     * @param phaseName - Name of the validation phase
     * @param metadata - Optional metadata for the phase
     */
    startPhase(phaseName: string, metadata?: Record<string, any>): void;
    /**
     * End the current validation phase
     *
     * @param status - Status of the phase (success, failure, skipped)
     * @param errors - Optional errors that occurred during the phase
     * @param warnings - Optional warnings that occurred during the phase
     */
    endPhase(status: 'success' | 'failure' | 'skipped', errors?: string[], warnings?: string[]): void;
    /**
     * Log a debug message (only shown in verbose mode)
     *
     * @param message - Debug message
     * @param metadata - Optional metadata
     */
    debug(message: string, metadata?: Record<string, any>): void;
    /**
     * Log an info message
     *
     * @param message - Info message
     * @param metadata - Optional metadata
     */
    info(message: string, metadata?: Record<string, any>): void;
    /**
     * Log a warning message
     *
     * @param message - Warning message
     * @param metadata - Optional metadata
     */
    warn(message: string, metadata?: Record<string, any>): void;
    /**
     * Log an error message
     *
     * @param message - Error message
     * @param metadata - Optional metadata
     */
    error(message: string, metadata?: Record<string, any>): void;
    /**
     * Log timing information for an operation
     *
     * @param operation - Name of the operation
     * @param duration - Duration in milliseconds
     * @param metadata - Optional metadata
     */
    timing(operation: string, duration: number, metadata?: Record<string, any>): void;
    /**
     * Get a summary of all validation phases
     *
     * @returns Array of phase summaries
     */
    getPhaseSummary(): ValidationPhase[];
    /**
     * Get total validation duration
     *
     * @returns Total duration in milliseconds
     */
    getTotalDuration(): number;
    /**
     * Get all log entries
     *
     * @returns Array of log entries
     */
    getLogs(): ValidationLogEntry[];
    /**
     * Print a summary of validation results
     */
    printSummary(): void;
    /**
     * Export logs to JSON format for debugging
     *
     * @returns JSON string of all logs and phases
     */
    exportDiagnostics(): string;
    /**
     * Internal logging method
     *
     * @param level - Log level
     * @param phase - Phase name
     * @param message - Log message
     * @param metadata - Optional metadata
     * @private
     */
    private log;
    /**
     * Format duration in human-readable format
     *
     * @param ms - Duration in milliseconds
     * @returns Formatted duration string
     * @private
     */
    private formatDuration;
    /**
     * Get status icon for phase status
     *
     * @param status - Phase status
     * @returns Status icon
     * @private
     */
    private getStatusIcon;
    /**
     * Get color function for phase status
     *
     * @param status - Phase status
     * @returns Chalk color function
     * @private
     */
    private getStatusColor;
}
/**
 * Create a validation logger instance
 *
 * @param verbose - Enable verbose output
 * @param enableTiming - Enable timing information
 * @returns ValidationLogger instance
 */
export declare function createValidationLogger(verbose?: boolean, enableTiming?: boolean): ValidationLogger;
