export interface HttpRequestOptions { method: 'GET' | 'POST' | 'PUT' | 'DELETE'; url: string; headers?: Record; body?: any; timeout?: number; } export interface HttpResponse { status: number; statusText: string; headers: Record; data: T; } export interface HttpError { status: number; statusText: string; message: string; data?: any; } export interface RetryOptions { retries: number; retryDelay: number; maxRetryDelay: number; shouldRetry?: (error: HttpError) => boolean; }