/** * HTTP client for Lanonasis API * Supports Edge Function envelope format with caching for offline fallback */ import { ProcessingMode } from "../core/types.js"; import { UsageInfo, TierInfo } from "./response-adapter.js"; export interface HttpClientConfig { apiUrl: string; apiKey?: string; authToken?: string; authType?: "apiKey" | "bearer"; allowMissingAuth?: boolean; timeout?: number; headers?: Record; processingMode?: ProcessingMode; enableCache?: boolean; cacheTTL?: number; } export interface ApiResponse { data?: T; error?: { message: string; code?: string; }; status: number; } export interface EnhancedApiResponse extends ApiResponse { usage?: UsageInfo; tier_info?: TierInfo; fromCache?: boolean; } export declare class HttpClient { private apiUrl; private apiKey; private timeout; private headers; private processingMode; private cache; constructor(config: HttpClientConfig); /** * Get the current processing mode */ getProcessingMode(): ProcessingMode; /** * Check if cache is enabled */ isCacheEnabled(): boolean; /** * Clear the response cache */ clearCache(): void; private request; /** * Enhanced request that handles Edge Function envelope format * and supports offline-fallback caching */ private enhancedRequest; get(endpoint: string): Promise>; post(endpoint: string, data?: any): Promise>; put(endpoint: string, data?: any): Promise>; patch(endpoint: string, data?: any): Promise>; delete(endpoint: string): Promise>; getEnhanced(endpoint: string): Promise>; postEnhanced(endpoint: string, data?: any): Promise>; putEnhanced(endpoint: string, data?: any): Promise>; patchEnhanced(endpoint: string, data?: any): Promise>; deleteEnhanced(endpoint: string): Promise>; }