import { z } from 'zod'; import { McpError } from '../utils/error-handler'; export interface ApiResponse { success: boolean; data?: T; error?: McpError; statusCode: number; headers?: Record; } export { ErrorType, McpError as ApiError } from '../utils/error-handler'; export interface RequestOptions { method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; path: string; data?: any; params?: Record; headers?: Record; timeout?: number; retries?: number; } export interface HttpClientConfig { baseURL: string; apiKey: string; timeout?: number; retryAttempts?: number; retryDelay?: number; maxRetryDelay?: number; enableLogging?: boolean; } export declare const HttpClientConfigSchema: z.ZodObject<{ baseURL: z.ZodString; apiKey: z.ZodString; timeout: z.ZodDefault>; retryAttempts: z.ZodDefault>; retryDelay: z.ZodDefault>; maxRetryDelay: z.ZodDefault>; enableLogging: z.ZodDefault>; }, "strip", z.ZodTypeAny, { timeout: number; retryAttempts: number; retryDelay: number; baseURL: string; apiKey: string; maxRetryDelay: number; enableLogging: boolean; }, { baseURL: string; apiKey: string; timeout?: number | undefined; retryAttempts?: number | undefined; retryDelay?: number | undefined; maxRetryDelay?: number | undefined; enableLogging?: boolean | undefined; }>; export declare class EvolutionHttpClient { private axiosInstance; private config; private requestCount; private errorHandler; constructor(config: HttpClientConfig); private setupInterceptors; private createApiError; private executeWithRetry; private delay; request(options: RequestOptions): Promise>; get(path: string, params?: Record, options?: Partial): Promise>; post(path: string, data?: any, params?: Record, options?: Partial): Promise>; put(path: string, data?: any, params?: Record, options?: Partial): Promise>; delete(path: string, params?: Record, options?: Partial): Promise>; patch(path: string, data?: any, params?: Record, options?: Partial): Promise>; updateConfig(updates: Partial): void; getConfig(): HttpClientConfig; healthCheck(): Promise>; getStats(): { requestCount: number; }; }