/** * Cliente HTTP con retry, rate limiting y manejo de errores */ import type { AxiosInstance, AxiosRequestConfig } from 'axios'; import type { InterceptorConfig } from '../interceptors'; import type { Logger } from '../utils/logger'; import type { RateLimiterConfig } from '../utils/rateLimiter'; import { RateLimiter } from '../utils/rateLimiter'; import type { RetryConfig } from '../utils/retry'; export interface HttpClientConfig { baseURL?: string; timeout?: number; headers?: Record; retryConfig?: Partial; rateLimitConfig?: RateLimiterConfig; enableRetry?: boolean; logger?: Logger; interceptorConfig?: InterceptorConfig; maxRedirects?: number; maxContentLength?: number; validateStatus?: (status: number) => boolean; } export declare class HttpClient { private axiosInstance; private logger?; private rateLimiter?; private enableRetry; private retryConfig; constructor(config: HttpClientConfig); /** * Realiza un request HTTP con retry y rate limiting */ request(config: AxiosRequestConfig): Promise; get(url: string, config?: AxiosRequestConfig): Promise; post(url: string, data?: any, config?: AxiosRequestConfig): Promise; put(url: string, data?: any, config?: AxiosRequestConfig): Promise; patch(url: string, data?: any, config?: AxiosRequestConfig): Promise; delete(url: string, config?: AxiosRequestConfig): Promise; head(url: string, config?: AxiosRequestConfig): Promise; options(url: string, config?: AxiosRequestConfig): Promise; getAxiosInstance(): AxiosInstance; getRateLimiterStats(): ReturnType | null; clearRateLimiter(): void; updateRetryConfig(config: Partial): void; setRetryEnabled(enabled: boolean): void; } //# sourceMappingURL=httpClient.d.ts.map