/**
 * SLA Monitor
 * SLA compliance checks and violation tracking for workers
 * Sealed namespace for immutability
 */
export type ITimeRange = {
    start: Date;
    end: Date;
};
export interface ISLAConfig {
    workerName: string;
    metrics: {
        maxLatencyP99: number;
        minThroughput: number;
        minAvailability: number;
        maxErrorRate: number;
        maxRecoveryTime: number;
    };
    alerting: {
        channels: string[];
        escalation: boolean;
        cooldown: number;
    };
    reporting: {
        interval: 'daily' | 'weekly' | 'monthly';
        recipients: string[];
    };
}
export type ISLAStatus = {
    workerName: string;
    status: 'compliant' | 'warning' | 'breach';
    evaluatedAt: Date;
    checks: {
        latencyP99: {
            value: number;
            threshold: number;
            status: 'pass' | 'warn' | 'fail';
        };
        throughput: {
            value: number;
            threshold: number;
            status: 'pass' | 'warn' | 'fail';
        };
        availability: {
            value: number;
            threshold: number;
            status: 'pass' | 'warn' | 'fail';
        };
        errorRate: {
            value: number;
            threshold: number;
            status: 'pass' | 'warn' | 'fail';
        };
        recoveryTime: {
            value: number;
            threshold: number;
            status: 'pass' | 'warn' | 'fail';
        };
    };
};
export type ISLAViolation = {
    id: string;
    workerName: string;
    metric: keyof ISLAStatus['checks'];
    expected: number;
    actual: number;
    timestamp: Date;
    severity: 'warning' | 'critical';
    message: string;
};
export type ISLAReport = {
    generatedAt: Date;
    period: ITimeRange;
    totalWorkers: number;
    totalChecks: number;
    totalViolations: number;
    complianceRate: number;
    violations: ReadonlyArray<ISLAViolation>;
    perWorker: Array<{
        workerName: string;
        violations: number;
        complianceRate: number;
    }>;
};
/**
 * SLA Monitor - Sealed namespace
 */
export declare const SLAMonitor: Readonly<{
    /**
     * Define SLA for a worker
     */
    defineSLA(config: ISLAConfig): void;
    /**
     * Check SLA compliance for a worker
     */
    checkCompliance(workerName: string): Promise<ISLAStatus>;
    /**
     * Get SLA violations for a worker
     */
    getViolations(workerName: string, timeRange: ITimeRange): ReadonlyArray<ISLAViolation>;
    /**
     * Get SLA compliance report
     */
    getComplianceReport(timeRange: ITimeRange): ISLAReport;
    /**
     * Alert on SLA violation
     */
    alertOnViolation(violation: ISLAViolation): void;
}>;
export default SLAMonitor;
//# sourceMappingURL=SLAMonitor.d.ts.map