import type { AxiosInstance } from 'axios'; export type IncidentSeverity = 'CRITICAL' | 'MAJOR' | 'MEDIUM' | 'MINOR'; export type IncidentUpdateStatus = 'INVESTIGATING' | 'IDENTIFIED' | 'MONITORING' | 'RESOLVED'; export interface IncidentService { id: string; name: string; accountId?: string; } export interface IncidentUpdate { id?: string; description: string; status: IncidentUpdateStatus; publicIncidentUpdateDate?: string; created_at?: string; notifySubscribers?: boolean; } export interface StatusPageIncident { id: string; name: string; severity: IncidentSeverity; lastUpdateStatus: IncidentUpdateStatus; services: IncidentService[]; incidentUpdates: IncidentUpdate[]; created_at: string; updated_at: string | null; } export interface IncidentListParams { limit?: number; nextId?: string; } export interface PaginatedIncidents { entries: StatusPageIncident[]; nextId: string | null; length: number; } export interface CreateIncidentPayload { name: string; severity: IncidentSeverity; services: IncidentService[]; incidentUpdates: [IncidentUpdate]; } export interface CreateIncidentUpdatePayload { description: string; status: IncidentUpdateStatus; notifySubscribers?: boolean; publicIncidentUpdateDate?: string; } export interface UpdateIncidentPayload { severity: IncidentSeverity; } declare class Incidents { api: AxiosInstance; constructor(api: AxiosInstance); getAll(params?: IncidentListParams): Promise; get(id: string): Promise; create(payload: CreateIncidentPayload): Promise; update(incidentId: string, payload: UpdateIncidentPayload): Promise; createUpdate(incidentId: string, payload: CreateIncidentUpdatePayload): Promise; } export default Incidents;