/** * Advanced API client with interceptors, caching, retry logic, and more * Now powered by Axios for robust HTTP handling */ import { HttpClient } from './http-client'; import type { ApiClientConfig, RequestConfig, ApiResponse } from '../types'; /** * Advanced API client with comprehensive features using Axios */ export declare class ApiClient { private httpClient; private cacheManager?; private retryManager?; private rateLimiter?; private config; private interceptorIds; constructor(config?: ApiClientConfig); /** * Set up Axios interceptors for caching, rate limiting, and event handling */ private setupAxiosInterceptors; /** * Makes an HTTP request with all features applied */ request(config: RequestConfig): Promise>; /** * GET request */ get(url: string, config?: Partial): Promise>; /** * POST request */ post(url: string, data?: any, config?: Partial): Promise>; /** * PUT request */ put(url: string, data?: any, config?: Partial): Promise>; /** * PATCH request */ patch(url: string, data?: any, config?: Partial): Promise>; /** * DELETE request */ delete(url: string, config?: Partial): Promise>; /** * HEAD request */ head(url: string, config?: Partial): Promise>; /** * OPTIONS request */ options(url: string, config?: Partial): Promise>; /** * Adds a request interceptor using Axios */ addRequestInterceptor(onFulfilled?: (config: any) => any | Promise, onRejected?: (error: any) => any): number; /** * Adds a response interceptor using Axios */ addResponseInterceptor(onFulfilled?: (response: any) => any | Promise, onRejected?: (error: any) => any): number; /** * Removes a request interceptor */ removeRequestInterceptor(id: number): void; /** * Removes a response interceptor */ removeResponseInterceptor(id: number): void; /** * Clears all custom interceptors (keeps built-in ones) */ clearInterceptors(): void; /** * Clears cache */ clearCache(): void; /** * Gets cache statistics */ getCacheStats(): any; /** * Updates client configuration */ updateConfig(config: Partial): void; /** * Gets current configuration */ getConfig(): ApiClientConfig; /** * Gets the underlying Axios instance for advanced usage */ getAxiosInstance(): import("axios").AxiosInstance; /** * Gets the underlying HTTP client */ getHttpClient(): HttpClient; /** * Determines if cache should be used for request */ private shouldUseCache; /** * Determines if response should be cached */ private shouldCacheResponse; } //# sourceMappingURL=api-client.d.ts.map