/** * Incident Manager * * Tracks and manages security incidents. * Implements incident lifecycle management for SOC2 compliance. * * Added by Pantheon Security for enterprise compliance support. */ import type { SecurityIncident, IncidentType, IncidentStatus, IncidentSeverity } from "./types.js"; /** * Incident Manager class */ export declare class IncidentManager { private static instance; private incidentsFile; private incidents; private loaded; private constructor(); /** * Get singleton instance */ static getInstance(): IncidentManager; /** * Load incidents from storage */ private load; /** * Save incidents to storage */ private save; /** * Create a new incident */ createIncident(type: IncidentType, severity: IncidentSeverity, title: string, description: string, options?: { affected_data?: string[]; affected_systems?: string[]; related_events?: string[]; notification_required?: boolean; }): Promise; /** * Determine if notification is required based on severity and type */ private isNotificationRequired; /** * Update incident status */ updateStatus(incidentId: string, status: IncidentStatus, notes?: string, performedBy?: string): Promise; /** * Add action to incident */ addAction(incidentId: string, action: string, performedBy?: string, notes?: string): Promise; /** * Set root cause analysis */ setRootCause(incidentId: string, rootCause: string, remediation: string): Promise; /** * Mark notification as sent */ markNotificationSent(incidentId: string): Promise; /** * Get incident by ID */ getIncident(incidentId: string): Promise; /** * Get all incidents */ getAllIncidents(): Promise; /** * Get open incidents */ getOpenIncidents(): Promise; /** * Get incidents requiring notification */ getIncidentsRequiringNotification(): Promise; /** * Get incidents approaching notification deadline */ getIncidentsNearDeadline(hoursRemaining?: number): Promise; /** * Get incidents by type */ getIncidentsByType(type: IncidentType): Promise; /** * Get incidents by severity */ getIncidentsBySeverity(severity: IncidentSeverity): Promise; /** * Get incident statistics */ getStatistics(): Promise<{ total_incidents: number; open_incidents: number; closed_incidents: number; by_type: Record; by_severity: Record; by_status: Record; pending_notifications: number; average_resolution_hours?: number; }>; /** * Export incidents for reporting */ exportIncidents(from?: Date, to?: Date): Promise; } /** * Get the incident manager instance */ export declare function getIncidentManager(): IncidentManager; /** * Create a new incident */ export declare function createIncident(type: IncidentType, severity: IncidentSeverity, title: string, description: string, options?: { affected_data?: string[]; affected_systems?: string[]; related_events?: string[]; notification_required?: boolean; }): Promise; /** * Get all open incidents */ export declare function getOpenIncidents(): Promise; /** * Update incident status */ export declare function updateIncidentStatus(incidentId: string, status: IncidentStatus, notes?: string): Promise; /** * Get incident statistics */ export declare function getIncidentStatistics(): Promise>;