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