export type FetchLike = typeof fetch; export interface RequestOptions { /** Query params (undefined values are dropped). */ query?: Record; /** JSON request body. Ignored when `multipart` is set. */ body?: unknown; /** Multipart body for the transform endpoint (fetch sets the boundary + content-type). */ multipart?: FormData; headers?: Record; signal?: AbortSignal; /** Convenience for ?workspace= (api-contract §4b). */ workspace?: string; /** Override the transient-retry cap (default 5, per api-contract §5). */ maxRetries?: number; } export interface ApiClientInit { apiKey: string | undefined; baseUrl: string; userAgent: string; /** Injectable for tests. */ fetchImpl?: FetchLike; /** Injectable for tests (so retry/backoff runs instantly). */ sleepImpl?: (ms: number) => Promise; } /** Thin, retry-aware client for the ApparelHub Agent REST API. */ export declare class ApiClient { private readonly init; constructor(init: ApiClientInit); private get fetchImpl(); private sleep; private buildUrl; private backoff; request(method: string, path: string, options?: RequestOptions): Promise; get(path: string, options?: RequestOptions): Promise; post(path: string, options?: RequestOptions): Promise; patch(path: string, options?: RequestOptions): Promise; put(path: string, options?: RequestOptions): Promise; del(path: string, options?: RequestOptions): Promise; }