/** * Fehler der Lager-API auswerten: am Code, nie am Text. * * Es zaehlen die Codes der Lager-Endpunkte ([INVENTORY_ERROR_CODES]) und die, * die Anmeldung und Rand auf jedem Aufruf erzeugen koennen * ([INVENTORY_REQUEST_ERROR_CODES]). Ein fremder Code ist fuer diese Helfer * kein Lager-Fehler: wer darauf verzweigt, tut es bewusst ueber * `KasseneckApiError.code`. */ import type { KasseneckApiError } from '../client/errors.js'; import type { InventoryShortfall } from './typen.js'; import { type InventoryErrorCode, type InventoryRequestErrorCode, type InventoryWarningCode } from './vertrag.js'; /** Ein Code, den ein Lager-Aufruf liefern kann. */ export type InventoryApiErrorCode = InventoryErrorCode | InventoryRequestErrorCode; export declare function isInventoryErrorCode(value: unknown): value is InventoryApiErrorCode; /** Der Fehlercode eines geworfenen Fehlers; `undefined`, wenn es keiner der Lager-API ist. */ export declare function inventoryErrorCode(error: unknown): InventoryApiErrorCode | undefined; /** Kurzform fuer `catch (e) { if (isInventoryError(e, 'article_not_found')) … }`. */ export declare function isInventoryError(error: unknown, code?: InventoryApiErrorCode): error is KasseneckApiError; /** Ein Feldfehler aus `data.errors[]` einer `validation`-Antwort. */ export interface InventoryFieldError { /** Feld der gesendeten Anfrage, z. B. `limit` oder `events`. */ field: string; message: string; } /** Die Feldfehler einer `validation`-Antwort; leer, wenn es keine sind. */ export declare function inventoryFieldErrors(error: unknown): InventoryFieldError[]; /** * Wie lange `rate_limited` noch gilt, in Sekunden (`data.retryAfterSec`, * dasselbe wie die Kopfzeile `Retry-After`). `undefined`, wenn der Fehler kein * `rate_limited` ist oder der Server keine Angabe macht. Die Grenze gilt je * Konto (etwa 20 Anfragen je Sekunde, kurze Spitzen bis 40). */ export declare function inventoryRetryAfterSec(error: unknown): number | undefined; /** * Die Positionen, fuer die beim Reservieren der verfuegbare Bestand nicht * reicht (`insufficient_available`, `data.details[]`): je Artikel und Standort * angefragt und verfuegbar, in Tausendstel. Leer, wenn der Fehler ein anderer * ist. Es fehlen nur diese Positionen; reserviert wurde nichts. */ export declare function inventoryShortfalls(error: unknown): InventoryShortfall[]; /** `true` fuer einen Hinweis-Code einer Buchung (`warnings[].code`); Hinweise sind nie Fehler. */ export declare function isInventoryWarningCode(value: unknown): value is InventoryWarningCode; /** * Die Inventur, die einen Standort belegt (`stocktake_location_busy`, * `data.stocktakeId`): weiterzaehlen statt neu anlegen. `undefined`, wenn der * Fehler ein anderer ist oder der Server keine Kennung nennt. */ export declare function inventoryBusyStocktakeId(error: unknown): string | undefined;