import type { Logger, DeploymentProgress, DeploymentResult } from "../types/index.js";
export interface DeploymentMetrics {
    deploymentId: string;
    startTime: Date;
    endTime?: Date;
    duration?: number;
    action: string;
    stackName: string;
    companyName: string;
    success: boolean;
    errorType?: string;
    resourcesCreated?: number;
    resourcesUpdated?: number;
    resourcesDeleted?: number;
    rollbackPerformed?: boolean;
    progressEvents: DeploymentProgress[];
}
export interface HealthCheck {
    name: string;
    status: "healthy" | "unhealthy" | "unknown";
    message: string;
    timestamp: Date;
    details?: Record<string, any>;
}
export declare class DeploymentMonitor {
    private metrics;
    private logger;
    private healthChecks;
    constructor(deploymentId: string, action: string, stackName: string, companyName: string, logger: Logger);
    recordProgress(progress: DeploymentProgress): void;
    recordCompletion(result: DeploymentResult): void;
    private categorizeError;
    private extractResourceChanges;
    performHealthChecks(): Promise<HealthCheck[]>;
    private checkPulumiCli;
    private checkCloudCredentials;
    private checkAwsCredentials;
    private checkGcpCredentials;
    private checkHelmChart;
    private checkNetworkConnectivity;
    private addHealthCheck;
    getMetrics(): DeploymentMetrics;
    getMetricsSummary(): object;
    getHealthStatus(): {
        overall: "healthy" | "unhealthy";
        checks: HealthCheck[];
    };
    exportMetrics(): string;
}
export declare class DeploymentReporter {
    static generateReport(metrics: DeploymentMetrics, healthChecks: HealthCheck[]): string;
}
//# sourceMappingURL=monitoring.d.ts.map