homebridge-ecobee-status
Version:
Homebridge plugin to control Ecobee thermostat Home/Away/Sleep status through HomeKit security system interface
33 lines • 1.12 kB
TypeScript
import { AxiosError } from 'axios';
interface RetryOptions {
maxAttempts?: number;
initialDelay?: number;
maxDelay?: number;
backoffFactor?: number;
totalWindowSeconds?: number;
retryableErrors?: string[];
}
interface Logger {
error: (message: string, error?: Error | AxiosError) => void;
warn: (message: string, ...metadata: unknown[]) => void;
debug?: (message: string, ...metadata: unknown[]) => void;
}
export declare class NetworkRetry {
private readonly maxAttempts;
private readonly initialDelay;
private readonly maxDelay;
private readonly backoffFactor;
private readonly totalWindowMs;
private readonly retryableErrors;
private consecutiveFailures;
private lastSuccessTime;
constructor(options?: RetryOptions);
isRetryableNetworkError(error: unknown): boolean;
private isRetryableError;
private formatErrorMessage;
private calculateDelay;
private shouldReduceVerbosity;
execute<T>(operation: () => Promise<T>, logger?: Logger, context?: string): Promise<T>;
}
export {};
//# sourceMappingURL=network-retry.d.ts.map