import { RequestConfig, RequestInterceptor, ResponseInterceptor, ErrorInterceptor } from '../types/config.js'; /** * HTTP client with interceptor support for API requests */ export declare class HttpClient { private baseUrl; private defaultHeaders; private defaultTimeout; private debug; private interceptors; constructor(baseUrl: string, defaultHeaders?: Record, defaultTimeout?: number, debug?: boolean); /** * Add a request interceptor * * @param interceptor - Function called before each request is sent */ addRequestInterceptor(interceptor: RequestInterceptor): void; /** * Add a response interceptor * * @param interceptor - Function called after each response is received */ addResponseInterceptor(interceptor: ResponseInterceptor): void; /** * Add an error interceptor * * @param interceptor - Function called when a request fails */ addErrorInterceptor(interceptor: ErrorInterceptor): void; /** * Execute request interceptors */ private executeRequestInterceptors; /** * Execute response interceptors */ private executeResponseInterceptors; /** * Execute error interceptors */ private executeErrorInterceptors; /** * Make an HTTP request * * @param config - Request configuration * @returns Parsed response body * @throws ApiError when the request fails or times out */ request(config: RequestConfig): Promise; /** * Merge multiple AbortSignals into one */ private mergeAbortSignals; /** * GET request * * @param url - Request URL, relative to the base URL or absolute * @param headers - Additional request headers * @param signal - AbortSignal for request cancellation * @returns Parsed response body */ get(url: string, headers?: Record, signal?: AbortSignal): Promise; /** * POST request * * @param url - Request URL, relative to the base URL or absolute * @param body - JSON request body * @param headers - Additional request headers * @param signal - AbortSignal for request cancellation * @returns Parsed response body */ post(url: string, body?: unknown, headers?: Record, signal?: AbortSignal): Promise; /** * Streaming POST request — applies defaultHeaders, interceptors, and abort signal * handling like request(), but returns the raw Response for SSE consumption. * No timeout is set since streaming connections are long-lived. * * @param url - Request URL, relative to the base URL or absolute * @param body - JSON request body * @param headers - Additional request headers * @param signal - AbortSignal for request cancellation * @returns The raw fetch Response and AbortController for stream consumption * @throws ApiError when the stream request fails to start */ streamPost(url: string, body?: unknown, headers?: Record, signal?: AbortSignal): Promise<{ response: Response; abort: AbortController; }>; /** * PUT request * * @param url - Request URL, relative to the base URL or absolute * @param body - JSON request body * @param headers - Additional request headers * @param signal - AbortSignal for request cancellation * @returns Parsed response body */ put(url: string, body?: unknown, headers?: Record, signal?: AbortSignal): Promise; /** * DELETE request * * @param url - Request URL, relative to the base URL or absolute * @param headers - Additional request headers * @param signal - AbortSignal for request cancellation * @returns Parsed response body */ delete(url: string, headers?: Record, signal?: AbortSignal): Promise; /** * PATCH request * * @param url - Request URL, relative to the base URL or absolute * @param body - JSON request body * @param headers - Additional request headers * @param signal - AbortSignal for request cancellation * @returns Parsed response body */ patch(url: string, body?: unknown, headers?: Record, signal?: AbortSignal): Promise; } //# sourceMappingURL=http-client.d.ts.map