/** * Custom HTTP client wrapper around native fetch API. * Replaces axios with a minimal implementation that provides: * - Request/response interceptors (async supported) * - Axios-compatible response structure * - Automatic JSON parsing when Content-Type is application/json * - Error rejection on 4xx/5xx responses (axios behavior) */ export interface HttpClientConfig { method?: string; url?: string; headers?: Record; body?: BodyInit; params?: Record; data?: any; responseType?: 'arraybuffer' | 'blob' | 'json' | 'text'; tokenType?: string; skipDeviceCheck?: boolean; [key: string]: any; } export interface HttpClientResponse { data: T; status: number; statusText: string; headers: Record; config: HttpClientConfig; } export interface HttpClientError extends Error { response?: HttpClientResponse; config?: HttpClientConfig; } declare type RequestInterceptorFulfilled = (config: HttpClientConfig) => HttpClientConfig | Promise; declare type RequestInterceptorRejected = (error: any) => any; declare type ResponseInterceptorFulfilled = (response: HttpClientResponse) => HttpClientResponse | Promise; declare type ResponseInterceptorRejected = (error: HttpClientError) => any; interface RequestInterceptor { fulfilled: RequestInterceptorFulfilled; rejected?: RequestInterceptorRejected; } interface ResponseInterceptor { fulfilled: ResponseInterceptorFulfilled; rejected?: ResponseInterceptorRejected; } interface InterceptorManager { handlers: Array; use(fulfilled: T extends RequestInterceptor ? RequestInterceptorFulfilled : ResponseInterceptorFulfilled, rejected?: T extends RequestInterceptor ? RequestInterceptorRejected : ResponseInterceptorRejected): number; eject(id: number): void; } export interface HttpClient { (url: string, config?: HttpClientConfig): Promise; defaults: { headers: { post: Record; common: Record; }; }; interceptors: { request: InterceptorManager; response: InterceptorManager; }; } /** * Creates a new HTTP client instance with interceptor support. * This is the fetch-based replacement for axios.create() */ export declare function createHttpClient(): HttpClient; export {};