/**
 * Anomaly Detection
 * Statistical anomaly detection with lightweight baselines
 * Sealed namespace for immutability
 */
import { type MetricType } from './WorkerMetrics';
export interface IAnomalyConfig {
    workerName: string;
    metrics: MetricType[];
    sensitivity: number;
    learningPeriod: number;
    alertThreshold: number;
    autoAdjust: boolean;
}
export interface IMetric {
    metricType: MetricType;
    value: number;
    timestamp: Date;
}
export interface IAnomaly {
    id: string;
    timestamp: Date;
    workerName: string;
    metric: MetricType;
    actual: number;
    expected: number;
    deviation: number;
    confidence: number;
    severity: 'low' | 'medium' | 'high' | 'critical';
    possibleCauses: string[];
    recommendations: string[];
}
export interface IPrediction {
    workerName: string;
    horizonHours: number;
    riskScore: number;
    expectedErrorRate: number;
    summary: string;
}
export interface IRootCauseAnalysis {
    anomalyId: string;
    suspectedCauses: string[];
    supportingSignals: Record<string, number>;
}
export interface IForecast {
    workerName: string;
    metric: MetricType;
    horizonHours: number;
    forecast: number;
    confidence: number;
}
export interface IRecommendation {
    action: string;
    reason: string;
    priority: 'low' | 'medium' | 'high';
}
/**
 * Anomaly Detection - Sealed namespace
 */
export declare const AnomalyDetection: Readonly<{
    /**
     * Configure anomaly detection for a worker
     */
    configure(config: IAnomalyConfig): void;
    /**
     * Cleanup anomaly models for a worker
     */
    cleanup(workerName: string): void;
    /**
     * Train baseline model
     */
    trainModel(workerName: string, historicalData: IMetric[]): void;
    /**
     * Update baseline model with recent data
     */
    updateModel(workerName: string, recentData: IMetric[]): void;
    /**
     * Detect anomalies for a worker
     */
    detectAnomalies(workerName: string): Promise<IAnomaly[]>;
    /**
     * Predict failure risk for a worker
     */
    predictFailure(workerName: string, horizonHours: number): Promise<IPrediction>;
    /**
     * Analyze root cause for an anomaly
     */
    analyzeRootCause(anomaly: IAnomaly): IRootCauseAnalysis;
    /**
     * Forecast a metric
     */
    forecastMetric(workerName: string, metric: MetricType, hours: number): Promise<IForecast>;
    /**
     * Generate recommendations for an anomaly
     */
    getRecommendations(anomaly: IAnomaly): IRecommendation[];
    /**
     * Attempt auto-remediation
     */
    autoRemediate(_anomaly: IAnomaly): boolean;
    /**
     * Helper: build training data from metrics
     */
    buildTrainingData(workerName: string): Promise<IMetric[]>;
}>;
export default AnomalyDetection;
//# sourceMappingURL=AnomalyDetection.d.ts.map