/**
 * CI/CD Failure Notifier
 *
 * Sends notifications when workflow failures are detected.
 * Supports multiple notification channels (console, file, webhook).
 */
import { FailureRecord } from './types.js';
/**
 * Notification channel types
 */
export type NotificationChannel = 'console' | 'file' | 'webhook';
/**
 * Notification configuration
 */
export interface NotifierConfig {
    /** Enabled channels */
    channels: NotificationChannel[];
    /** Log file path (for 'file' channel) */
    logFile?: string;
    /** Webhook URL (for 'webhook' channel) */
    webhookUrl?: string;
    /** Enable debug logging */
    debug?: boolean;
}
/**
 * Notification type
 */
export type NotificationType = 'failure_detected' | 'analysis_complete' | 'fix_applied';
/**
 * Notification payload
 */
export interface Notification {
    /** Notification type */
    type: NotificationType;
    /** Failure record */
    failure: FailureRecord;
    /** Additional message */
    message?: string;
    /** Timestamp */
    timestamp: string;
}
/**
 * Notifier - Sends failure notifications to configured channels
 *
 * Features:
 * - Multiple notification channels (console, file, webhook)
 * - Structured notification format
 * - Async delivery (non-blocking)
 * - Error handling and retry logic
 */
export declare class Notifier {
    private config;
    /**
     * Create notifier
     *
     * @param config - Notification configuration
     */
    constructor(config: NotifierConfig);
    /**
     * Send notification about failure detection
     *
     * @param failure - Failure record
     */
    notifyFailureDetected(failure: FailureRecord): Promise<void>;
    /**
     * Send notification about analysis completion
     *
     * @param failure - Failure record
     * @param analysis - Analysis result
     */
    notifyAnalysisComplete(failure: FailureRecord, analysis: string): Promise<void>;
    /**
     * Send notification about fix application
     *
     * @param failure - Failure record
     * @param fixDetails - Fix details
     */
    notifyFixApplied(failure: FailureRecord, fixDetails: string): Promise<void>;
    /**
     * Send notification to all configured channels
     *
     * @param notification - Notification payload
     */
    private send;
    /**
     * Send notification to console (stderr for visibility)
     */
    private sendToConsole;
    /**
     * Send notification to log file
     */
    private sendToFile;
    /**
     * Send notification to webhook
     */
    private sendToWebhook;
    /**
     * Get icon for notification type
     */
    private getIcon;
    /**
     * Get ANSI color code for notification type
     */
    private getColor;
}
//# sourceMappingURL=notifier.d.ts.map