/**
 * Fetches JSON from a URL and throws explicit errors for HTTP status and
 * JSON parsing failures.
 *
 * @param {string} url
 * @param {{ signal?: AbortSignal }} [options]
 * @returns {Promise<unknown>}
 */
export function fetchJson(url: string, options?: {
    signal?: AbortSignal;
}): Promise<unknown>;
/**
 * @typedef {"network" | "http" | "json"} FetchJsonErrorKind
 */
/**
 * @extends {Error}
 */
export class FetchJsonError extends Error {
    /**
     * @param {FetchJsonErrorKind} kind
     * @param {string} message
     */
    constructor(kind: FetchJsonErrorKind, message: string);
    kind: FetchJsonErrorKind;
}
export type FetchJsonErrorKind = "network" | "http" | "json";
//# sourceMappingURL=fetchUtils.d.ts.map