export interface ParsedErrorBody { message: string; code?: string; } export interface TransportErrorClass { readonly name: string; new (message: string, status: number, body?: unknown, code?: string): E; } export interface TransportConfig { baseUrl: string; timeoutMs: number; fetchImpl?: typeof fetch; defaultHeaders: () => Record; parseErrorBody: (status: number, body: unknown, text: string) => ParsedErrorBody; errorClass: TransportErrorClass; requestFailedPrefix?: string; } export interface TransportCallOptions { signal?: AbortSignal; timeoutMs?: number; baseUrl?: string; headers?: Record; } export interface RawRequestOptions extends TransportCallOptions { method?: string; body?: BodyInit | null; } export interface Transport { postJson(path: string, body: unknown, opts?: TransportCallOptions): Promise; getJson(path: string, opts?: TransportCallOptions): Promise; del(path: string, opts?: TransportCallOptions): Promise; emptyPost(path: string, opts?: TransportCallOptions): Promise; postForm(path: string, body: BodyInit, opts?: TransportCallOptions): Promise; getText(path: string, opts?: TransportCallOptions): Promise; getBinary(path: string, opts?: TransportCallOptions): Promise; raw(path: string, opts?: RawRequestOptions): Promise; } export declare function attachAbortHandler(signal: AbortSignal | undefined, controller: AbortController): void; export declare function createTransport(cfg: TransportConfig): Transport; //# sourceMappingURL=transport.d.ts.map