export interface IServiceStatus {
    id: string;
    name: string;
    displayName: string;
    description?: string;
    currentStatus: 'operational' | 'degraded' | 'partial_outage' | 'major_outage' | 'maintenance';
    lastChecked: number;
    uptime30d: number;
    uptime90d: number;
    responseTime: number;
    category?: string;
    dependencies?: string[];
    selected?: boolean;
}
export interface IStatusHistoryPoint {
    timestamp: number;
    status: 'operational' | 'degraded' | 'partial_outage' | 'major_outage' | 'maintenance';
    responseTime?: number;
    errorRate?: number;
}
export interface IIncidentUpdate {
    id: string;
    timestamp: number;
    status: 'investigating' | 'identified' | 'monitoring' | 'resolved' | 'postmortem';
    message: string;
    author?: string;
}
export interface IIncidentDetails {
    id: string;
    title: string;
    status: 'investigating' | 'identified' | 'monitoring' | 'resolved' | 'postmortem';
    severity: 'critical' | 'major' | 'minor' | 'maintenance';
    affectedServices: string[];
    startTime: number;
    endTime?: number;
    updates: IIncidentUpdate[];
    impact: string;
    rootCause?: string;
    resolution?: string;
}
export interface IOverallStatus {
    status: 'operational' | 'degraded' | 'partial_outage' | 'major_outage' | 'maintenance';
    message: string;
    lastUpdated: number;
    affectedServices: number;
    totalServices: number;
}
export interface IStatusPageConfig {
    apiEndpoint?: string;
    refreshInterval?: number;
    timeZone?: string;
    dateFormat?: string;
    enableWebSocket?: boolean;
    enableNotifications?: boolean;
    theme?: 'light' | 'dark' | 'auto';
    language?: string;
    showHistoricalDays?: number;
    whitelabel?: boolean;
    companyName?: string;
    companyLogo?: string;
    supportEmail?: string;
    statusPageUrl?: string;
    legalUrl?: string;
}
export interface IMonitorFormData {
    id?: string;
    name: string;
    displayName: string;
    description?: string;
    category?: string;
    dependencies?: string[];
    currentStatus: 'operational' | 'degraded' | 'partial_outage' | 'major_outage' | 'maintenance';
}
export interface IIncidentFormData {
    id?: string;
    title: string;
    severity: 'critical' | 'major' | 'minor' | 'maintenance';
    status: 'investigating' | 'identified' | 'monitoring' | 'resolved' | 'postmortem';
    affectedServices: string[];
    impact: string;
    rootCause?: string;
    resolution?: string;
}
export interface IIncidentUpdateFormData {
    status: 'investigating' | 'identified' | 'monitoring' | 'resolved' | 'postmortem';
    message: string;
    author?: string;
}
