/** What a failed response said, once. */ export interface ProblemSummary { /** The human sentence to print. `''` when the body carried nothing readable. */ detail: string; /** The taxonomy entry, when the body named one — `conflict`, `permission_denied`, … */ code?: string; /** The stable per-code title, when present. */ title?: string; /** Field-level complaints from a `validation_failed`, in the order the server sent. */ errors?: Array<{ path: string; message: string; }>; } /** * Parse a response body into what it actually says. * * The strict pass is the published schema (`problem` in `@substrat-run/contracts`) rather * than a hand-read of the same fields, so the CLI cannot drift from the document the * control plane emits. A body that misses a required member — a relayed error from * something in front of the control plane, an older deployment — falls through to the * lenient reads below instead of being discarded. */ export declare function readProblem(body: string): ProblemSummary; /** * The one line (or short block) a command prints when the control plane refuses. * * `action` is what the CLI was doing — 'push failed', 'promote failed' — so the message * still names the command, and the status and code name the refusal. The Cloudflare * redacted-fault note (#559) rides along here rather than at one call site, because a * platform fault is not particular to `push`. */ export declare function failureMessage(action: string, status: number, body: string): string; //# sourceMappingURL=problem.d.ts.map