/** * Fehler der Rechnungs-API auswerten: am Code, nie am Text. * * Es zaehlen die Codes des Vertrags ([INVOICE_ERROR_CODES]) und die, die * Anmeldung und Rand auf jedem Rechnungsaufruf erzeugen koennen * ([INVOICE_REQUEST_ERROR_CODES], z. B. `dialect_mismatch`, `not_found`, * `route_missing`). Ein fremder Code ist fuer diese Helfer kein * Rechnungs-Fehler: wer darauf verzweigt, soll es bewusst ueber * `KasseneckApiError.code` tun. */ import type { KasseneckApiError } from '../client/errors.js'; import { type InvoiceErrorCode, type InvoiceRequestErrorCode } from './vertrag.js'; /** Ein Code, den ein Rechnungsaufruf liefern kann. */ export type InvoiceApiErrorCode = InvoiceErrorCode | InvoiceRequestErrorCode; /** `true` fuer einen Code aus [INVOICE_ERROR_CODES] oder [INVOICE_REQUEST_ERROR_CODES]. */ export declare function isInvoiceErrorCode(value: unknown): value is InvoiceApiErrorCode; /** Der Fehlercode eines geworfenen Fehlers; `undefined`, wenn es keiner der Rechnungs-API ist. */ export declare function invoiceErrorCode(error: unknown): InvoiceApiErrorCode | undefined; /** * Kurzform fuer `catch (e) { if (isInvoiceError(e, 'customer_exists')) … }`. * Ohne `code`: ist es ueberhaupt ein Fehler der Rechnungs-API? */ export declare function isInvoiceError(error: unknown, code?: InvoiceApiErrorCode): error is KasseneckApiError; /** Ein Feldfehler aus `data.errors[]` einer `validation`-Antwort. */ export interface InvoiceFieldError { /** Feldpfad in der gesendeten Anfrage, z. B. `items[2].vatRate` oder `customer.vatId`. */ field: string; message: string; } /** Die Feldfehler einer `validation`-Antwort; leer, wenn es keine sind. */ export declare function invoiceFieldErrors(error: unknown): InvoiceFieldError[];