/**
 * api-client/errors.ts — Typed error classes for API client failures.
 *
 * Each error class corresponds to a distinct failure mode so callers can
 * match on `instanceof` for control flow. Error messages are always
 * human-readable; machine-readable details are in typed fields.
 */
/**
 * The API returned a well-formed error response (JSON envelope with
 * `object: "error"`). The HTTP status code and error details are preserved.
 */
export declare class ApiError extends Error {
    readonly code: string;
    readonly statusCode: number;
    readonly param?: string | undefined;
    readonly name: string;
    constructor(message: string, code: string, statusCode: number, param?: string | undefined);
}
/**
 * The API key is missing, invalid, or lacks the required scope.
 */
export declare class ApiAuthError extends ApiError {
    readonly name = "ApiAuthError";
}
/**
 * The API could not be reached — DNS failure, connection refused,
 * timeout, or a non-JSON response (e.g., 502 from a CDN).
 */
export declare class ApiConnectionError extends Error {
    readonly url: string;
    readonly cause?: unknown | undefined;
    readonly name = "ApiConnectionError";
    constructor(message: string, url: string, cause?: unknown | undefined);
}
/**
 * The job did not reach a terminal state within the allotted time.
 */
export declare class ApiTimeoutError extends Error {
    readonly jobId: string;
    readonly timeoutMs: number;
    readonly name = "ApiTimeoutError";
    constructor(jobId: string, timeoutMs: number);
}
