/**
 * Stakeholder Notification Action
 *
 * Automated notification dispatch to relevant stakeholders during incidents.
 * Supports multiple channels and escalation paths.
 *
 * @packageDocumentation
 * @module security/incident/actions/notify-stakeholders
 */
import type { ActionDefinition, IncidentSeverity } from '../types.js';
export interface StakeholderNotification {
    stakeholder: string;
    role: string;
    channel: string;
    status: 'pending' | 'sent' | 'delivered' | 'failed';
    sentAt?: Date;
    deliveredAt?: Date;
    messageId?: string;
    error?: string;
}
export interface NotificationTemplate {
    subject: string;
    body: string;
    urgency: 'low' | 'normal' | 'high' | 'critical';
}
export interface StakeholderConfig {
    id: string;
    name: string;
    role: 'security_team' | 'engineering' | 'management' | 'legal' | 'communications' | 'executive' | 'dpo' | 'external';
    channels: {
        channel: string;
        address: string;
        priority: number;
    }[];
    severityThreshold: IncidentSeverity;
}
export interface StakeholderNotificationService {
    /** Send Slack message */
    sendSlack(channel: string, message: NotificationTemplate): Promise<{
        success: boolean;
        messageId?: string;
    }>;
    /** Send email */
    sendEmail(to: string, message: NotificationTemplate): Promise<{
        success: boolean;
        messageId?: string;
    }>;
    /** Send PagerDuty alert */
    sendPagerDuty(routingKey: string, message: NotificationTemplate): Promise<{
        success: boolean;
        incidentId?: string;
    }>;
    /** Send SMS */
    sendSms(phoneNumber: string, message: string): Promise<{
        success: boolean;
        messageId?: string;
    }>;
    /** Send Teams message */
    sendTeams(webhookUrl: string, message: NotificationTemplate): Promise<{
        success: boolean;
        messageId?: string;
    }>;
    /** Get stakeholders for a given severity and incident type */
    getStakeholders(severity: IncidentSeverity, incidentType: string): Promise<StakeholderConfig[]>;
}
export declare function setStakeholderNotificationService(service: StakeholderNotificationService): void;
export declare function getStakeholderNotificationService(): StakeholderNotificationService;
export declare const notifyStakeholdersAction: ActionDefinition;
export default notifyStakeholdersAction;
//# sourceMappingURL=notify-stakeholders.d.ts.map