/**
 * Error thrown by `HttpRequester` for any non-2xx response from the API.
 *
 * Wraps the HTTP status, status text, the parsed response body (JSON when the response
 * was JSON, raw text otherwise), and the absolute request URL. The `cause` option can
 * carry an underlying error (e.g. a `SyntaxError` from JSON parsing) so callers can walk
 * the chain via `err.cause`.
 *
 * The class exists so consumers can `instanceof ApiError` and read structured fields
 * (`err.status`, `err.body`) instead of regexing the message.
 */
export declare class ApiError extends Error {
    /**
     * The HTTP status code returned by the API.
     */
    readonly status: number;
    /**
     * The HTTP status text returned by the API.
     */
    readonly statusText: string;
    /**
     * The parsed response body. JSON-decoded when the response was JSON, raw string
     * otherwise.
     */
    readonly body: unknown;
    /**
     * The absolute URL of the failing request (after base URL resolution and
     * `?api=true` injection).
     */
    readonly url: string;
    /**
     * Constructor.
     *
     * @param status The HTTP status code.
     * @param statusText The HTTP status text.
     * @param body The parsed response body.
     * @param url The absolute URL of the request.
     * @param options Optional `cause` field for chaining underlying errors.
     */
    constructor(status: number, statusText: string, body: unknown, url: string, options?: {
        cause?: unknown;
    });
}
