/** * Kubernetes Client Error Handling Module * * This module provides a comprehensive error handling system for Kubernetes operations, * including typed errors, monitoring, and conversion utilities. */ import { Logger } from 'winston'; /** * Base error class for all Kubernetes-related errors */ export declare class KubernetesError extends Error { readonly code: string; readonly statusCode?: number; readonly details: Record; readonly retryable: boolean; readonly timestamp: Date; constructor(message: string, code: string, statusCode?: number, retryable?: boolean, details?: Record); } /** * Error thrown when authentication fails */ export declare class AuthenticationError extends KubernetesError { constructor(message: string, details?: Record); } /** * Error thrown when authorization fails */ export declare class AuthorizationError extends KubernetesError { constructor(message: string, details?: Record); } /** * Error thrown when a resource is not found */ export declare class ResourceNotFoundError extends KubernetesError { constructor(message: string, details?: Record); } /** * Error thrown when a resource already exists (conflict) */ export declare class ResourceConflictError extends KubernetesError { constructor(message: string, details?: Record); } /** * Error thrown when request validation fails */ export declare class ValidationError extends KubernetesError { constructor(message: string, details?: Record); } /** * Error thrown when the server is unavailable */ export declare class ServerUnavailableError extends KubernetesError { constructor(message: string, details?: Record); } /** * Error thrown when a timeout occurs */ export declare class TimeoutError extends KubernetesError { constructor(message: string, details?: Record); } /** * Error thrown when rate limiting is encountered */ export declare class RateLimitError extends KubernetesError { constructor(message: string, retryAfter?: number, details?: Record); } /** * Error thrown for network-related issues */ export declare class NetworkError extends KubernetesError { constructor(message: string, details?: Record); } /** * Convert Kubernetes API errors to typed errors */ export declare function convertApiError(error: any): KubernetesError; /** * Error statistics tracking */ export interface ErrorStats { total: number; byType: Record; byStatusCode: Record; retryable: number; nonRetryable: number; lastError?: { message: string; code: string; timestamp: Date; }; } /** * Error monitor for tracking and analyzing errors */ export declare class ErrorMonitor { private logger?; private stats; private errorLog; private readonly maxLogSize; constructor(logger?: Logger | undefined); /** * Record an error */ recordError(error: KubernetesError, operation: string): void; /** * Get error statistics */ getStats(): ErrorStats; /** * Get recent errors */ getRecentErrors(limit?: number): Array<{ error: KubernetesError; operation: string; timestamp: Date; }>; /** * Clear statistics */ clearStats(): void; /** * Get error rate for a specific time window */ getErrorRate(windowMs?: number): number; /** * Check if a specific error type is trending */ isErrorTrending(errorType: string, threshold?: number, windowMs?: number): boolean; } /** * Error context for enhanced error information */ export interface ErrorContext { operation: string; resource?: { kind: string; name?: string; namespace?: string; }; cluster?: string; user?: string; additionalInfo?: Record; } /** * Enhanced error with context */ export declare function createContextualError(baseError: KubernetesError, context: ErrorContext): KubernetesError; //# sourceMappingURL=ErrorHandling.d.ts.map