import * as v from "@badrap/valita"; export declare class HTTPError extends Error { readonly statusCode: number; readonly statusText: string; constructor(statusCode: number, statusText: string); get message(): string; } export declare class APIError extends HTTPError { readonly errorCode: string; readonly errorReason: string | undefined; constructor(statusCode: number, statusText: string, errorCode: string, errorReason: string | undefined); get message(): string; } type RequestOptions = { method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH"; path: string[]; headers?: Record; json?: unknown; responseType?: T; }; export interface ClientConfig { url: string; token: string; userAgent?: string; } export declare class Client { #private; constructor(config: ClientConfig); requestWithEtag(options: RequestOptions): Promise<{ body: v.Infer; etag?: string; }>; request(options: RequestOptions): Promise>; } export {};