/** * Standardized error classification and handling utilities */ export declare enum TapoErrorType { SESSION_EXPIRED = "session_expired", DEVICE_BUSY = "device_busy", NETWORK_ERROR = "network_error", AUTHENTICATION_FAILED = "authentication_failed", FEATURE_NOT_SUPPORTED = "feature_not_supported", INVALID_PARAMETER = "invalid_parameter", DEVICE_OFFLINE = "device_offline", PROTOCOL_ERROR = "protocol_error", TIMEOUT = "timeout", UNKNOWN = "unknown" } export interface ClassifiedError { type: TapoErrorType; originalError: Error; isRetryable: boolean; retryAfterMs: number | undefined; suggestedAction: string | undefined; } export interface ErrorPatternConfig { sessionPatterns: string[]; busyPatterns: string[]; networkPatterns: string[]; authPatterns: string[]; featurePatterns: string[]; parameterPatterns: string[]; offlinePatterns: string[]; protocolPatterns: string[]; timeoutPatterns: string[]; } /** * Centralized error classification utility */ export declare class ErrorClassifier { private static readonly DEFAULT_PATTERNS; private patterns; constructor(customPatterns?: Partial); /** * Classify an error into a standard type */ classify(error: Error): ClassifiedError; /** * Check if error message matches any of the given patterns */ private matchesPatterns; /** * Create a classified error object */ private createClassifiedError; /** * Determine if an error is retryable */ static isRetryableError(error: Error): boolean; /** * Get suggested retry delay for an error */ static getRetryDelay(error: Error): number; /** * Create a user-friendly error message */ static createUserFriendlyMessage(error: Error): string; } /** * Enhanced error class with classification */ export declare class ClassifiedTapoError extends Error { readonly classification: ClassifiedError; constructor(originalError: Error, classifier?: ErrorClassifier); isRetryable(): boolean; getRetryDelay(): number | undefined; getSuggestedAction(): string | undefined; }