/**
 * Network Resilience Manager
 * Handles connection timeouts, retry logic, circuit breakers, and connection pooling
 */
export interface NetworkOptions {
    timeout?: number;
    maxRetries?: number;
    retryDelay?: number;
    maxConcurrentConnections?: number;
    keepAlive?: boolean;
    circuitBreakerThreshold?: number;
}
export interface NetworkStats {
    totalRequests: number;
    successfulRequests: number;
    failedRequests: number;
    timeouts: number;
    circuitBreakerTrips: number;
    averageResponseTime: number;
    activeConnections: number;
}
export declare class NetworkResilienceManager {
    private static instance;
    private httpAgent;
    private httpsAgent;
    private circuitBreakers;
    private connectionPool;
    private stats;
    private responseTimes;
    private readonly maxResponseTimesSamples;
    private constructor();
    static getInstance(): NetworkResilienceManager;
    /**
     * Make a resilient HTTP request with retries and circuit breaker
     */
    makeRequest<T>(url: string, options?: RequestInit & NetworkOptions): Promise<T>;
    /**
     * Make multiple concurrent requests with connection limiting
     */
    makeConcurrentRequests<T>(requests: Array<{
        url: string;
        options?: RequestInit & NetworkOptions;
    }>, concurrencyLimit?: number): Promise<Array<{
        success: boolean;
        result?: T;
        error?: Error;
    }>>;
    /**
     * Test network connectivity to a URL
     */
    testConnectivity(url: string, timeoutMs?: number): Promise<boolean>;
    /**
     * Check if error is non-retryable
     */
    private isNonRetryableError;
    /**
     * Get or create circuit breaker for domain
     */
    private getCircuitBreaker;
    /**
     * Extract domain from URL
     */
    private getDomain;
    /**
     * Record successful request
     */
    private recordSuccess;
    /**
     * Record failed request
     */
    private recordFailure;
    /**
     * Record response time for metrics
     */
    private recordResponseTime;
    /**
     * Get network statistics
     */
    getNetworkStats(): NetworkStats;
    /**
     * Reset circuit breaker for domain
     */
    resetCircuitBreaker(domain: string): void;
    /**
     * Reset all circuit breakers
     */
    resetAllCircuitBreakers(): void;
    /**
     * Close all connections and cleanup
     */
    cleanup(): void;
    /**
     * Sleep utility
     */
    private sleep;
}
//# sourceMappingURL=network-resilience-manager.d.ts.map