/** * SLA Monitoring - Define and monitor service-level agreements */ import type { SuiteResult } from './types'; export interface SLAConfig { availability: number; latency_p95: number; cost_per_query: number; accuracy: number; } export interface SLACheckResult { config: SLAConfig; actual: { availability: number; latency_p95: number; cost_per_query: number; accuracy: number; }; violations: SLAViolation[]; passing: boolean; } export interface SLAViolation { metric: string; threshold: number; actual: number; unit: string; } /** * Load SLA config from YAML file. */ export declare function loadSLAConfig(configPath: string): SLAConfig; /** * Compute percentile from array of numbers. */ export declare function percentile(arr: number[], p: number): number; /** * Load report files from a directory. */ export declare function loadReports(dir: string): SuiteResult[]; /** * Check reports against SLA config. */ export declare function checkSLA(config: SLAConfig, reports: SuiteResult[]): SLACheckResult; /** * Format SLA check results for console. */ export interface SLAMonitoringConfig { windowHours: number; alertThreshold: number; trend: 'degrading' | 'stable' | 'improving' | 'any'; } export interface SLATrendPoint { timestamp: string; availability: number; latency_p95: number; cost_per_query: number; accuracy: number; } export interface SLATrendResult { metric: string; direction: 'degrading' | 'stable' | 'improving'; slope: number; breachEta?: number; alert: boolean; alertReason?: string; } export interface SLAMonitorResult { config: SLAConfig; monitoring: SLAMonitoringConfig; currentCheck: SLACheckResult; trends: SLATrendResult[]; overallStatus: 'healthy' | 'warning' | 'critical'; } /** * Calculate linear regression slope for a time series. */ export declare function linearSlope(points: { x: number; y: number; }[]): number; /** * Analyze trend for a single metric. */ export declare function analyzeTrend(metric: string, points: { x: number; y: number; }[], threshold: number, alertThreshold: number, higherIsBetter: boolean): SLATrendResult; /** * Run full SLA monitoring with trend analysis. */ export declare function monitorSLA(config: SLAConfig, monitoring: SLAMonitoringConfig, history: SLATrendPoint[], currentReports: SuiteResult[]): SLAMonitorResult; /** * Format SLA monitoring result for console. */ export declare function formatSLAMonitor(result: SLAMonitorResult): string; export declare function formatSLACheck(result: SLACheckResult): string; //# sourceMappingURL=sla.d.ts.map