import type { FetchLike } from './types.js'; export type HttpRequestInit = RequestInit & { headers?: Record; }; export interface HttpClient { request(input: RequestInfo | URL, init?: HttpRequestInit): Promise; } export declare class FetchHttpClient implements HttpClient { private readonly fetchImpl; constructor(fetchImpl: FetchLike); request(input: RequestInfo | URL, init?: HttpRequestInit): Promise; } export type JsonResponse = { ok: boolean; status: number; data: T | null; }; export declare function requestJson(client: HttpClient, input: RequestInfo | URL, init?: HttpRequestInit): Promise>;