import { type HttpMethod } from '../../application/index.js'; import type { HttpError } from '../../domain/types/http-error.js'; import type { Logger } from '../../domain/types/logger.js'; import type { SessionStorage } from './session-storage.js'; export interface RequestOptions { headers?: Record; timeout?: number; params?: Record; cookies?: string[]; } export type HttpResponse = { data: T | null; success: boolean; error?: HttpError; cookies?: string[]; }; export type HttpClient = { get(url: string, options?: RequestOptions): Promise>; post(url: string, data?: unknown, options?: RequestOptions): Promise>; put(url: string, data?: unknown, options?: RequestOptions): Promise>; patch(url: string, data?: unknown, options?: RequestOptions): Promise>; delete(url: string, options?: RequestOptions): Promise>; }; export type HttpClientConfig = { timeout?: number; headers?: Record; enableCookies?: boolean; maxRedirects?: number; enableBrowserHeaders?: boolean; retryAttempts?: number; retryDelay?: number; retryBackoff?: number; retryMaxDelay?: number; retryJitter?: boolean; logger?: Logger; sessionStorage?: SessionStorage; }; export type InternalRequestConfig = { url: string; method: HttpMethod; data?: unknown; options?: RequestOptions; }; //# sourceMappingURL=http-client.d.ts.map